前端网页特效搜索引擎优化的定义
目录
- MyBatis 是什么?
 - MyBatis框架搭建
 - 1.添加MyBatis框架
 - 2.设置MyBatis配置
 - 数据库的相关链接信息
 - xml 保存路径和命名格式
 
- 根据MyBatis写法完成数据库的操作
 - MyBatis插件
 - MyBatis传递参数查询
 - ${} 和 #{} 有什么区别?
 - SQL注入问题
 
- MyBatis like查询
 - MyBatis多表查询
 - MyBatis删除操作
 - MyBatis修改操作
 - MyBatis添加操作
 
MyBatis 是什么?
MyBatis 是⼀款优秀的持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射。MyBatis 去除了⼏乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接⼝和 Java POJO(Plain Old Java Objects,普通⽼式 Java 对象)为数据库中的记录。
MyBatis ORM(对象关系映射框架) 实现更加简单的操作数据库的框架。它的底层是基于JDBC。
MyBatis框架搭建
1.添加MyBatis框架

2.设置MyBatis配置
数据库的相关链接信息
# 设置数据库的相关链接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mycnblog2023?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 
xml 保存路径和命名格式
# 设置MyBatis XML 存放路径和命名格式
mybatis.mapper-locations=classpath:mybatis/*Mapper.xml
 
# 配置MyBatis 执行时执行打印SQL
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
logging.level.com.example.demo=debug
 
根据MyBatis写法完成数据库的操作
常规的写法:包含两个文件:
 1.接口:方法的声明(给其他层(Service)调用)
 2.XML:实现接口
1.定义接口
 
 2.使用XML实现接口
 
MyBatis插件
为了方便开发MyBatis,实现XML和对应的接口之间的快速跳转,可以安装一个MyBatisX的插件
 
 
MyBatis传递参数查询

类中的属性和数据库表中的字段名不一致时,那么查询结果为null,解决方案:
1.将类中的属性和表中的字段名保持一致(最简单的解决方案)。
2.使用SQL语句中的as进行列名(字段名)重命名,让列名(字段名)等于属性名。
 

3.定义一个resultMap,将属性名和字段名进行手动映射。
 

及时执行:
 
 
 **预执行:**它的执行是安全的可以防止SQL注入。
 
 
${} 和 #{} 有什么区别?
- ${} 直接替换;#{} 预执行。
 - ${} 是不安全,存在SQL注入;#{} 是安全的,不存在SQL注入。
 
SQL注入问题

 从上面的示例可以看出${}可以实现的
 功能#{}都能实现,并且 ${}还存在SQL注入问题,那为什么 ${}的写法还存在?



 
 
${}适用场景:当业务需要传递SQL命令时,只能使用 ${},不能使用#{}
${}注意事项:如果要使用 ${},那么传递的参数一定要能被穷举,否则不能使用。
 
MyBatis like查询

like 使⽤ #{} 报错
 
 
 相当于: select * from userinfo where username like ‘%‘username’%’;

 
MyBatis多表查询
MyBatis注解方式实现多表查询
 
MyBatis删除操作

 
 
 
MyBatis修改操作


 
 
MyBatis添加操作
MyBatis添加,返回受影响的行数
 
 
 
 
 MyBatis添加,返回自增ID
 
 
 
