java PreparedStatement操作数据库的使用方法
来源:互联网 发布:sql server 2008配置 编辑:程序博客网 时间:2024/04/25 15:22
PreparedStatement接口继承自Statement接口,PreparedStatement比普通Statement对象使用起来更加灵活更有效率.并且比Statement更加安全,因为Statement有一个漏洞就是可以sql注入
第一步:创建PreparedStatement对象
PreparedStatement pstm 同样是通过Connection的preparedStatement(sql)方法来创建对象,sql语句可具有一个或者多个输入参数,这些输入参数的值在SQL语句创建时未被指定,而是为每个输入参数保留一个问号'?'作为占位符;
示例:
下面的创建语句中就带有3个输入参数的SQL语句 pstm=con.prepareStatement("update dog set health=?,love=? where id =?");
第二步:设置每个输入参数的值
通过调用set*()方法来完成(*代表数据类型)
代码:
pstm.setInt(1,10);
pstm.setInt(2,90);
pstm.setString(3,"d1");
(注意事项:占位符位置从1开始)
第三步:执行SQL语句
执行方法与Statement一样.比如:pstm.executeUpdate();
优点: 创建PreparedStatement对象时会对SQL语句进行预编译,所以执行速度要快于Statement对象,因此,如果程序中存在需要多次执行SQL语句时,应该使用PreparedStatement对象来执行数据库操作,以提高效率
示例:
String sql="update dog set health=?,love=? where id =?";
pstm=con.prepareStatement(sql);
pstm.setInt(1,10);
pstm.setInt(2,90);
pstm.setString(3,"d1");
pstm.executeUpdate();
pstm.setInt(1,22);
pstm.setInt(2,33);
pstm.setString(3,"d2");
pstm.executeUpdate();
总结:
PreparedStatement比Statement好在哪里?
1:提高了代码的可读性和可维护性
虽然使用PreparedStatement来代替Statement会多几行代码,但避免了繁琐麻烦又容易出错的SQL语句凭借,提高了代码的可读性和可维护性
2:提高了SQL语句执行的性能
创建Statement对象时不使用SQL语句做参数,不会解析和编译SQL语句,每次调用方法执行SQL语句时都要进行SQL语句解析和编译操作,即操作相同仅仅的数据不同.
创建PreparedStatement对象时使用SQL语句做参数,会解析和编译该SQL语句,也可以使用带占位符的SQL语句做参数,在通过set*()方法给占位符赋值后执行SQL语句时无需再次解析和编译SQL语句,直接执行即可,多次执行相同操作可以大大提高性能
3:提高了安全性
PreparedStatement使用预编译语句,传入的任何数据都不会和已经预编译的SQL语句进行拼接,避免了SQL注入攻击 0 0
- java PreparedStatement操作数据库的使用方法
- Java简单的插入数据库操作:PreparedStatement
- java数据库preparedStatement的使用
- JAVA数据库操作2(PreparedStatement对象)
- 【JDBC】java PreparedStatement操作oracle数据库
- [数据库操作]Java中的JDBC的使用方法.
- 使用PreparedStatement操作数据库
- java使用安全的PreparedStatement操作mysql数据库(菜鸟入门级别的)
- java操作数据库---Statement对象和preparedStatement对象的区别(二)
- JDBC数据库操作封装(PreparedStatement)
- JSP中操作数据库的三个对象:Statement、PreparedStatement、CallableStatement
- JDBC中操作数据库的三个对象:Statement;PreparedStatement;CallableStatement
- 进行数据库插入操作的时候使用 PreparedStatement 更好
- Java数据库编程---PreparedStatement接口
- java数据库编程--PreparedStatement接口
- Statement、PreparedStatement和CallableStatement 的区别 -- JAVA 数据库
- Java PreparedStatement 的用法
- java PreparedStatement 的优点
- 类成员函数创建线程和MFC多线程UI更新问题
- 移动web应用开发-Sencha Touch篇(1)
- 中外大厂「奇葩说」:谁是技术界的嘴炮王者?
- MFC无边框DLG之支持拖动
- Opencv画半透明圆形,并能推广到所有形状
- java PreparedStatement操作数据库的使用方法
- English in October
- 个人认为Hive常用到的SQL命令
- Android样式的开发(七):Style篇
- 树的子结构
- 使用npm安装一些包失败了的看过来(npm国内镜像介绍)
- 怎么使用Js事件的绑定
- 物联网时代骑行头盔会变成什么样子
- JAVA使用POI读取EXCEL文件的简单model