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) ;
}
}
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
浙公网安备 33010602011771号