java中commit_怎么设置commit()提交?

预编译PreparedStatement 使用范围:当执行相似sql语句的次数比较多(例如用户登陆,对表频繁操作。。)语句一样,只是具体的值不一样,被称为动态SQL优点:语句只编译一次,减少编译次数。提高了安全性(阻止了SQL注入)缺点: 执行非相似SQL语句时,速度较慢。

原理:相似SQL只编译一次,减少编译次数名词解释:SQL注入:select * from user where username="张三" and password="123" or 1=1;前面这条语句红色部分就是利用sql注入,使得这条词句使终都会返回一条记录,从而降低了安全性。

事例执行过程: public void exec2(Connection conn){ try { Long beginTime = System。currentTimeMillis(); conn。

setAutoCommit(false);//手动提交 PreparedStatement pst = conn。prepareStatement("insert into t1(id) values (?)"); for(int i=0;i<10000;i++){ pst。

setInt(1, i); pst。execute(); } conn。commit(); Long endTime = System。

currentTimeMillis(); System。out。println("Pst用时:"+(endTime-beginTime)+"秒");//计算时间 pst。

close(); conn。close(); } catch (SQLException e) { e。printStackTrace(); } }执行时间:Pst用时:14秒 3。

使用PreparedStatement + 批处理使用范围:一次需要更新数据库表多条记录优点:减少和SQL引擎交互的次数,再次提高效率,相似语句只编译一次,减少编译次数。提高了安全性(阻止了SQL注入)缺点:原理:批处理: 减少和SQL引擎交互的次数,一次传递给SQL引擎多条SQL。

名词解释:PL/SQL引擎:在oracle中执行pl/sql代码的引擎,在执行中发现标准的sql会交给sql引擎进行处理。SQL引擎:执行标准sql的引擎。事例执行过程:public void exec3(Connection conn){ try { conn。

setAutoCommit(false); Long beginTime = System。currentTimeMillis(); PreparedStatement pst = conn。

prepareStatement("insert into t1(id) values (?)"); for(int i=1;i<=10000;i++){ pst。

setInt(1, i); pst。addBatch();//加入批处理。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值