一.什么是MyBatis
1.含义
MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。
官网:https://mybatis.org/mybatis-3/zh_CN/index.html
2.入门程序

@Mapper // 将当前接口交给Spring管理,成为Spring的bean对象,并且会自动将该实现类添加到MyBatis的IOC容器中,成为bean对象
public interface UserMapper {
@Select("select * from user")//标明进行何种操作
public List<User> findAll();//将查询结果封装成User对象,并返回一个list集合
}
@SpringBootTest
class SpringbootMybatisQuickstartApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
public void testFindAll(){
List<User> users = userMapper.findAll();
users.forEach(System.out::println);
}
}
注:SpringBoot的单元测试类上需要加上@SpringBootTest,这样会在单元测试运行时,加载springBoot的环境。
注:测试类所在包需要与引导类包名相同(或放在引导类所在包的子包下)
1. forEach 方法的作用
- users 是一个 List<User> 集合
- forEach 是 Iterable 接口提供的默认方法,用于遍历集合中的每个元素
- 该方法接受一个 Consumer<T> 函数式接口作为参数
2. 方法引用 System.out::println 的原理
- System.out 是 PrintStream 类型的对象
- println 是 PrintStream 类中的重载方法,可以接受多种参数类型
- :: 是 Java 8 引入的方法引用语法,用于简化 Lambda 表达式
3. 编译器的类型推断
- 编译器会根据 users 的泛型类型 User 自动推断出 forEach 需要的参数类型
- System.out::println 会被解释为对每个 User 对象调用 println(Object) 方法
- 这会隐式调用 User 对象的 toString() 方法进行输出
4. 等价的完整写法
users.forEach((User user) -> System.out.println(user));
// 或者
users.forEach(user -> System.out.println(user));
3.配置SQL补全功能



这样在写代码的时候,在“”里面就不是普通的字符串,会高亮提示!
但是这时候user会飘红,是因为和数据库没有建立起联系,不知道有没有这张表。
二.JDBC VS Mybatis

三.数据库连接池

数据库连接遗漏是什么:
数据库连接遗漏指的是程序在使用完数据库后,没有正确关闭连接。就像用完水龙头没关紧,导致资源持续浪费。
比如借书:
- 正常情况:借书→阅读→归还
- 连接遗漏:借书→阅读→忘记归还→图书馆最终无书可借


四.增删改查操作
1.删除


2.增加

3.修改

4.查询

比如:像阿里云创建的springboot项目中就不能省略@Param注解。
注:如果接口方法形参中,需要传递多个参数,需要通过@Param注解为参数起名字。
五.XML映射配置



六.SpringBoot项目配置文件

注:在yml格式的配置文件中,如果配置项的值是以0开头的,值需要使用' '引起来,因为以0开头在yml中表示8进制的数据。
920

被折叠的 条评论
为什么被折叠?



