JDBC占位符

占位符的使用

Statement 接口的两个问题:
  第一个问题: 使用 Statement 接口 对象发送的 sql 语句需要再数据库进行一次编译之后成为指令才能执行,
            每条 sql 语句都需要编译一次, 这样是很慢的.
  第二个问题: 使用 Statement 接口 操作的 sql 语句需要使用字符串的拼接方式实现,
          这样的方式可能存在 sql 注入的安全风险并且拼接字符串比较麻烦.

对比 Statement 接口, PreparedStatement 接口的优点:
  1.使用该接口操作的 sql 语句会先预先编译成指令在发送给数据库, 数据库就执行指令即可, 这样就提高了一定速度,
  2.该接口可以避开 sql 需要使用字符串拼接的方式, 从而解决 sql 注入的安全风险,
  而是使用 占位符 (?) 来代替原来的字符串拼接.

Demo:实现无密码登录
不使用 sql 字符串拼接, 而是使用占位符来实现

 1 public class TestMysql1 {
 2     //取得连接
 3     private static Connection conn =ConnectionUitl.getConnection();
 4     
 5     public static void main(String[] args) {
 6         selectLogin("smith","1234");
 7     }
 8     /**
 9      *     实现登录
10      * @param name    用户名
11      * @param password    密码
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值