JDBC批量处理与结果集

 

一,     概论

Statement的execute()等方法一次只能执行一条SQL语句,如果同时有多条SQL语句要执行的话,可以使用addBatch()方法将要执行的SQL语句加入进来,然后执行executeBatch()方法,这样就可以在一次方法调用中执行多条SQL语句,以提高执行效率。

为了保证这一批语句要么全部成功,要么全部失败,应该把批处理放置在事务中进行。

使用PreparedStatement也可以进行批处理。

简单地说,JDBC可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。

二,     实例

首先建立数据库表:test.student。
可以使用如下语句创建该表:

CREATE DATABASE test;

USE test;

CREATE TABLE student (

    id INT(4) NOT NULL auto_increment,

    name VARCHAR(20) default NULL,

    myclass VARCHAR(20) default NULL,

    score INT(3) default 0,

    PRIMARY KEY  (id)

)

下面通过MyEclipse编写一段Java代码来实现对student表的相关操作。

在该工程下建一个名为jars的文件夹,把MySQL的驱动程序(jar包)放进去,然后右键单击该jar文件,在弹出的快捷菜单中选择“build path”命令下的“add to build path”命令

创建DoInsert类和DoSelect类实现数据的插入和查询,并验证数据。

PreparedStatement表示预编译的SQL语句的对象。

实例——prepdemo:根据传入不同的id查询学生信息。

对获得Connection对象进行封装

将数据库的配置信息写到一个属性文件中,然后用IO流去获取,当需要修改数据库连接的时候只要改动配置文件即可。

在src下新建属性文件jdbc.properties,添加如下内容:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test

username=root

password=root

三,对关闭JDBC资源类的封装

新建DbClose.java类,添加方法关闭结果集对象、语句对象、连接对象。

在执行增加、删除、修改的时候可以使用代码关闭连接:DbClose.close(Statement stmt, Connection conn);

在执行查询之后使用如下代码关闭连接:DbClose.close(ResultSet rs, Statement stmt, Connection conn);

对执行数据库操作类的封装

在一个程序中会有很多地方要操作数据库,那么对执行数据库操作同样需要修改。新建ControlDB.java

四,     小结ResultSetMetaData结果集元数据

简单地说,JDBC可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。批处理中执行的语句只能是更新语句(insert、delete、update),否则会抛出异常。

ResultSet用来表示查询到的数据,而ResultSetMetaData表示的是所查询到的数据背后的数据描述——如表名称、列名称、列类型等。

ResultSetMetaData提供了很多的方法,用来获取查询到的数据集的描述数据。

–       rsm.getCatalogName(i);

–       rsm.getColumnClassName(i);

–       rsm.getColumnDisplaySize(i);

–       rsm.getColumnLabel(i);

–       rsm.getColumnName(i);

–       rsm.getColumnType(i);

–       rsm.getColumnTypeName(i);

–       rsm.getPrecision(i);

–       rsm.getSchemaName(i);

–       rsm.isAutoIncrement(i);

–       rsm.isCurrency(i);

–       rsm.isNullable(i);

–       rsm.isReadOnly(i);

–       rsm.isSearchable(i);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值