JDBC基础.ppt_第1页
JDBC基础.ppt_第2页
JDBC基础.ppt_第3页
JDBC基础.ppt_第4页
JDBC基础.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JDBC开发篇 JDBC基础 用JDBC驱动程序建立一个数据库连接必须用JDBC驱动程序管理器 JDBCdrivermanager 来注册 例如 当驱程序类包括适当的静态的驱动程序初始化器 就可以装载并且注册由某个JDBC驱动程序类名实现的JDBC驱动程序 例如下面的程序 Class forName SomeJDBCDriverClassName JDBC基础 JDBC驱动程序名只标识一个特殊的JDBC驱动程序提供者 所以程序只能使用一个特定的驱动程序 一要连接一个数据库的时候 还需要通过驱动程序管理器指定一个JDBCURL Connectioncon DriverManager getConnection jdbc vendorX subprotocol machineY portZ JDBC基础 上面的URL不是指某个特定的驱动程序 但是也指定了特定的机器名特定的端口名 这就使程序在不同的环境下不能正常运行 用JNDI就可以接解上述的问题 只要允许程序指定一个由JNDI连接的特定的数据源的逻辑名 就可以命名JDBC程序的设置和可移植性变得容易 JDBC基础 加载驱动程序和建立连接使用某个驱动程序之前必须先加载它 例如 当使用JDBC ODBC桥接驱动程序时 可以用以下的代码来加载它 Class forName sun jdbc odbc JdbcOdbcDriver 驱动程序文档中指出了可以使用的类名 例如 如果类名是jdbc DriverXXX 那么就按照以下的形式来加载驱动程序 Class forName jdbc DriverXXX JDBC基础 因为Class forName这个函数可以自动地创建一个驱动程序实例并且用DriverManager类来注册它 所以并不需要手工去注册 没有必要自己创建一个单独的实例 与数据库建立连接的办法就是调用DriverManager类的getConnection函数 这个函数的参数是个代表数据库位置的资源定位字符串 URL DriverManager类保持了一系列已经注册了的驱动程序的列表 当getConnection方法被调用的时候 它就在这一系列的驱动程序中进行搜索 直到找到能定位到URL所指向的数据库的驱动程序为止 JDBC基础 下面举个连接数据库的例子 Stringurl jdbc odbc test Connectioncon DriverManager getConnection url a a 一般意义上的URL UniformResourceLocator 用来定位Internet上的资源 JDBCURL提供了一个识别数据源的方法 靠URL驱动程序就可以找到数据源并且实现连接 URL中允许驱动程序用各种不同的模式来命名数据库 例如ODBC子协议就要求URL中包含属性值 第二 JDBCURL允许驱动程序解码所有连接信息 从而实现连接 第三 JDBCURL还允许某种程序上的间接访问 JDBC基础 所谓间接 就是指URL可以把一个逻辑上的主机名或是数据库名动态映射到网络上的真正的主机或是数据库 标准的JDBCURL语法有三个部分 中间用冒号隔开 jdbc 下面分别解释一下 1 jdbc是指协议 jdbc2 subprotocol是子协议 是指驱动程序的名字 或是可以被多个驱动程序支持的数据连接机制的名字 一个非常著名的子协议名就是odbc 这个名字说明了数据源是个ODBC类型的数据源 例如 如果想通过JDBC ODBC连接桥来访问数据库的话 那么它的URL应该是以下这个形式的 jdbc odbc test JDBC基础 3 是用来标识数据源的 根据子协议的不同 subname要能给出连接到一个数据库的中够信息 然而要连接一个在远程服务器上的数据库需要更多的信息 如果数据源要通过Internet来连接 JDBCURL中的subname必须包含网络地址并且要使用下面的标准URL命名转换规则 hostname port subsubname假设MyNet是一个连接Internet上主机的网络协议 那么这时的JDBCURL就应该是这样的 jdbc dbnet remote 356 JDBC基础 在企业开发中 我们一般采用JDBC做为JAVA开发的数据库连接工具 一般存在四种驱动程序1类型一驱动 JDBC ODBC通过JDBC类与ODBC类共同配合2类型二驱动 WEBLOGICJDRIVERFORORA需要数据库网络库支持3类型三驱动 通过中间件服务器配合来连接数据库 微软的推荐驱动和WEBLOGIC池驱动4类型四驱动 SYBASEJCONNECT 专有驱动 JDBC基础 Connection被用来建立客户与数据库服务器之间的通信连接在操作数据库之前必须建立连接 ROWSET除外 连接通过java sql Connection接口实现一般连接分为直接连接和池连接直接连接一般通过代码完全控制连接 池连接通过中间件服务器的支持来实现连接的可扩展性能和安全性以及管理性 推荐连接方法 JDBC基础 池连接 启动一个连接以后 如果A程序使用完连接 获取数据以后 可以把连接放到池中 如果B程序代码中使用相同的连接设置 那么B程序运行时刻可以使用连接池中的A连接 节省连接资源 一般池连接都有上限和下限 按照默认配置既可 JDBC基础 StatementStatement是用来执行SQL语言的容器 Statement对象分为三种 一种是Statement 一种是PreparedStatement 是从Statement类继承过来的 还有一种是CallableStatement 其基类是PreparedStatement Statement对来执行简单的 无参数的查询语句 PreparedStatement可以执行带IN参数或不带参数的查询语句 可以执行批处理过程 而CallableStatement则是代表对存储过程的查询 当然 所有这些查询都必须建立在一个到数据库的连接上 JDBC基础 Statement提供了基本查询的接口 PreparedStatement可以处理IN参数 而CallableStatement可以处理OUT参数 一般大型的企业系统都使用存储过程 JDBC基础 创建Statement对象要使用SQL查询语句 首先要保证一个连接对象已经创建 在创建了对一个数据库的连接后 就可以使用Connection的createStatement来创建Statement对象 例如下面的程序片断 Connectioncon DriverManger getConnection url sa Statementstmt con createStatement 而要用来查询的SQL语句则是Statement对象中执行查询方法的参数 如以下的例子 ResultSetrs stmt executeQuery select fromnew JDBC基础 下面具体讲解Statement对象中的执行方法 Statement提供了三种不同的方法用来执行SQL语句 它们是executeQuery excuteUpdate execute executeQuery方法用来返回一个单独的结果集ResultSet 例如使用Select语句进行查询的时候 executeUpdate用来执行insert update delete语句 还可以执行数据定义语言如createtable和droptable JDBC基础 Insert update delete语句可以对一个表中的行或列进行增加 修改 和删除 这个执行方法的返回值是一个整型 代表了这些语句所作用到的行数 而createtable和droptable则返回0 因为它们不作用于行 JDBC基础 Execute方法则会返回一个或多个ResultSet对象 或是更新数 或是两者都有 注意 虽然PreparedStatement接口是继承自Statement 但是它有自已版本的execute executeQuery executeUpdate语句 Statement对象自己不包含SQL语句 使用者必须提供SQL语句作为Statement方法的参数 而PreparedStatement则不必给它的方法提供SQL语句作为参数 因为它们已经包含了一个预编译的SQL语句 CallabeStatement对象重载了PreparedStatement方法 所以它也不需要 提供参数给这些方法则有可能造成SQLExceptionr的例外 JDBC基础 一些DBMS把一个存储过程中的每个语句作为一个独立的Statement 而另一些DBMS则把整个存储过程看作一个Statement 当数据库的模式是自动提交的时候 这个区别就变得很重要 因为当commit方法被调用的时候 所有这些语句是一起被提交的 而在第一种情况下 这些语句将会被一个一个提交 Statement对可以被java的垃圾回收机机制自动地关闭 但是 在程序中一个好的习惯是在不用的时候显式地关闭它 这可以节省DBMS的资源并且可以避免一睦潜在的内存上的问题 JDBC基础 ResultSet结果集是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论