zoukankan      html  css  js  c++  java
  • 3.JDBC之预编译

    由于在书写sql语句时拼接时容易出错

    举个栗子:

    String sql = "insert into stu values("+stu.getId()+",'"+stu.getName()+"',"+stu.getAge()+")";
    

    当用预编译语句时直接写成这样:

    String sql = "insert into stu values(?,?,?)";
    

    基本知识:

    预编译语句通过PrepareStatement对象实现,通过调用SetXXX(index, value)方法来传递参数。

    实例:

    String sql = "insert into stu(id,name,age) values(?,?,?)";
    prepareStatement ps = conn.prepareStatement(sql);
    			//设置sql语句的参数
    			ps.setInt(1, stu.getId());
    			ps.setString(2, stu.getName());
    			ps.setInt(3, stu.getAge());
    			//4.执行sql语句 该方法不用参数
    			ps.executeUpdate();
    

    预编译性能优化:部分数据库支持预编译池

    在这里插入图片描述

    存储过程相关:

       		//1.连接数据库
    		Connection conn = JDBCUtil.getConn();
    		//2.调用存储过程
    		 java.sql.CallableStatement cs = conn.prepareCall("{ call getStu(?,?)}");
    		//3.设置参数
    		 cs.setInt(1, 3);
    		 cs.registerOutParameter(2, Types.VARCHAR);
    		 cs.execute();
    		 
    		 String name = cs.getString(2);
    		 System.out.println(name);
    		//4.释放资源
    );
    
  • 相关阅读:
    Linux 技巧
    设计模式大集合
    [Java] Design Pattern:Code Shape
    [Java] 设计模式: Code Shape
    BookNote: Refactoring
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
  • 原文地址:https://www.cnblogs.com/ma-liner/p/14196600.html
Copyright © 2011-2022 走看看