《JAVA_JDBC数据库编程.ppt》由会员分享,可在线阅读,更多相关《JAVA_JDBC数据库编程.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机学院计算机学院赵卓君赵卓君北京理工大学珠海学院北京理工大学珠海学院第四章第四章JDBC数据库编程数据库编程 回顾回顾nJBuilder 是用户设计、开发、测试、部署和是用户设计、开发、测试、部署和管理管理 Java 应用程序的继承开发环境应用程序的继承开发环境nSwing 是在是在AWT基础上发展起来的轻量级基础上发展起来的轻量级组件,用于开发组件,用于开发Java GUI 应用程序应用程序n要处理事件,可使用事件处理程序,以执要处理事件,可使用事件处理程序,以执行所需操作行所需操作 n布局管理器可在容器中自动定位组件布局管理器可在容器中自动定位组件2计算机学院计算机学院 赵卓君赵卓君本
2、讲目标本讲目标n了解了解JDBC的概念及必要性的概念及必要性n了解了解JDBC驱动程序类型驱动程序类型 n理解理解JDBC 程序的结构程序的结构(重点、难点重点、难点)n运用运用JDBC进行数据库编程进行数据库编程(重点、重点、难点难点)3计算机学院计算机学院 赵卓君赵卓君数据库访问技术简介数据库访问技术简介数据库编程数据库编程 客户机/服务器应用程序 ODBCJDBC两个常用的API数据库数据库执行 SQL 语句检索查询结果 4计算机学院计算机学院 赵卓君赵卓君ODBC数据库数据库客户机/服务器 GUI应用程序ODBC(开放式数据库连接)(Microsoft 提供)插 入删 除修 改应用程序
3、编程接口应用程序编程接口 查询 5计算机学院计算机学院 赵卓君赵卓君JDBC JDBC(Java 数据库连接)(sun公司提供)Java 应用程序应用程序编程接口编程接口Java应用程序数据库数据库 插 入修 改删 除查询 6计算机学院计算机学院 赵卓君赵卓君JDBC 驱动程序的类型驱动程序的类型JDBC 驱动程序的类型 JDBC-ODBC桥驱动程序及桥驱动程序及ODBC驱动程序驱动程序 本地本地API部分部分Java驱动程序驱动程序 JDBC-Net 纯纯Java驱动程序驱动程序 本地协议纯本地协议纯Java驱动程序驱动程序 7计算机学院计算机学院 赵卓君赵卓君JDBC应用程序模型应用程序模
4、型2-1 Java应用程序 JDBC数据库数据库SQL 命令 结果 8计算机学院计算机学院 赵卓君赵卓君JDBC应用程序模型应用程序模型2-2 Java应用程序界面JDBC数据库数据库SQL 命令 结果 Java应用程序业务逻辑层9计算机学院计算机学院 赵卓君赵卓君java.sql 包包 2-1 接口名接口名 说明说明 Connection此接口表示与数据的连接此接口表示与数据的连接Statement此接口用于执行此接口用于执行 SQL 语句并将数据检索到语句并将数据检索到 ResultSet 中中ResultSet此接口表示了查询出来的数据库数据结果集此接口表示了查询出来的数据库数据结果集P
5、reparedStatement此接口用于执行预编译的此接口用于执行预编译的 SQL 语句语句 DriverManager此类用于加载和卸载各种驱动程序并建立与数据此类用于加载和卸载各种驱动程序并建立与数据库的连接库的连接10计算机学院计算机学院 赵卓君赵卓君java.sql 包包 2-2nSQLException必须捕获必须捕获public void foobar()throws SQLException throw new SQLException(“刚引发了一个刚引发了一个 SQLException”);try fooBar();catch(SQLException ex)System.
6、out.println(“已捕获一个已捕获一个 SQLException 异常异常!”);System.out.println(“消息消息:“+ex.getMessage();System.out.println(“错误代码错误代码:“+ex.getErrorCode();调用 fooBar11计算机学院计算机学院 赵卓君赵卓君JDBC程序程序访问数据库的步骤访问数据库的步骤 2-1开 始导入入 java.sql 包 加载并注册驱动程序创建一个 Connection 对象创建一个 Statement 对象执行语句关闭ResultSet 对象关闭Statement对象关闭连接结 束使用Resul
7、tSet对象12计算机学院计算机学院 赵卓君赵卓君JDBC程序程序访问数据库的步骤访问数据库的步骤 2-2import java.sql.*;class AccessDatabasepublic static void main(String args)try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);String url=jdbc:odbc:test;Connection con=DriverManager.getConnection(url);Statement s=con.createStatement();ResultSet rs=s.ex
8、ecuteQuery(select*from friends);while(rs.next()System.out.print(rs.getString(1)+t);。rs.close();s.close();con.close();catch(Exception ex)System.out.println(ex.getMessage();13计算机学院计算机学院 赵卓君赵卓君JDBC插入数据实现插入数据实现import java.sql.*;public static void main(String args)try Class.forName(sun.jdbc.odbc.JdbcOdbc
9、Driver);String url=jdbc:odbc:test;Connection con=DriverManager.getConnection(url);String sql=INSERT INTO Student(id,name,address)“+“VALUES(001,朱八朱八,深圳深圳);Statement stmt=con.createStatement();int rowcount=stmt.executeUpdate(sql);stmt.close();con.close();catch(SQLException ex)System.out.println(ex.get
10、Message();14计算机学院计算机学院 赵卓君赵卓君JDBC删除和修改实现删除和修改实现public static void main(String args)try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);url=jdbc:odbc:test;Connection con=DriverManager.getConnection(url);String sql=Delete from Student where name like%张三张三%;Statement stmt=con.createStatement();stmt=con.cre
11、ateStatement();stmt.executeUpdate(sql);System.out.println(张三张三 的记录已删除的记录已删除“);stmt.close();con.close();catch(SQLException ex)System.out.println(ex.getMessage();15计算机学院计算机学院 赵卓君赵卓君JDBC查询数据实现查询数据实现SQL 查询字符串查询字符串 executeQuery()方法方法 作为参数传递ResultSet 返回查询数据SELECT id,name,address FROM Student;使用使用 SQL 语句,查
12、询可编写为:语句,查询可编写为:String sql=SELECT id,name,address FROM Student;Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);使用使用 JDBC 编写此查询,则代码为:编写此查询,则代码为:Statement接口接口16计算机学院计算机学院 赵卓君赵卓君使用结果集使用结果集 4-1 nResultSet 对象完全依赖于对象完全依赖于 Statement 对象和对象和 Connection 对象对象n每次执行每次执行 SQL 语句时,都会用新的结果重写
13、结果集语句时,都会用新的结果重写结果集n当相关的当相关的 Statement 关闭时,关闭时,ResultSet 对象会自动对象会自动关闭关闭Next()get()此方法将光标从当前位置下移一行 从 ResultSet 对象返回数据 17计算机学院计算机学院 赵卓君赵卓君使用结果集使用结果集 4-2 n它演示对当前行的处理它演示对当前行的处理n使用使用 next()方法时,记录是按顺序处理的方法时,记录是按顺序处理的n必须按照数据返回的顺序处理每行中的数据必须按照数据返回的顺序处理每行中的数据ResultSet rset=stmt.getResultSet();while(rset.next(
14、)String dept_name=rset.getString(1);18计算机学院计算机学院 赵卓君赵卓君使用结果集使用结果集 4-3 n演示对当前列的处理演示对当前列的处理n使用使用 get()方法可以直接访问列方法可以直接访问列Statement stmt=con.createStatement();Stmt.executeQuery(Select id,name from Student);ResultSet rs=stmt.getResultSet();while(rs.next()String name=rset.getString(name);System.out.printl
15、n(name);19计算机学院计算机学院 赵卓君赵卓君使用结果集使用结果集 4-4n以下代码显示值以下代码显示值 1 被作为参数传递给被作为参数传递给 getString()方法,方法,这实际上指列这实际上指列 id 的索引的索引Statement stmt=con.createStatement();stmt.executeQuery(Select id,name from Student);ResultSet rs=stmt.getResultSet();while(rs.next()String employeeid=rs.getString(1);20计算机学院计算机学院 赵卓君赵卓君
16、PreparedStatement接口接口PreparedStatement接口(预编译的 SQL 语句)PreparedStatement 用于提高运行时效率执行 PreparedStatement 对象比执行 Statement 对象快Statement 接口接口n基于条件的 SQL 查询中使用 PreparedStatement,其中条件在 IN 参数中给出21计算机学院计算机学院 赵卓君赵卓君总结总结nJDBC概念的理解概念的理解n使用使用 Class.forName()方法可以将驱动程序加方法可以将驱动程序加载到载到 Java 解释器中解释器中n使用使用 DriverManager 类的类的 getConnection()方方法和法和 Connection 对象的对象的 createStatement()方方法建立连接法建立连接n使用使用Statement类的类的executeQuery()或或 executeUpdate()方法执行方法执行 SQL 语句语句nPreparedStatement 接口允许创建预编译的接口允许创建预编译的SQL 语句,并使得在后续阶段可以指定语句语句,并使得在后续阶段可以指定语句的参数的参数22计算机学院计算机学院 赵卓君赵卓君