JDBC编程实验报告
- 格式:doc
- 大小:63.50 KB
- 文档页数:7
jdbc编程实验报告JDBC编程实验报告一、实验目的本次实验的目的是通过JDBC编程实现Java程序与数据库的交互,掌握JDBC编程的基本方法和技巧。
二、实验环境本次实验使用的开发环境为Eclipse,数据库为MySQL。
三、实验步骤1. 导入JDBC驱动在Eclipse中创建Java项目后,需要将MySQL的JDBC驱动导入到项目中。
具体步骤为:右键项目 -> Build Path -> Configure Build Path -> Libraries -> Add External JARs -> 选择MySQL的JDBC 驱动文件。
2. 连接数据库在Java程序中使用JDBC连接数据库需要使用以下代码:```javaClass.forName("com.mysql.jdbc.Driver");Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/test ", "root", "123456");```其中,`com.mysql.jdbc.Driver`为MySQL的JDBC驱动类名,`jdbc:mysql://localhost:3306/test`为数据库连接地址,`root`为数据库用户名,`123456`为数据库密码。
3. 执行SQL语句在Java程序中使用JDBC执行SQL语句需要使用以下代码:```javaStatement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM user"); while (rs.next()) {System.out.println(rs.getString("name"));}```其中,`conn.createStatement()`用于创建Statement对象,`stmt.executeQuery("SELECT * FROM user")`用于执行SQL查询语句,`rs.next()`用于遍历查询结果集,`rs.getString("name")`用于获取查询结果中名为name的字段的值。
实验九JDBC编程一、实验目的1)掌握JDBC的概念与使用场景2)掌握JDBC的工作原理3)掌握使用JDBC操作数据库的基本步骤4)掌握JDBC中几个常用接口和类5)掌握带数据库操作的应用程序开发步骤二、实验环境JDK1.6+Eclpise3.2三、实验准备1)复习课件中理论知识2)练习课堂所讲的例子四、实验内容1)安装MySQL数据库2)在MySQL中创建数据库webdb,并创建表news3)实现对news表的增删改查五、实验过程及结果插入数据调试如图:查询数据调试如图:删除数据调试如图:修改数据调试如图:六、实验感想本次实验,我了解了JDBC的概念与使用场景,理解了JDBC的工作原理,掌握了使用JDBC操作数据库的基本步骤,掌握了JDBC中几个常用接口和类,了解了带数据库操作的应用程序开发步骤等。
七、附录插入数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class InsertNews {public static void main(String[] args)throwsClassNotFoundException,SQLException {Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();int flag=stmt.executeUpdate("insert into news(title,author,hit)values('我院荣获全国独立学院','管理员','888')");if (flag>0){System.out.println("添加成功");}else{System.out.println("添加失败");}stmt.close();cn.close();}}查询数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class SelectNews {public static void main(String[] args)throwsClassNotFoundException,SQLException {Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();ResultSet rs=stmt.executeQuery("select*from news");while (rs.next()){System.out.println("newsid-->+rs.getInt(1)");System.out.println("title-->+rs.getInt(2)");System.out.println("author-->+rs.getInt(3)");System.out.println("hit-->+rs.getInt(4)");}rs.close();stmt.close();cn.close();}}删除数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class DeletNews {public static void main(String[] args)throws SQLException, ClassNotFoundException{Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();int flag=stmt.executeUpdate(" delete from news where author='管理员'");if (flag>0){System.out.println("删除成功");}else{System.out.println("删除失败");}stmt.close();cn.close();}}修改数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class UpdateNews {public static void main(String[] args)throwsClassNotFoundException,SQLException {Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();int flag=stmt.executeUpdate("update news set title='我院荣获河南发展最快独立学院',hit=666 where author='管理员'");if (flag>0){System.out.println("修改成功");}else{System.out.println("修改失败");}stmt.close();cn.close();}}。
《网络编程》实验报告实验序号:05 实验项目名称:JDBC连接学号姓名专业、班20网络工程实验地点指导教师实验时间2022一、实验目的及要求1、利用JDBC实现对Acess数据库文件的操作2、利用JDBC实现对MySQL数据库文件的操作二、实验设备(环境)及要求一台Windows XP、JDK1.6、MyEclipse 8.5三、实验内容与步骤1、建立ODBC数据源:建立T_STUDENT表;2、添加数据、删除数据:PreparedStatement,CallableStatement四、实验结果与数据处理Access数据库使用连接池访问数据库1.添加数据:结果:2.删除数据:结果:MySQL数据库1、添加数据:<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%><html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn = DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "INSERT INTO T_STUDENT(STUNO,STUNAME,STUSEX)VALUES('0032','fengjiang','man')";int i = stat.executeUpdate(sql);out.println("成功添加" + i + "行");stat.close();conn.close();%></body></html>2、删除数据:<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%><html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn = DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "DELETE FROM T_STUDENT WHERE STUNO='0032'";int i = stat.executeUpdate(sql);out.println("成功删除" + i + "行");stat.close();conn.close();%></body></html>结果:3、修改数据:<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%><html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn = DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "UPDATE T_STUDENT SET STUSEX='女' WHERE STUNO='0007'";int i = stat.executeUpdate(sql);out.println("成功修改" + i + "行");stat.close();conn.close();%></body></html>结果:4、查询数据:<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%><html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn = DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "SELECT STUNO,STUNAME FROM T_STUDENT WHERE STUSEX='女'";ResultSet rs = stat.executeQuery(sql);while(rs.next()){String stuno = rs.getString("STUNO");String stuname = rs.getString("STUNAME");out.println(stuno + " " + stuname + "<BR>");}stat.close();conn.close();%></body></html>结果:附源程序清单:添加数据:<%@ page language="java"import="java.sql.*"pageEncoding="utf-8"%> <html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn =DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "INSERT INTO T_STUDENT(STUNO,STUNAME,STUSEX) VALUES('0032','fengjiang','man')";int i = stat.executeUpdate(sql);out.println("成功添加" + i + "行");stat.close();conn.close();%></body></html>删除数据:<%@ page language="java"import="java.sql.*"pageEncoding="utf-8"%> <html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn =DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "DELETE FROM T_STUDENT WHERE STUNO='0032'";int i = stat.executeUpdate(sql);out.println("成功删除" + i + "行");conn.close();%></body></html>修改数据:<%@ page language="java"import="java.sql.*"pageEncoding="utf-8"%> <html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn =DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "UPDATE T_STUDENT SET STUSEX='女' WHERE STUNO='0007'";int i = stat.executeUpdate(sql);out.println("成功修改" + i + "行");stat.close();conn.close();%></body></html>查询数据<%@ page language="java"import="java.sql.*"pageEncoding="utf-8"%> <html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn =DriverManager.getConnection("jdbc:odbc:DSSchool");Statement stat = conn.createStatement();String sql = "SELECT STUNO,STUNAME FROM T_STUDENT WHERE STUSEX='女'";ResultSet rs = stat.executeQuery(sql);while(rs.next()){String stuno = rs.getString("STUNO");String stuname = rs.getString("STUNAME");out.println(stuno + " " + stuname + "<BR>");}conn.close(); %></body></html>。
jdbc编程实验报告JDBC编程实验报告JDBC(Java Database Connectivity)是Java语言中用于访问数据库的API。
它提供了一种标准的方法来连接和操作各种类型的数据库,包括关系型数据库和非关系型数据库。
在本次实验中,我们将使用JDBC编程来连接MySQL数据库,并进行一些基本的操作。
实验环境:- 操作系统:Windows 10- 开发工具:Eclipse- 数据库:MySQL 8.0.23实验步骤:1. 下载并安装MySQL数据库,并创建一个名为“test”的数据库。
2. 在Eclipse中创建一个Java项目,并添加MySQL的JDBC驱动jar包。
3. 编写Java代码,连接MySQL数据库,并进行一些基本的操作,如插入、查询、更新和删除数据。
下面是一个简单的示例代码:```javaimport java.sql.*;public class JdbcDemo {public static void main(String[] args) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {// 加载MySQL的JDBC驱动Class.forName("com.mysql.cj.jdbc.Driver");// 连接MySQL数据库conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?ser verTimezone=UTC", "root", "123456");// 创建Statement对象stmt = conn.createStatement();// 插入数据String sql = "INSERT INTO student (name, age, gender) VALUES ('Tom', 18, 'male')";stmt.executeUpdate(sql);// 查询数据sql = "SELECT * FROM student";rs = stmt.executeQuery(sql);while (rs.next()) {System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getInt("age") + "\t" + rs.getString("gender"));}// 更新数据sql = "UPDATE student SET age = 19 WHERE name = 'Tom'"; stmt.executeUpdate(sql);// 删除数据sql = "DELETE FROM student WHERE name = 'Tom'";stmt.executeUpdate(sql);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {try {if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}}```在上面的代码中,我们首先加载MySQL的JDBC驱动,然后使用DriverManager.getConnection()方法连接MySQL数据库。
实验报告
学院计算机学院班级学号姓名
课程名称Java程序设计实验日期
实验名称数据库应用开发成绩
实验目的:深入理解JDBC数据库驱动程序的概念,掌握JDBC提供的访问数据库相关接口和类的应用,掌握使用JDBC的Java数据库应用程序开发的基本步骤和方法。
实验条件:使用JDK和Eclipse
实验目的
本实验要求学生使用JDBC提供的接口和类编写一个Java应用程序,实现对学生数据信息的查询、删除、插入、更新等操作。
学生数据库(student)在MySQL数据库服务器中创建。
1. 在MySQL中创建学生数据库student,其中一个学生信息表stuinfo结构如下:
图1 stuinfo表结构
2. 设计一个Java程序,界面如图2所示,实现以下功能:
(1)点击“全部检索”按钮,检索stuinfo表的所有记录,显示在上面的JTable组件中;
(2)输入查询学号,点击“查询”按钮,查询该学生信息显示在左边面板中,查询不到时弹出信息提示。
(3)左边面板中输入学生信息,点击“添加”按钮,将此学生信息插入stuinfo表中,弹出插入是否成功的提示框。
(4)点击“删除”按钮,依据上边学号值删除该学生记录,弹出删除是否成功的提示框。
(5)点击“更新”按钮,依据上边学号值更新该学生的其它信息,弹出更新是否成功的提示框。
实验结果
实验总结
每次对学生进行增删改查后,表要实时变化。
我在界面的代码中写了一个refresh函数,每当有有数据变化,它都会将当前表所在的JScrollPane移除,之后TableModel再从数据库中读取数据,重新建立一个表格,再将其添加到新建的JScrollPane中,放到界面中去。
jdbc实训报告总结实训报告:JDBC(Java Database Connectivity)一、实训目标本次JDBC实训的目标是掌握Java语言如何通过JDBC API与关系型数据库进行交互,包括数据库的连接、查询、更新和断开连接等操作。
二、实训内容1. 了解JDBC的基本概念和用途。
2. 掌握JDBC驱动的安装与配置。
3. 掌握使用JDBC API进行数据库连接、查询、更新和断开连接的步骤。
4. 了解事务处理和批处理的概念及实现方法。
5. 掌握使用PreparedStatement和CallableStatement执行参数化查询和存储过程。
6. 了解JDBC的异常处理机制。
7. 掌握使用连接池管理数据库连接。
三、实训过程1. 在实验环境中安装和配置JDBC驱动。
2. 编写Java程序,实现数据库的连接、查询、更新和断开连接等操作。
3. 编写Java程序,实现事务处理和批处理。
4. 编写Java程序,使用PreparedStatement和CallableStatement执行参数化查询和存储过程。
5. 编写Java程序,实现异常处理。
6. 编写Java程序,使用连接池管理数据库连接。
四、实训总结通过本次实训,我深入了解了JDBC API的使用方法,掌握了Java语言与关系型数据库的交互方式。
在实训过程中,我学会了如何安装和配置JDBC驱动,如何使用JDBC API进行数据库连接、查询、更新和断开连接等操作,以及如何使用PreparedStatement和CallableStatement执行参数化查询和存储过程。
此外,我还了解了事务处理和批处理的概念及实现方法,以及JDBC的异常处理机制和连接池的使用方法。
这些知识和技能将对我今后的学习和工作产生积极的影响。
JDBC实验报告详细实验二JDBC编程一、目的通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。
二、基本要求学生需要按时达到指定实验室上机。
调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。
完成实验后,需要按时提交实验报告。
三、实验内容(1)复习数据库SQL语句的编写。
(2)编写Java数据库(使用ODBC-JDBC驱动)公共模块。
(3)建立数据库应用模型,对数据库进行操作。
(4)调试程序,实现数据库的访问。
3.1数据源的确定可能是我不知道怎么配置,我的电脑是Windows7系统,和学校WindowsXP 系统的电脑配置方法不太一样,需要在C:\Windows\System32路径中,找到odbcad32.exe才能顺利修改数据源。
数据源设置好了以后就可以编辑代码并正常运行了。
下面以一张截图展示我的数据库3.2数据库信息查询.一import java.sql.*; /*此处提供了SQL包,就可以放心使用SQL语句了*/ public class Students{public static void main(String args[]){ //look out this "S" of "string" !String driver="";/*这里定义了driver做驱动器使用,为了美观事先定义,其实放在Class.forName 的括号里也是完全正确的*/String url="jdbc:odbc:students";/*此处指定了数据库,要注意两者名字一定要一样,否则找不到数据源*/String query="select name,num,course,score from students"; //focus on the SQL language :select...from... ! /*需要执行的SQL语句*/Connection con=null; /*链接的定义*/Statement s=null; /*Statement对象的定义,两者赋值null 是为了在try块出现异常的时候不会被判断为逻辑错误,认为变量没有赋值*/ try{ /*第一个try块实现了驱动器的启动*/Class.forName(driver); //look out this "class" should write in Huge one!/*注意此处的Class需要大写!*/}catch(ClassNotFoundException e){"ClassNotFoundException:"+e.getMessage());}try{ /*第二个try块实现查询功能*/con=DriverManager.getConnection(url);/*刚刚定义的url在这里用上,此时程序才真正与数据库相连*/s=con.createStatement(); /*新建一个Statement*/ResultSet r=s.executeQuery(query); /*query在这里用上,执行SQL语句,也就是按照我们的要求实现我们想完成的功能*/ "name:" + " num:" + " course:" + " score:");while(r.next()){ /*逐行查询,只要有值就执行while里的语句*/ /*注意以下的每一项name,num等都要与数据库中的题目想吻合*/ String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");/*注意这些名字一定要与数据库中的名字吻合!当然也可以用数字代替,但是我的数据库第一列是ID,所以要注意name是2,num 是3,以此类推*/r2+ r3+ r4);}}。
实验五JDBC编程一、实验目的掌握JDBC的常用方法,能够通过JDBC存储、查询、更改MS SQL、Server 2000或MySql数据库二、实验内容参考附录和网络课程中的JDBC实例程序,选择数据库新建一个表,新建Web程序可以访问、插入、更新这个表三、实验源码login.jsp<html><head><meta http-equiv="Content-Type" content="text/html; charset= UTF-8"><title>欢迎登录</title></head><body>请输入用户名和密码:<!-- 登录表单,该表单提交到一个Servlet --><form id="login" method="post" action="serlvet/LoginServlet">用户名:<input type="text" name="username" width="50" /><br><br>密   码:<input type="password" name="pass" width="50" /><br><br><input type="submit" value="登录" /><br></form></body></html>连接数据库并处理请求参数的Servlet:LoginServlet.javapackage servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;public LoginServlet() {// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubdoPost(request, response);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubServletConfig config = this.getServletConfig();request.setCharacterEncoding("utf-8"); // 处理中文输入乱码String username = request.getParameter("username");String password = request.getParameter("pass");response.setContentType("text/html;charset=utf-8"); // 处理中文输出乱码// String encoding=config.getInitParameter("encoding");// response.setContentType("text/html;charSet="+encoding);boolean isLogin = false;isLogin = checkAuthority(username, password);if (isLogin) {PrintWriter out = response.getWriter();out.println("<html><head><title>登录结果</title></head>");out.println("<body>您输入的用户名是:" + username + "<br>");out.println("<br>");out.println("您输入的密码是:" + password + "<br>");out.println("<br>");out.println("用户名和密码正确</body></html>");out.close();} else {PrintWriter out = response.getWriter();out.println("<html><head><title>登录结果</title></head>");out.println("<body>");out.println("您输入的用户名或密码错误</body></html>");out.close();}}public boolean checkAuthority(String username, String pwd) {Connection conn = null;String sql;String url = "jdbc:mysql://localhost:3306/testdb?"+"user=root&password=123456&useUnicode=true&characterEncoding=UTF-8";try {Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动System.out.println("成功加载MySQL驱动程序");conn = DriverManager.getConnection(url);sql = "select * from user where name=? and pwd=?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, username);stmt.setString(2, pwd);ResultSet rs = stmt.executeQuery();if (rs.next()) {System.out.println(rs.getString(1) + "\t" + rs.getString(2)); return true;} else {return false;}} catch (SQLException e) {System.out.println("MySQL操作错误");e.printStackTrace();} catch (Exception e) {e.printStackTrace();} finally {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return false;}}输入正确的用户名密码结果输入错误的用户名密码结果。
§12 JDBC 数据库编程基本知识§12.1实验目的、内容及性质理解和掌握JDBC 的结构以及JDBC 与数据库应用编成之间的关系,掌握DriverManage 、Connection 、Ststement 等数据库类的常用方法。
实验性质:综合、必做实验学时:4学时§2.8.2问题及思考1、什么是ODBC数据源,如何定义数据源?2、什么是JDBC-ODBC桥3、读写数据库基本步骤总结4、什么是结果集,如何从结果集中读数据5、几个不同的Statement命令对象的使用总结§2.8.3实验指导一、JDBC数据库编程基本步骤1、利用ODBC-JDBC桥读取Access数据库实现Java读取Access数据库。
首先设置ODBC,在“控制面板”的“管理工具”中找到“数据源(ODBC)”,在出现的“ODBC数据源管理器”窗口中选择“系统DSN”(必须是系统DSN)。
单击“添加”按钮,在“创建新数据源”对话框中选择“Microsoft Access Driver”,如图7-19所示。
设置系统DSN选择Access驱动程序单击“完成”按钮,在数据源名称中输入“grade”,单击“选择”按钮,找到建立好的“person. mdb”文件(确保文件不是只读的),如图7-20所示。
建立数据数据源建立完毕。
读取的程序。
Connection conn = null;Statement stmt = null;ResultSet rs = null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException ce){out.println(ce.getMessage());}try{conn=DriverManager.getConnection("jdbc:odbc:grade","","");stmt=conn.createStatement();rs=stmt.executeQuery("SELECT * FROM grade");while(rs.next()){System.out.print(rs.getString("学号"));System.out.print(rs.getString("姓名"));System.out.print(rs.getString("语文"));System.out.print(rs.getString("数学"));System.out.print(rs.getString("英语"));System.out.println();}}catch(SQLException e){System.out.println(e.getMessage());}finally{stmt.close();conn.close();}2、数据库访问层,单独写成一个类或几个类(访问数据库代码) (1) 、表语句示例:create table users(uname varchar(10) primary key,upwd varchar(10));insert into users values('admin','1234');insert into users values('zhou','zhou');(2)、数据库访问层:package dao;import java.sql.*;public class CustomerDao {private String url="jdbc:mysql://127.0.0.1:3306/support";private String driver="com.mysql.jdbc.Driver";/*验证用户名与密码函数*/public boolean validate(String uname,String upwd){boolean flag=false;try{Class.forName(driver);Connection con=DriverManager.getConnection(url,"root","4846");Statement cmd=con.createStatement();String sql="select * from users";// where uname='"+uname+"'";ResultSet rs=cmd.executeQuery(sql);if(rs.next())if(rs.getString(1).equals(upwd))flag=true;con.close();}catch(Exception ex){flag=false;}return flag;}}(3)、用户界面(UI层)调用package ui;import dao.CustomerDao;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrm extends JFrame implements ActionListener{//从JFrame继承/*声明界面需要使用的控件*/JLabel lbl_name =new JLabel("用户名");JLabel lbl_pwd =new JLabel("密码");JTextField txt_name=new JTextField();JPasswordField txt_pwd=new JPasswordField();JButton btn_OK=new JButton("登陆");JButton btn_Cancel=new JButton("取消");CustomerDao dao=new CustomerDao();/*在构造函数中将控件放置在JFrame上*/public MyFrm(){/*获取当前Frame的内容面板*/JPanel jp=(JPanel)this.getContentPane();/*设置内容面板的布局Layout*/jp.setLayout(new GridLayout(3,2));jp.add(lbl_name);jp.add(txt_name);jp.add(lbl_pwd);jp.add(txt_pwd);jp.add(btn_OK);jp.add(btn_Cancel);btn_OK.addActionListener(this);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String arg[]){/*纯Java样式显示窗体*/JFrame.setDefaultLookAndFeelDecorated(true);/*实例化当前窗体类*/MyFrm frm=new MyFrm();frm.setSize(200,200);frm.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource()==btn_OK){String uname=txt_name.getText().trim();String upwd=txt_pwd.getText().trim();/*调用数据库访问层函数,进行用户验证*/boolean flag=dao.validate(uname, upwd);if(flag){JOptionPane.showMessageDialog(this, "用户验证通过");}else{JOptionPane.showMessageDialog(this, "用户名或密码输入错误");}}}}§12.4实践编程1、将讲义中的代码调试通过2、实现一个图书管理系统登录界面,请自行设计数据中的表,参考前面的实例按确定键,根据用户输入的数据到数据库中验证用户名和密码是否正确,正确则弹出主界面如下,错误则弹出消息框。
《JA V A高级应用》课程实验实验二JDBC编程姓名:沈万琴学号:20095500班级:电子商务09-2班学校: 合肥工业大学2011年11月26日一、实验目的通过Java数据库访问程序的编写、调试,掌握JDBC编程的基本方法,熟悉并熟练运用常用的JDBC API,促加深对概念的理解,进一步加强动手能力。
二、实验内容(1)复习数据库SQL语句的编写。
(2)编写Java数据库(使用ODBC-JDBC驱动)公共模块。
(3)建立数据库应用模型,对数据库进行查询、更新、修改、删除操作。
(4)调试程序,实现数据库的访问。
三、实验代码程序结果①实现对数据库的查询代码如下import java.awt.*;import java.sql.*;class aa{public static void main(String[] args){String url="jdbc:odbc:bobo"; //打开通过JDBC-ODBC桥来访问bobo数据库String a="SELECT * FROM students";//设定查询字符串try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序}catch(Exception e)//捕获加载驱动程序可能出现异常{System.out.print("连接数据库出错!");}//输出数据库中信息try{Connection b=DriverManager.getConnection(url);//建立连接Statement c=b.createStatement();ResultSet r=c.executeQuery(a);//执行查询System.out.println("数据库连接成功,表中内容为:\n");System.out.println("学号"+" "+"姓名"+" "+"课程"+" "+"学分"+" "+"分数");while(r.next())//循环输出数据库中students表中的数据{Long i1=r.getLong("学号");String i2=r.getString("姓名");String i3=r.getString("课程");Double i4=r.getDouble("学分");int i5=r.getInt("分数");System.out.println(i1+" "+i2+" "+i3+" "+i4+" "+i5);}//关闭所有打开的资源r.close();c.close();b.close();}catch(SQLException e){ System.out.print("连接数据库出错,错误原因可能有:\n");e.printStackTrace();}}}运行程序,输出数据库中数据,运行结果如下图:②在students表中修改一条记录代码如下import java.awt.*;import java.sql.*;class aa{public static void main(String[] args){String url="jdbc:odbc:bobo";//打开通过JDBC-ODBC桥来访问bobo数据库String a="SELECT * FROM students1";//设定查询字符串try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序}catch(Exception e)//捕获加载驱动程序可能出现异常{System.out.print("连接数据库出错!");}//修改一条记录try{Connection b =DriverManager.getConnection(url);tatement c =b.createStatement( );c.executeUpdate("UPDA TE studengts1 SET 课程=物理,学分=4 WHERE 学号=01");ResultSet r=c.executeQuery(a);System.out.println("数据库连接成功,表中内容为:\n");System.out.println("学号:"+" "+"姓名"+" "+"课程"+" "+"学分"+" "+"分数");while(r.next()){Long i1=r.getLong("学号");String i2=r.getString("姓名");String i3=r.getString("课程");Double i4=r.getDouble("学分");int i5=r.getInt("分数");System.out.println(i1+" "+i2+" "+i3+" "+i4+" "+i5);}r.close();c.close();b.close();}catch(SQLException e){e.printStackTrace();}}}运行程序,输出数据库中进行修改后的数据,运行结果如下图:③在students表中删除一条记录代码如下:import java.awt.*;import java.sql.*;class aa{public static void main(String[] args){String url="jdbc:odbc:bobo";//打开通过JDBC-ODBC桥来访问bobo数据库String a="SELECT * FROM students1";//设定查询字符串try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序}catch(Exception e)//捕获加载驱动程序可能出现异常{System.out.print("连接数据库出错!");}//删除一条记录try{Connection b =DriverManager.getConnection(url);Statement c =b.createStatement( );c.executeUpdate("DELETE FROM students1 WHERE 学号=02");ResultSet r=c.executeQuery(a);while(r.next()){Long i1=r.getLong("学号");String i2=r.getString("姓名");String i3=r.getString("课程");Double i4=r.getDouble("学分");int i5=r.getInt("分数");System.out.println(i1+" "+i2+" "+i3+" "+i4+" "+i5);}r.close();c.close();b.close();}catch(SQLException e){e.printStackTrace();}}}运行程序,输出数据库中进行删除操作后数据,运行结果如下图:④在students表中插入一条记录代码如下:import java.awt.*;import java.sql.*;class aa{public static void main(String[] args){String url="jdbc:odbc:bobo";//打开通过JDBC-ODBC桥来访问bobo数据库String a="SELECT * FROM students1";//设定查询字符串try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序}catch(Exception e)//捕获加载驱动程序可能出现异常{System.out.print("连接数据库出错!");}//添加一条记录try{Connection b =DriverManager.getConnection(url);Statement c =b.createStatement( );c.executeUpdate("INSERT INTO book1(学号,姓名,课程,学分,分数) V ALUES(06,'陈博','思修',2,85)");ResultSet r=c.executeQuery(a);System.out.println("学号:"+" "+"姓名"+" "+"课程"+" "+"学分"+" "+"分数");while(r.next()){Long i1=r.getLong("学号");String i2=r.getString("姓名");String i3=r.getString("课程");Double i4=r.getDouble("学分");int i5=r.getInt("分数");System.out.println(i1+" "+i2+" "+i3+" "+i4+" "+i5);}r.close();c.close();b.close();}catch(SQLException e){e.printStackTrace();}}}运行程序,输出数据库进行插入后的数据,运行结果如下图:四、验过程中遇到的问题及解决方法①程序开始之前不知道如何建立ODBC数据源,在这一环浪费了很多时间,后来知要在Windows系统控制面板中,选择“数据源(ODBC)”,在系统DSN中,选择“添加”,然后,建立一个名为bobo的数据源,并且设置数据源为需要使用的SQL Server ,即这里假设为本地SQL Server 数据源,如果数据源不在本地,则要修改。