数据库访问

来源:互联网 发布:淘宝店叫什么名字好 编辑:程序博客网 时间:2024/04/20 03:02
 
看完了数据库访问这一章,可以说是受益匪浅,过去也经常做一些有关数据库访问的小程序,基本上在连接数据库这里就是copy代码,没什么深刻的认识,只知道这样就连接上了。现在才比较系统的学习了有关数据库访问的相关知识。下面是学习过程中的一些总结。
(早期数据库厂商都会为数据库产品提供一套访问数据库的API,但是这样的弊端在于一个特定的数据库的程序不能移植到另外的数据库上为此microsoft推出了ODBC并提供了ODBC API,为了在java语言中提供数据库访问的支持,SUN推出了JDBC)
JDBC驱动程序的类型:
1、 JDBC-ODBC桥:这是我们最常用的的驱动程序,这种桥机制实际上是把标准的JDBC转换为相应的ODBC调用,并通过ODBC库把它们发送到ODBC数据源。这样是为了支持更多的数据库类型,但是其弊端是访问数据库的效率比较低。利用此访问数据库要求客户端具有JDBC-ODBC桥驱动,ODBC驱动,和相应的数据库本地API在JDK中提供了JDBC-ODBC桥的实现类(sun.jdbc.odbc.JdbcOdbcDriber类)
2、 部分本地API Java驱动程序
3、 JDBC网络纯Java驱动程序
4、 本地协议的纯java驱动程序
利用JDBC访问数据库的步骤:
首先调用Class类的forName()方法,调用DriverManager类的getConnection()方法,调用Connection对象的createStatement()方法最后调用Statement对象的executeQuery()方法得到ResultSet对象。
具体来讲在init()方法中调用Class类的forName()方法是加载并注册数据库驱动,向其传递要加载的JDBC的驱动程序的类名,在java.sql中的Driver接口是所有的JDBC驱动程序需要实现的接口,在在调用Class类的forName()方法时参数为不同数据库实现Driver接口的类名。
在Driver接口中提供了一个connect()方法。用来建立数据库连接。
调用DriverManager类的getConnection()方法加载和注册JDBC驱动,建立到数据库的连接 DriverManager类是驱动程序管理类负责管理驱动程序。它提供了getConnection()方法注册驱动程序类的实例,建立对到数据库的连接。在该类中提供了getConnection()的三个重载方法,一种是参数为数据库的url,一种参数是url,和数据库的用户名和密码,一种参数是url和properties对象。常用的数据库的JDBC URL如下:
SQL Servler2000 jdbc:microsoft:sqlservler://localhost:1433:databasename=pubs
MySql         jdbc:mysql://localhost:3306/databasename
访问数据库:java.sql中提供了3个接口实现对数据库调用的不同方式:Statement,PreparedStatement和CallableStatement
Statement接口:调用Connection对象的createStatement()方法,创建一个Statement对象,1、在Statement接口中定义了executeQuery(”sql语句”)方法用于执行SQL语句,返回ResultSet对象。用于查看执行的结果。
2、在Statement接口中定义了executeUpdate(”sql语句”)方法,用于执行sql指定的insert,update或delete语句。
3在Statement接口中定义了addBatch(“sql”)方法,将sql语句组成一个命令列表,在执行excuteBatch()批量执行sql语句。
ResultSet对象:调用在Statement对象的executeQuery()方法创建了一个ResultSet对象,他以表格的形式封装了数据库操作的结果集,ResultSet对象的next()方法可将游标移动到下一行,其中还有很多方法来获取当前行中列的数据。
PreparedStatement接口:它继承了Statement接口,通过调用调用Connection对象的prepareStatement()方法,创建一个PreparedStatement对象,其中参数用?表示,然后调用PreparedStatement对象的setXXX()方法类设置这些参数。然后执行PreparedStatement对象的executeUpdate()执行sql语句。
CallableStatement接口:用于执行SQL的存储过程,它继承PreparedStatement接口,通过调用Connection对象的PrepareCall()方法得到CallableStatement对象。(略)
 
如何获取数据库的元数据(用于描述数据库或者它的组成部分之一的数据称为元数据,以区分存放在数据库中的实际数据)
1调用ResultSet对象的getMetaDate方法得到ResultSetMetaDate对象,ResultSetMetaDate
接口定义了很多方法来得到结果集中的列的属性。
2java.sql包中,还提供了DatabaseMetaData接口和ParameterMetaDate接口,DatabaseMetaData接口中定义的方法用于获取数据库的信息,通过Connection对象的getMetaData()方法得到DatabaseMetaData对象。ParameterMetaDate接口中定义的方法用于得到ParameterStatement对象中的参数类型和属性信息。通过PreparedStatement对象的getParameterMetaDate()方法得到ParameterMetaDate对象。
事务处理:在实际生活中还会遇到这样的问题,一个事务多个操作,为了避免出现故障等问题,导致一个事务其中一些操作执行了而一些操作没有执行,我们在编写程序时就要采用事务处理,这样就使得一个事务作为一个单元来处理,若中间出现问题操作不被提交。
调用Connection对象的setAutoCommit()方法,传入参数false,取消自动提交注册。
 
 
原创粉丝点击