语言程序设计资料:java数据库编程.pptVIP

  • 0
  • 0
  • 约9.08千字
  • 约 62页
  • 2020-12-21 发布于安徽
  • 举报
Type2:Java to native API 这种驱动比起JDBC-ODBC桥执行效率略有提高。但是,它仍然需要在客户端加载数据库厂商提供的代码库.这样就不适合基于internet的应用 Type3:Java to Net 适合那种需要同时连接多个不同种类的数据库并且对并发连接要求高的应用 Type4:Java to Native Database 最高的性能,通过自己的本地协议直接与数据库引擎通信 JDBC与数据库驱动程序 JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类。真正的数据库访问操作实现是由各自数据库厂商提供的。通常把厂商提供的特定于数据库的访问API称为数据库JDBC驱动程序。 JDBC通过提供一个抽象的数据库接口,使得程序开发人员在编程时可以不用绑定在特定数据库厂商的API上,大大增加了应用程序的可移植性。在实际运行过程中程序代码通过JDBC访问数据库时,仍旧需要调用特定于数据库的访问API。 JDBC访问数据库层次结构 为了让JDBC与平台无关,JDBC提供所谓的“驱动程序管理器(driver manager)”,它会动态维护所有“数据库查询”所需要的驱动程序对象 使用Class.forName()进行装载,向驱动管理器注册。 创建数据库连接,分为以下几步: 首先注册数据库驱动程序 然后根据具体的JDBC URL地址,调用DriverManager对象的getConnection()来获取一个代表数据库连接的java.sql.connection对象。 JDBC URL 的格式如下: jdbc:子协议:数据库定位器 MySQL数据库:jdbc:mysql://机器名/数据库名 Oracle数据库:jdbc:oracle:thin@机器名:端口名:数据库名 jdbc:sqlserver://localhost:1433;databaseName=Graduate 给定具体的JDBC URL,获取数据库连接的方法是在DriverManager对象上调用getConnection()。这种方法有两种形式: DriverManager.getConnection(url) DriverManager.getConnection(url,user,password) 其中第二种方式需要输入用户名和密码信息进行身份认证。 连接数据库示例 JDBC对数据库执行SQL java.sql.Statement 对象代表一条发送到数据库执行的SQL语句。 有三种 Statement 对象: Statement 对象用于执行不带参数的简单 SQL 语句; PreparedStatement 对象用于执行带或不带参数的预编译 SQL 语句 CallableStatement 对象用于执行对数据库存储过程的调用。 Statement Statement对象提供了三种执行SQL语句的方法: executeQuery():(用于产生单个结果集的sql,如select语句) executeUpdate:(用于执行insert、delete、update、create table、drop table等) execute():用于执行返回多个结果集、多个更新计数或二者组合的语句,多数程序员不会需要该高级功能。 PreparedStatement PreparedStatement 实例包含已编译的 SQL 语句,这也是将其命名冠以“Prepared”的原因。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN 参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前通过适当的 setXXX() 方法来提供。 由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。 PreparedStatement 接口也有自己的 executeQuery、executeUpdate 和 execute 方法。Statement 对象本身不包含 SQL 语句,因而必须给 Statement.execute 方法提供 SQL 语句作为参数。PreparedStatement 对象并不将 SQL 语句作为参数提供给这些方法,因为它们已经包含预编译 SQL 语句。 CallableStatement 调用存储过程 将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,

文档评论(0)

1亿VIP精品文档

相关文档