preparedstatement和statement的区别,还有callablestatement

preparedstatement:
1,可以采用占位符, 可读性和可维护性上来说.都比直接用Statement的代码高很多档次:
eg:
perstmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");
perstmt.setString(1,var1);
perstmt.setString(2,var2);
perstmt.setString(3,var3);
perstmt.setString(4,var4);
perstmt.executeUpdate();

2、预编译,提高性能:所以语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中。

3、防止sql注入。
使用预编译语句,传入的任何内容就不会和原来的语句发生任何匹配的关系,一定程度上防止了sql注入。
如果使用普通的statement,有可能要对drop等做费尽心机的判断和过滤。
附:callablestatement
提供了对输出和输入/输出参数(INOUT)的支持; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值