占位符的使用

设置占位符

PreparedStatement和Statement的区别? [面试题]
PreparedStatement是Statment的子类
PreparedStatement支持SQL语句预编译、支持设置占位符,有效防止SQL注入

使用占位符的优势:1.防止SQL注入
2.比字符串拼接要简单

一、设置占位符
二、ORM
三、DAO

JDBC代码步骤
贾琏预执事!!!!
1.加载启动
2.获取数据连接
3.预编译SQ语句(设置占位符)
4.执行SQL语句 (如果是查询,处理ResultSet结果集)
5.释放资源(rs.close(),ps.close(),conn.close())
localhost!!! localhost!!! localhost!!!

一。设置占位符
1.SQL注入
用户将一些非法数据输入到我们系统中,并且和SQL语句拼接到了一起,导致了不希望看到的结果
比如:即便用户和密码错了,这个SQL语句也可以查询出来数据

2.使用JDBC的占位符
以添加为列解释占位符(?)使用
SQL语句数据相关的地方使用?代替

PreparedStatement ps = conn.prepareStatement(“insert into t_book values(seq_book.nextval,?,?,?)”);

给占位符赋值 setXXX(占位符对应数字,赋的值)第一个参数从1开始
ps.setString(1,“金瓶梅”);
ps.setString(2,“笑笑生”);
ps.setDouble(3,60);
ps.executeUpdate();

二、ORM
object relation mapping(java对象 关系型数据库 映射)
项目中和表成对应关系的这个类统称为【实体类】

java 数据库
类 表
类的属性(建议和字段名一致) 表中字段
类创建的一个对象 表中的一行数据

三、DAO
database access object(数据库访问模型)
将一张表的增删改查操作都放在一个类中完成
t_book表 -----》(BookDao接口、BookDaoImpl实现类)
t_hero表 ------》(HeroDao接口、HeroDaoImpl实现类)
为什么要写XXXDao接口,目的是为了解耦合,先把这种写法当成一种规范

你可能感兴趣的:(占位符的使用)