介绍
Java技术操作数据库
MyBatis是一款优秀的持久层框架
用于简化JDBC的开发
优秀的持久层框架
我们要基于Springboot整合Mybatis
实操
学习
基于Mybatis是如何操作数据库的
通过MyBatis书写SQL语句
SQL语句执行完毕后
会将查询结果返回给Java程序
表中数据会自动封装到对象的属性中
进行自动封装
我们在学习mybatis重点是学习编写SQL语句
注解/XML
基于Springboot工程
提前下载依赖会让构建项目的速度变快
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!--所有项目的父工程 指定了springboot工程的版本--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!-- Generated by https://start.springboot.io --> <!-- 优质的 spring/boot/data/security/cloud 框架中文文档尽在 => https://springdoc.cn --> <groupId>com.bigdate</groupId> <artifactId>Mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Mybatis</name> <description>Mybatis</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mybatis起步依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency> <!--MySQL驱动包--> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <!--Springboot单元测试所需要的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter-test</artifactId> <version>3.0.3</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
学习关键在于 编写SQL语句
创建实体类 pojo包下的User类
package com.bigdate.mybatis.pojo; public class User { private Integer id; private String name; private Short age; private Short gender; private String phone; public User() { } public User(Integer id, String name, Short age, Short gender, String phone) { this.id = id; this.name = name; this.age = age; this.gender = gender; this.phone = phone; } /** * 获取 * @return id */ public Integer getId() { return id; } /** * 设置 * @param id */ public void setId(Integer id) { this.id = id; } /** * 获取 * @return name */ public String getName() { return name; } /** * 设置 * @param name */ public void setName(String name) { this.name = name; } /** * 获取 * @return age */ public Short getAge() { return age; } /** * 设置 * @param age */ public void setAge(Short age) { this.age = age; } /** * 获取 * @return gender */ public Short getGender() { return gender; } /** * 设置 * @param gender */ public void setGender(Short gender) { this.gender = gender; } /** * 获取 * @return phone */ public String getPhone() { return phone; } /** * 设置 * @param phone */ public void setPhone(String phone) { this.phone = phone; } public String toString() { return "User{id = " + id + ", name = " + name + ", age = " + age + ", gender = " + gender + ", phone = " + phone + "}"; } }
配置数据库的连接信息
springboot自带的配置文件
spring.application.name=Mybatis #配置数据库的链接信息 #驱动类名称 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #数据库连接的url spring.datasource.url=jdbc:mysql://localhost:3306/mybatis #连接数据库的用户名 spring.datasource.username=root #连接数据库的密码 spring.datasource.password=123456
书写Mapper包下的持久层的接口
我们把对象封装到一个集合里面
package com.bigdate.mybatis.mapper; import com.bigdate.mybatis.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper//表示当前是Mybatis的一个接口 此时程序运行时框架会自动生成实现类对象(代理对象) 并交给spring的ioc容器 public interface UserMapper { //查询全部用户信息 @Select("select * from user") public List<User> list(); }
表示当前是Mybatis的一个接口 此时程序运行时框架会自动生成实现类对象(代理对象) 并交给spring的ioc容器管理
实现类对象就是之前动态代理阶段学习的代理对象
已经成为IOC容器中的bean对象
我们之后要想在单元测试中启动测试就可以用依赖注入的方式使用bean对象
调用bean对象的list方法
userMapper.list()来把数据放到集合里
在Springboot整合单元测试中启动
我们可以在这个类中做一个测试
基于stream流的方式遍历
package com.bigdate.mybatis; import com.bigdate.mybatis.mapper.UserMapper; import com.bigdate.mybatis.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; @SpringBootTest //springboot整合单元测试的注解 class MybatisApplicationTests { @Autowired //依赖注入方式 private UserMapper userMapper; @Test public void testListUser(){ List <User> userList =userMapper.list(); userList.stream().forEach(user -> { System.out.println(user); }); } }
启动
数据返回成功
这样快速入门程序就完成了
小结