1 / 41

JDBC 基本概念与应用

JDBC 基本概念与应用. 杨颂. 讲课内容. JDBC 基本概念 如何通过 JDBC 访问数据库. JDBC 基本概念. JDBC 为 java 开发者使用数据库提供了统一的编程接口,它由一组 java 类和接口组成。是 java 程序与数据库系统通信的标准 API 。 JDBC API 使得开发人员可以使用纯 java 的方式来连接数据库,并执行操作。. JDBC 的结构. 程序包 主要的类 Jdbc 的几种类型. JDBC 的两个程序包. Java.sql (核心 API ) Javax.sql (扩展 API )

mandel
Download Presentation

JDBC 基本概念与应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JDBC 基本概念与应用 杨颂

  2. 讲课内容 • JDBC基本概念 • 如何通过JDBC访问数据库

  3. JDBC基本概念 • JDBC为java开发者使用数据库提供了统一的编程接口,它由一组java类和接口组成。是java程序与数据库系统通信的标准API。JDBC API 使得开发人员可以使用纯java的方式来连接数据库,并执行操作。

  4. JDBC的结构 • 程序包 • 主要的类 • Jdbc的几种类型

  5. JDBC的两个程序包 • Java.sql(核心API) • Javax.sql (扩展API) • Jdbc网站:http://java.sun.com/products/jdbc

  6. Java.sql(核心API) • 这个宝中的类主要针对基本的数据库变成服务,如生成连接、执行语句以及准备语句和运行批处理查询等。 • Java.sql包同时还提供了一些高级的处理,比如批处理更新、事务隔离和可滚动结果集等。

  7. Javax.sql (扩展API) • 它主要为数据库方面的高级操作提供了接口和类。如连接管理、分布式事务和行集等。

  8. JDBC常用接口 • Driver接口 • DriverManager接口 • Connection接口 • Statement接口 • Result接口

  9. Driver接口 • Driver接口由数据库厂家提供,对于java开发者而言,只需要使用Driver接口就可以了。 • 在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序。不同的数据库有不同的装载方法。

  10. 装载驱动 • 装载JDBC-ODBC驱动: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); • 装载MS SQL Server驱动: Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);

  11. 装载驱动 • 装载MySql驱动 Class.forName(“org.gjt.mm.mysql.Driver”); • 装载Oracle驱动 Class.forName(“oracle.jdbc.driver.OracleDriver”);

  12. DriverManager接口 • DriverManager是JDBC的管理层,作用于用户和驱动程序之间。 • DriverManager跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。 • DriverManager处理驱动程序登陆时间限制、跟踪消息的显示等。

  13. Connection接口 • Connection与特定数据库的连接(会话),在连接上下文中执行 SQL 语句并返回结果。 • DriverManager的getConnection()方法建立在JDBC URL中定义的数据库Connection连接上: Connection con= DriverManager.getConnection(url,login,password);

  14. Statement接口 • 用于执行静态 SQL 语句并返回它所生成结果的对象。 • 一般情况下使用connection.createStatement()方法可以得到Statement实例。

  15. Statement接口 • 三种Statement对象: Statement、PreparedStatement和CallableStatement。 • 常用的Statement方法: execute():运行语句,返回是否有结果集。 executeQuerty():运行查询语句,返回ResultSet结果集。 executeUpdate():运行更新操作,返回更新的行数。

  16. ResultSet接口 • Statement执行SQL语句时返回ResultSet结果集。 • ResultSet提供的检索不同类型字段的方法,常用的有: getString():获得在数据库里是varchar、char等数据类型的对象。 getFloar():获得杂数据库里是Float类型的对象。

  17. ResultSet接口 • getDate():获得在数据库里面是Date类型的数据。 • getBoolean():获得在数据库里面是Boolean类型的数据。 • getObject():在Sql中无对应类型,获得序列化对象。

  18. JDBC的几种类型 • 数据库厂商一般会提供一组API访问数据库。流行的数据库如Oracle、SQL Server、Sybase、Informix都提供了专用的API。

  19. JDBC的几种类型 • Type 1 JDBC-ODBC桥 • Type 2 部分java部分本机驱动程序 • Type 3 中间数据访问服务器 • Type 4 纯java驱动程序

  20. Type 1 JDBC-ODBC桥 • JDBC Type 1 驱动程序基于 JDBC-ODBC 桥。它是把JDBC操作翻译成对于的ODBC调用。 • 优点:可以访问所有ODBC可以访问的数据库。 • 缺点:执行效率低。

  21. Type 1 JDBC-ODBC桥

  22. Type 2 部分java部分本机驱动程序 • JDBC Type 2 驱动程序依靠特定于操作系统的库(共享库)来与 RDBMS 通信。应用程序将装入这种 JDBC 驱动程序,而驱动程序将使用共享库来与 数据库 服务器通信。

  23. Type 2 部分java部分本机驱动程序

  24. Type 3 中间数据访问服务器 • JDBC Type 3 驱动程序将应用程序与中间件服务器连接,中间件服务器将应用程序的JDBC调用映射到适当的数据库驱动程序上。 • WebLogic的驱动池就是属于type3类型。

  25. Type 3 中间数据访问服务器

  26. Type 4 纯java驱动程序 • Type 4 驱动程序是仅用于 Java 的 JDBC 驱动程序,它直接连接到数据库服务器。

  27. Type 4 纯java驱动程序

  28. JDBC object, interface model Driver Manager Driver Register Provide JVM Driver Layer Application Layer Connection Execute Result Statement ResultSet Extends Extends Prepared Statement Callable Statement

  29. JDBC的使用 • 程序写作步骤 • 使用实例

  30. JDBC 之程序写作步骤 1.注册并载入特定的 Database Driver Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 2.利用 Driver Manager 建立DB Connection Connection conn = DriverManager.getConnection(“jdbc:odbc:myDB”, “user”,”pw”); 3.利用 Connection对象执行 SQL 语句并返回它所生成结果的对象。 Statement stmt = conn.createStatement( );

  31. JDBC 之程序写作步骤 4.利用 Statement 执行 SQL Statement 必要时取得 ResultSet reference ResultSets rs = stmt.executeQuery(“Select * from Book”); 5.利用 ResultSet 读取相关资料 rs.getXXX(“fieldName”); 6.依序关闭使用之对象及连接; ResultSet  Statement  Connection

  32. 实例一 jdbc-odbc桥方式连接Access

  33. 连接数据库JDBC-ODBC 连接数据库 Connection con = null; try { //调用JDBC-ODBC 驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //建立连接 con = DriverManager.getConnection("jdbc:odbc:MS Access Database;DBQ=.\\database\\Company.mdb"); Statement stmt = con.createStatement();

  34. 连接数据库JDBC-ODBC //利用 Statement 执行 SQL Statement 并保存到ResultSet 中。 ResultSet rst = stmt.executeQuery("SELECT chCompanyName FROM Company;"); //处理结果集 while (rst.next()) {System.out.println(rst.getString("chCompanyName")); } } catch (Exception e) { e.printStackTrace(); }

  35. 不同数据库厂商的JDBC驱动的使用 • Microsoft Access Database • Microsoft SQL Server • MySQL Database • Oracle Database • Sybase Database

  36. Microsoft Access Database 语法: //调用JDBC-ODBC 驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //建立连接 con = DriverManager.getConnection("jdbc:odbc:MS Access Database;DBQ=.\\database\\Company.mdb");

  37. Microsoft SQL Server 语法: Class.forName("net.sourceforge.jtds.jdbc.Driver "); Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://host:port/database","user","password"); or Connection con = DriverManager.getConnection("jdbc:jtds:sybase://host:port/database","user","password");

  38. MySQL Database 语法: Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database","user","password");

  39. Oracle Database 语法: Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","user","password");

  40. Sybase Database • 语法: Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance(); DriverManager.getConnection("jdbc:sybase:Tds:IP地址:2638?ServiceName="+数据库名称,"账号","密码");

  41. 谢谢大家!

More Related