[Java]JDBC数据库编程

一,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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值