Preparedstatement和Statement

 Preparedstatement

Statement 和 PreparedStatement 的区别 

 1. 预编译:SQL 语句被预编译并存储在 PreparedStatement 对象中。 在真正执行前,才把参数传递给 SQL 语句,并且可以反复执行。 

例子:

//1.创建 PreparedStatement,预编 sql 语句
String sql = "select * from student where id=?";//预编译 sql 语句 特点: 可以使用?临时代替需要执行参数
值
PreparedStatement stmt = conn.prepareStatement(sql);
//2.给参数赋值(让?使用真实的数据代替)
//参数一:参数序号,从 1 开始
stmt.setInt(1,2);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
 int id = rs.getInt("id");
 String name = rs.getString("name");
 String gender = rs.getString("gender");
 System.out.println(id+"\t"+name+"\t"+gender);
}
stmt.close();
conn.close(); 

statement的创建:

//1.得到连接
conn = JdbcUtil.getConnection();
//2. 创建语句对象
stmt = conn.createStatement();
//3. 查询数据库得到结果集
rs = stmt.executeQuery(sql);
//4. 查看是否有结果集
if (rs.next()) {
//通过列名读取
System.out.println("欢迎您!" + rs.getString("name"));
}
else {
System.out.println("用户名或密码不正确");
}

 2. 缓存: 有缓存的,使用缓存可以提升运行速度。 

 3. 安全性:安全性更高,没有 SQL 注入的隐患。 

4. Statement 对象是在创建的时候没有 SQL 语句,执行的时候才提供 SQL 语句 PreparedStatement 在创建对象的时候就提供了 SQL 语句,执行之前提供参数,运行的时候没有 SQL 语句。

5,。 preparestatement因为预编译机制,创建的代价是大于statement的,因此在执行单条sql时,并不会比statement效率高。但由于预编译机制,在执行多条重复sql时,preparestatement效率要高于statement。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值