Java -- JDBC

来源:互联网 发布:wap页面纯文字游戏源码 编辑:程序博客网 时间:2024/06/06 03:46
Java中的数据存储技术
在Java中,数据库存取技术可分为如下几类:
JDBC直接访问数据库
JDO技术
第三方O/R工具,如Hibernate,ibatis等
JDBC是java访问数据库的基石,JDO,Hibernate,ibatis 等只是更好的封装了JDBC




JDBC基础
JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、存取和操作的公共接口来访问数据库的标准Java类库,使用这个类库可


以以一种标准的方法、方便地访问数据库资源
JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题
JDBC的目标是使Java程序员使用JDBC可以连接任何了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了


解,从而大大简化和加快了开发过程




Driver接口
Java.sql.Driver接口是所有JDBC驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现
在程序中不需要直接去访问实现了Driver接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现




建立连接
可以调用DriverManager类的getConnection()方法建立到数据库的连接
JDBC URL用于标识一个被注册的驱动程序,驱动程序管理器通过这个URL选择正确的驱动程序,从而建立到数据库的连接
JDBC URL的标准由三部分组成,各部分间用冒号分隔。
jdbc:<子协议>:<子名称>
协议:JDBC URL中的协议总是jdbc
子协议:子协议用于标识一个数据库驱动程序
子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息




ResultSet
通过调用Statement对象的excuteQuery()方法创建该对象
ResultSet对象以逻辑表格的形式封装了执行数据库操作的结果集,ResultSet接口由数据库厂商实现
ResultSet对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,可以通过ResultSet对象的next()方法移动到下一行
ResultSet接口的常用方法:
boolean next()
getString()
...






preparedStatement vs Statement
代码的可读性和可维护性
preparedStatement的最大可能提高性能:
DBServer会对预编译语句提供性能优化。因为预编译语句有可能被重复调用,所以语句在DBServer的编译器编译后的执行代码被缓存下


来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行。
在statement语句中,即使是相同操作但因为数据内容不一样,所以整个语句本身不能匹配,没有缓存语句的意义。事实是没有数据库


会对普通语句编译后的执行代码缓存。这样每执行一次都要对传入的语句编译一次。
(语法检查,语义检查,翻译成二进制命令,缓存)
preparedStatement 可以防止SQL注入




原创粉丝点击