
JavaEE数据库开发基础.ppt
36页第4章 JavaEE数据库开发基础√ JDBC是Java程序连接和存取数据库的应用程序接口( API),此接口是Java核心API的一部分 √ JDBC向应用程序开发者提供了独立于数据库的统一的 API √ JDBC是由一组驱动程序实现的Java接口,驱动程序负责 从标准JDBC调用向支持的数据库所需要的具体调用转 变 √ 除了向开发者提供统一的独立于DBMS之外的框架, JDBC还提供了让开发者保持数据库厂家提供的特定功 能的办法5.1 JDBC概述√ JDBC(Java DataBase Connection)是Java数据库访问 API的统称,主要完成以下功能:1.与一个数据库建立连接 2.向数据库发送SQL语句3.处理数据库返回的结果JDBC API n在java.sql包中主要提供了以下接口JDBC的结构nJDBC有两种接口,分别是面向开发人员的JDBC API和面向 低层的JDBC Driver API nJDBC API 是一系列的接口,它使得应用程序能够进行数据库 联接,执行SQL语句,并且得到返回结果JDBC的结构njava.sql.DriverManager用来装载驱动程序,并且 为创建新的数据库连接提供支持。
njava.sql.Connection完成对某一指定数据库的连 接 njava.sql.Statement在一个给定的连接中作为SQL 执行声明的容器,它包含了两个重要的子类型 ljava.sql.PreparedSatement用于执行预编译的sql声 明 ljava.sql.CallableStatement用于执行数据库中存储过 程的调用 njava.sql.ResultSet对于给定声明取得结果的途径JDBC接口之间的关系5.2 JDBC API的应用访问数据库的步骤Statement的使用n创建:connection.createStatement([…]) n执行select查询语句: lstatement.executeQuery(“查询语句“) n执行insert、update、delete等更新语句: lstatement.executeUpdate(“更新语句”) n如 lexecuteUpdate(“insert into MyFriend (name,age,) values (‘ “+name+“ ',“+age+“,' “++“ ')“) Øname=“abc”,age=20,=“1234”时执行如下SQL语句 linsert into MyFriend (name,age,) values (' abc ',20,' 1234 ')ResultSet的使用n创建:executeQuery(“SQL语句“) n定位记录:next()方法 n访问数据:getXXX(int)或getXXX(String) l其中XXX为一数据类型名称, lint为列编号(从1开始编号),String为列名。
l如getInt(2),getString(“name“) n对照 lINT、INTEGER getInt() lTINYINT、SMALLINTgetShort() lBIGINT getLong() l DATE getDate() lCHAR、VARCHAR getString() lFLOATgetFloat()JAVA访问数据库示例1n读入ACCESS数据库的内容 n数据库 LIB.mdb l表 userJDBC-ODBC 方法1.Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); 2.Connection con = DriverManager.getConnection(“jdbc:odbc:tt“); 3.Statement sql = con.createStatement(); 4.ResultSet rs = sql.executeQuery(“select * from user“); 5.while (rs.next()) { 6. System.out.print(rs.getInt(“ID“) + “\t“); 7. System.out.print(rs.getString(2) + “\t“); 8. System.out.print(rs.getString(3) + “\t“); 9. System.out.print(rs.getInt(4) + “\t“); 10. System.out.print(rs.getInt(5) + “\t“); 11. System.out.println(rs.getDate(6)); 12.} 13.rs.close(); 14.sql.close(); 15.con.close();ü 建立ODBC- 名称为 tt多种方法访问数据库n通过JSP访问数据库 n通过Servlet访问数据库 n通过JavaBean访问JSP 访问数据库1. 2. JDBC实例:通过JSP访问数据库 3. 9. 10. ü jsp.jspJSP 访问数据库1. if (rs.next()) {%> 2. 3. 4. 序号 姓名 5. 年龄 日期 6. 7. “); 9. out.println(““ + rs.getString(1) + ““); 10. out.println(““ + rs.getString(2) + ““); 11. out.println(““ + rs.getString(3) + ““); 12. out.println(““ + rs.getString(4) + ““); 13. out.println(““ + rs.getString(5) + ““); 14. out.println(““ + rs.getString(6) + ““); 15. out.println(““); 16. } while (rs.next());%> 17. ü jsp.jspServlet 访问数据库1. protected void doGet(HttpServletRequest request, HttpServletResponse response) 2. throws ServletException, IOException { 3. response.setContentType(“text/html;charset=gb2312“); 4. PrintWriter out = response.getWriter(); 5. out.println(“JDBC实例:通过Servlet访问数据库“); 6. try { 7. Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); 8. Connection con = DriverManager.getConnection(“jdbc:odbc:tt“); 9. Statement sql =(Statement) con.createStatement(); 10. 11. ResultSet rs =sql.executeQuery(“select * from user“); 12. if (rs.next()) {13. } //if结束 14. } catch (Exception e) { 15. out.println(e); 16. } 17. }ü Servlet.javaServlet 访问数据库1. out.println(““); 2. out.println(“序号姓名“); 3. out.println(“年龄“); 4. out.println(“日期“); 5. do { 6. out.println(““); 7. out.println(““ + rs.getString(1) + ““); 8. out.println(““ + rs.getString(2) + ““); 9. out.println(““ + rs.getString(3) + ““); 10. out.println(““ + rs.getString(4) + ““); 11. out.println(““ + rs.getString(5) + ““); 12. out.println(““ + rs.getString(6) + ““); 13. out.println(““); 14. } while (rs.next()); 15. out.println(““);ü Servlet.java通过JavaBean访问1. package mybean;2. import java.sql.*; 3. public class DBConnection {4. private Connection conn;5. public void init(String className, String URL) { 6. try { 7. Class.forName(className); 8. conn = DriverManager.getConnection(URL); 9. } catch (Exception e) { 10. System.out.println(e); 11. } 12. }13. public Connection getConnection() { 14. return conn; 15. } 16.}ü DBConnection.java通过JavaBean访问1. JDBC实例:通过JavaBean访问数据库 2. 3. 9. 10. 11. 序号姓名 12. 年龄日期 13. 14. “); 16. 。












