目录
Mybatis持久层框架:操作数据库的框架,方便对数据进行增删改查。
实现:注解、xml
实际开发中这两种方式可以共存。
工作中尽可能的避免使用多表查询,尤其是对性能要求非常高的项目。
准备两个表,文章表和用户表
根据文章ID,获取作者相关信息
通过MySQL数据库关联两者
通过mybatis的方式实现多表查询
创建数据库字段与Java对象的映射
创建操作类ArticleInfoMapper,在这个类中实现对数据库的操作,根据这个类中的方法自动生成操作方法测试类ArticleInfoMapperTest。
单表查询
多表查询
打印不完整的原因是Java对象中不存在userinfo和age两个属性
在Java对象定义中加上后即可
SQL中直接查询多个表,把查询结果放在一个对象即可
mybatis的参数赋值有两种方式,下介绍#{}和${}两者的区别。
赋值为Integer类型时:
赋值为字符串类型时:
把${}外加上引号,运行成功:
使用#时,如果参数为Srting会自动加上引号。
$不会自动加上引号,$是直接拼接,如果是字符串类型,需要加上引号'${}'
SQL执行的顺序:语法解析、SQL优化、SQL执行
区别:
1)最根本的区别:$存在的漏洞:SQL注入?
SQL语句中的降序和升序,desc和esc本身不需要带引号,#会自动添加引号,程序就会报错,所以只能使用$.
模糊查询使用#的方式
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新创建一个。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
Hikari性能更好, Druid功能更强大。