您的位置:首页 > 数据库

[Java]JDBC数据库编程

2017-02-01 15:41 357 查看

一,JDBC常用接口和类

DriverManager

Connection

Statement

PreparedStatement

ResultSet

二,JDBC编程步骤

(1)加载数据库驱动。

Class.forName(driver);


(2)通过DriverManager获取数据库连接。

Connection conn = DriverManager.getConnection(url,user,pass);


(3)通过Connection对象创建Statement对象。

Statement stmt = conn.createStatement();


(4)使用Statement执行SQL语句。

ResultSet rs = stmt.executeQuery(String SQL);


(5)操作结果集。如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet对象来取出查询结果。

三,执行SQL方法

执行SQL的方法有三种,executeUpdate执行DDL和DML语句,executeQuery方法执行查询语句,execute方法执行SQL语句,如果知道要执行的SQL是什么类型不用execute,因为很麻烦。

Connection对象的createStatement方法产生一个Statement对象,然后用这个对象执行SQL,这种方式比较慢而且不安全,建议用Connection的prepareStatement,参数是一个带占位符的SQL语句,然后创建一个PreparedStatement对象,操作这个对象setXXX方法让SQL语句完整,setXXX方法的参数是(int 占位符,XXX 内容),然后再执行executeUpdate方法。

注意:用预编译的SQL语句不能是关键字。

四,操作返回集

JDBC返回的结果集是ResultSet默认是不能滚动更新的,只能用next()往下,想要创建可更新的ResultSet,必须在创建Statement或PreparedStatement时传入额外的参数:

resultSetType控制ResultSet的类型,选择ResultSet.TYPE_SCROLL_INSENSITIVE

resultSetConcurrency控制ResultSet的并发类型,选择ResultSet.CONCUR_UPDATABLE

PreparedStatement pstmt = conn.prepareStatement(sql
, ResultSet.TYPE_SCROLL_INSENSITIVE
, ResultSet.CONCUR_UPDATABLE);


这样创建的ResultSet就是可滚动可更新的,可以调用updateXXX(jint c, XXX value)方法修改指针的记录,然后用updateRow()方法来更新。

方法

得到行数:getRow()

指针移动到指定行:absolute(int i)

指针往前移动:previous()

移动到最后:last()

五,事务处理

事务处理是处理一组SQL要不都完成要不都不完成,其中如果都完成了要提交事物,如果失败了要事物回滚。

首先关闭自动提交,用Connection的setAutoCommit方法conn.setAutoCommit(false),然后用Connection的commit方法来提交事务conn.commit(),如果任意一条SQL语句执行失败,我们应该用Connection的rollback来回滚事务conn.rollback()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java