所在的位置: mysql >> mysql介绍 >> JDBC的操作有哪些

JDBC的操作有哪些

1、JDBC取得数据库自动生成的主键

获取自增长的键值:

(1)在创建PreparedStatement对象时

原来:

PreparedStatementpst=conn.preparedStatement(sql);

现在:

PreparedStatementpst=conn.prepareStatement(orderInsert,Statement.RETURN_GENERATED_KEYS);

(2)原来执行更新

原来:

intlen=pst.executeUpdate();

现在:

intlen=pst.executeUpdate();

ResultSetrs=pst.getGeneratedKeys();

if(rs.next()){

Objectkey=rs.getObject(第几列);//获取自增长的键值

}

2、批处理

当需要成批插入或者更新记录时。可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率。

JDBC的批量处理语句包括下面两个方法:

addBatch():添加需要批量处理的SQL语句或参数

executeBatch():执行批量处理语句;

通常我们会遇到两种批量执行SQL语句的情况:

多条SQL语句的批量处理;

一个SQL语句的批量传参;

注意:

JDBC连接MySQL时,如果要使用批处理功能,请再url中加参数?rewriteBatchedStatements=true

PreparedStatement作批处理插入时使用values(使用value没有效果)

2.1Statement

voidaddBatch(Stringsql):添加需要批量处理的SQL语句

int[]executeBatch();执行批量处理语句;

2.2PreparedStatement

voidaddBatch()将一组参数添加到此PreparedStatement对象的批处理命令中

int[]executeBatch();执行批量处理语句;

2.3关于效率测试

测试:插入条记录

(1)Statement不使用批处理

(2)PreparedStatement不使用批处理

(3)Statement使用批处理

(4)PreparedStatement使用批处理(效率最高)

(4)(3)(1)(2)

2.4示例代码

3、事务

JDBC程序中当一个连接对象被创建时,默认情况下是自动提交事务:每次执行一个SQL语句时,如果执行成功,就会向数据库自动提交,而不能回滚。

JDBC程序中为了让多个SQL语句作为一个事务执行:(重点)

调用Connection对象的setAutoCommit(false);以取消自动提交事务

在所有的SQL语句都成功执行后,调用


转载请注明:http://www.aierlanlan.com/rzfs/2131.html

  • 上一篇文章:
  •   
  • 下一篇文章: