JavaWeb零基础学习Day7——MyBatis

一.什么是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进制的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值