Java JDBC 理论笔记(一)

来源:互联网 发布:投资者评估数据库 编辑:程序博客网 时间:2024/04/30 04:11

原:http://hi.baidu.com/zero_spy/ 2011-11-05

http://www.cnblogs.com/hoojo/archive/2011/06/10/2077643.html

一、JDBC常用接口、类介绍

JDBC提供对独立于数据库统一的API,用以执行SQL命令。API常用的类、接口如下:  

DriverManager

管理JDBC驱动的服务类,主要通过它获取Connection数据库链接,常用方法如下:publicstaticsynchronized Connection getConnection(String url, String user, String password) throws Exception;该方法获得url对应的数据库的连接。

Connection常用数据库操作方法: 

Statement createStatement throws SQLException: 该方法返回一个Statement对象。PreparedStatement prepareStatement(String sql) throws SQLException;该方法返回预编译的Statement对象,    即将SQL语句提交到数据库进行预编译。CallableStatement prepareCall(String sql) throws SQLException:该方法返回CallableStatement对象,    该对象用于存储过程的调用。上面的三个方法都是返回执行SQL语句的Statement对象,PreparedStatement、CallableStatement的对象是Statement的子类,只有获得Statement之后才可以执行SQL语句。 关于Connection控制事务的方法:Savepoint setSavepoint(): 创建一个保存点Savepoint setSavepoint(String name):创建一个带有名称的保存点void setTransactionIsolation(int level):设置事务隔离级别void rollback():回滚事务void rollback(Savepoint savepoint):回滚到指定保存点void setAutoCommit(boolean autoCommit): 关闭自动提交,打开事务void commit():提交事务

Statement

用于执行SQL语句的API接口,该对象可以执行DDL、DCL语句,也可以执行DML语句,还可以执行SQL查询语句,当执行查询语句是返回结果集,常用方法如下:ResultSet executeQuery(String sql) throws SQLException:该方法用于执行查询语句,并返回查询结果对应的ResultSet对象,        该方法只用于查询语句。int executeUpdate(String sql) throws SQLException:该方法用于执行DML语句,并返回受影响的行数;        该方法也可以执行DDL,执行DDL返回0;boolean execute(String sql) throws SQLException:该方法可以执行任何SQL语句,如果执行后第一个结果是ResultSet对象,        则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false;

PreparedStatement

预编译的statement对象,PreparedStatement是Statement的子接口,它允许数据库预编译SQL(通常指带参数SQL)语句,以后每次只改变SQL命令参数,避免数据库每次都编译SQL语句,这样性能就比较好。而相对于Statement而言,使用PreparedStatement执行SQL语句时,无需重新传入SQL语句,因为它已经预编译了SQL语句。但是PreparedStatement需要为编译的SQL语句传入参数值,所以它比了如下方法:void setXxx(int index, value)根据该方法传入的参数值的类型不同,需要使用不同的方法。传入的值的类型根据传入的SQL语句参数而定。

ResultSet

void close() throws SQLException:释放、关闭ResultSet对象boolean absolute(int row):将结果集移动到第几行,如果row是负数,则移动到倒数第几行。        如果移动到的记录指针指向一条有效记录,则该方法返回true;void beforeFisrt(): 将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的        初始状态:记录指针的起始位置位于第一行之前。boolean first():将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效记录,则该方法返回true。boolean previous():将ResultSet的记录指针定位到上一行,如果移动后的记录指针指向一条有效记录,则该方法返回true。boolean next():将ResultSet的记录指针定位到下一行。如果移动后的记录指针指向一条有效记录,则返回true。boolean last():将ResultSet的记录指针定位到最后一行。如果移动后的记录指针指向一条有效记录,则返回true。void afterLast():将ResultSet的记录指针定位到最后一行之后。注意:在JDK1.4以前只支持next移动,且每次移动一个位置。到JDK1.5就可以随意定位。二、JDBC编程步骤

进行jdbc编程步骤大致如下: 

1、加载数据库驱动 

Class.forName(driverClass)
上面的dirverClass就是数据库驱动类所对应的类路径字符串,根据不同数据库厂商提供的驱动也不同。

2、通过DriverManager获取数据库的链接 

DriverManager.getConnection(String url, Stirng user, String pass)
当使用DriverManager来获取链接,需要传入三个参数:分别是数据量的url、用户名、密码。

3、通过Connection对象创建Statement对象,Connection创建Statement的方法如下三个: 

createStatement()创建基本的Statement对象。
prepareStatement(String sql):根据传入的sql语句创建预编译的Statement对象。
prepareCall(String sql):根据传入的sql语句创建CallableStatement对象

4、Statement执行SQL语句,Statement有三大方法来执行SQL语句: 

execute:可以执行任何SQL语句,单比较麻烦executeUpdate:可以执行DML、DDL语句。执行DML返回受影响的SQL语句行数,执行DDL返回0;executeQuery:只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

5、操作结果集,针对ResultSet 

主要移动指针和获得值next、previous、first、last、beforeFrist、afterLast、absolute等移动指针的方法。getXxx获得移动指针指向行,特定列、索引的值。使用列名作为获取值的参数可读性好、使用索引作为获取参数性能好。

原创粉丝点击