PrepareStatement


使用步骤

1: 定义sql的时候参数值使用占位符 ? 替换

2: 获取PrepareStatement对象传入sql

3: 使用PrepareStatement的setXxx方法给占位符复制

参数:

* int类型: 就是占位符的编号 ,从1开始

* Xxx类型: 要赋的具体的值

4: 执行sql的时候不需要传递具体的sql


优点

1: 防止sql注入

2: 提高效率

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import com.loaderman.jdbc.utils.JdbcUtil;

/**

 * 预编译的执行sql的对象

 */

public class PreparedStatementDemo {

         public static void main(String[] args) throws Exception {

                   // 获取连接对象

                   Connection conn = JdbcUtil.getConnection() ;

                   // 定义sql

                   String sql = "select * from user where uid = ?" ;

                   // 获取PreparedStatement对象

                   PreparedStatement ps = conn.prepareStatement(sql) ;

                   // 给占位符设置值

                   // 第一个参数占位符所对应的角标(角标从1开始), 第二个参数表示具体的值 ;

                   ps.setInt(1, 1) ;

                   // 执行

                   ResultSet rs = ps.executeQuery() ;

                   while(rs.next()) {

                            int uid = rs.getInt(1) ;

                            String name = rs.getString(2) ;

                            String password = rs.getString(3) ;

                            System.out.println(uid + "---" + name + "---" + password);

                   }

                   //释放资源

                   JdbcUtil.close(conn, ps, rs) ;

         }

}
原文地址:https://www.cnblogs.com/loaderman/p/6415307.html