JDBC批量操作以及结果集常用方法

.循环执行在不使用jdbc批量操作的前提下
要进行批量操作可以 效率相对jdbc批量操作低一些
普通的循环操作代码如下:

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
//			String sql = "update user set power=? where username=?";
			String sql = "insert into user values (?,?,?)";
			//delete , insert 和update都是类似调用 executeUpdate 方法
			//3 获取处理器
			long start = System.currentTimeMillis();
			 for (int i = 0; i < 100; i++) {
				 statement = conn.prepareStatement(sql);
				 //注入值  数字为第几个问号?  从1开始
				 statement.setString(1, "赵朔"+i);
				 statement.setString(2, "赵朔"+i);
				 statement.setInt(3, 3);
				 //4获取影响行数
				 int result = statement.executeUpdate();
			}
			 System.out.println(System.currentTimeMillis()-start);

这个执行效率偏低,我的计算机插入100条数据进去大约需要197ms。

下面来看一下jdbc的默认的批量操作方法。
相对于第一种批量操作,效率更高

long start = System.currentTimeMillis();
			statement = conn.prepareStatement(sql);
			 for (int i = 0; i < 100; i++) {// 197ms
				 //注入值  数字为第几个问号?  从1开始
				 statement.setString(1, "赵朔"+i);
				 statement.setString(2, "赵朔"+i);
				 statement.setInt(3, 3);
				 statement.addBatch();//添加到批量运算中
			}
			 //4获取影响行数 返回的是数组
			 int [] result = statement.executeBatch();
			 System.out.println(System.currentTimeMillis()-start);

这里效率相对要高一些,插入100条数据大约花了155ms,还是可以看出效率还是差了很多的。毕竟这里只有100条数据。如果你对数据量不是很明确,你可以看一下百度的搜索引擎,我就搜一下“电脑”这个名词吧。
在这里插入图片描述
可以看到光结果就有一亿条,如果是很多个关键词搜搜呢,那就是上百亿,千亿一直到你难以想象的数量级。可以想想两者的效率到底差了多少。

而后再来说一下结果集常用方法

ResultSet resultSet 
 //获取结果集中对应类型的字段值
//			 resultSet.getXXX
//			 resultSet.getString("字段名")
//			 resultSet.getString(index)
			 resultSet.getInt(columnIndex)
			 resultSet.getDate(columnIndex)
//当不知道字段类型的时候可以使用
			 resultSet.getObject(columnIndex)

//获取结果集中的所有信息
			 ResultSetMetaData rsmd = resultSet.getMetaData();
			 //结果集有多少列
			 rsmd.getColumnCount();
			 //获取指定列的列明
			 rsmd.getColumnName(column);
			 //获取指定列的类型
			 rsmd.getColumnType(column)
			 //获取指定列类型的名字
			 rsmd.getColumnTypeName(column)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值