公司原jdbc框架使用c3p0连接池管理连接,有自己的连接封装,但是操作数据库的sql语句使用的是string拼接的方式,这严重影响到系统的安全(sql注入);
于是心生重新封装jdbc操作工具类;
初步在查询和修删的方法中做了下面的操作,具体方法分享出来,并把做好点封装和原来封装做了一个操作时间对比:发现速度也有一定的提升!
在这里做一个记录!
execute()方法现在和原来方法对比:
原来:
现在:
其中把捕获的Exception有使用throw抛出,因为在实际使用中这个sql错误信息关系到系统的设计,需要在这里抛出。
同样find()方法也做了同样的操作。
获取sql结果使用prepareStatement,参数按照?(占位符)顺序和相应位置的参数实际类型add到list parameters中。
在查询和修删中使用getPreparedStatement方法,参数使用java反射添加到PreparedStatement。
具体方法如下:
测试中做了10次的插入和查询,时间如下
发现使用perpareStatement比statement快,度娘了哈,发现度娘是这样说的:
(注:应用度娘百科)