使用步骤
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) ; } }