登陆

用户

下一篇:通过PreparedStatement 对数据库进行增删改查

使用PreparedStatement执行sql增、删、改、查语句

来源:荣华软件   2018-06-06 09:19

Statement与PreparedStatement的区别:
1. PreparedStatement可以写动态参数化的查询
用PreparedStatement你可以写带参数的sql查询语句,通过使用相同的sql语句和不同的参数值来做查询比创建一个不同的查询语句要好
2. PreparedStatement比 Statement 更快
PreparedStatement用来执行SQL语句查询的时候。数据库系统会对sql语句进行预编译处理,预处理语句将被预先编译好,这条预编译的sql查询语句能在将来的查询中重用,这样一来,它比Statement对象生成的查询速度更快。
3. PreparedStatement可以防止SQL注入式攻击
如果你是做Java web应用开发的,那么必须熟悉那声名狼藉的SQL注入式攻击。Sony就遭受了SQL注入攻击,被盗用了一些Sony play station(PS机)用户的数据。在SQL注入攻击里,恶意用户通过SQL元数据绑定输入。
例如:

PreparedStatement的局限性
尽管PreparedStatement非常实用,但是它仍有一定的限制。
为了防止SQL注入攻击,PreparedStatement不允许一个占位符(?)有多个值,在执行有IN子句查询的时候这个问题变得棘手起来。
注意:占位符索引位置从1开始,而不是从0开始。
接下来给大家展示使用使用·PreparedStatement·执行sql增、删、改、查语句的过程:
实体类

PreparedStatement的局限性
尽管PreparedStatement非常实用,但是它仍有一定的限制。
为了防止SQL注入攻击,PreparedStatement不允许一个占位符(?)有多个值,在执行有IN子句查询的时候这个问题变得棘手起来。
注意:占位符索引位置从1开始,而不是从0开始。
接下来给大家展示使用使用·PreparedStatement·执行sql增、删、改、查语句的过程:

实体类



 
public Emp(int empno, String ename, String job, int mgr, Date hiredate, double sal, double comm, int deptno) {

public Emp(String ename, String job, int mgr, Date hiredate, double sal, double comm, int deptno) { super();


dao接口

工具类




dao接口的实现


String sql = "insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) " + "values (?,?,?,?,?,?,?,?)"; Object obj[] = {emp.getEmpno(),emp.getEname(),emp.getJob(),emp.getMgr(), emp.getHiredate(),emp.getSal(),emp.getComm(),emp.getDeptno()}; DBUtils.update(sql, obj);


@Override public boolean update(Emp emp) { String sql = "update emp set ename=?,job=?,mgr=?,hiredate=?,sal=?,comm=?,deptno=? where empno=?"; Object obj[] = {emp.getEname(),emp.getJob(),emp.getMgr(), emp.getHiredate(),emp.getSal(),emp.getComm(),emp.getDeptno(),emp.getEmpno()}; re = DBUtils.update(sql, obj); DBUtils.close(null, ps, conn); return re; }

测试类



0条回答

登陆后可回复

  1. 登陆
  2. 注册

推荐新闻

服务热线

400-692-8081

售前咨询(09:00-18:00)

联系我们

名称:烟台荣华软件科技有限公司

地址:烟台市高新区航天路101号C栋5楼516

座机:0535-3458081

邮箱:001@rongsoft.com

Q Q:327195471

Copyright@2018 烟台荣华软件科技有限公司 版权所有 鲁ICP备14003838号-1