介绍
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;@Testpublic void testListUser(){List <User> userList =userMapper.list();userList.stream().forEach(user -> {System.out.println(user);});}}
启动
数据返回成功
这样快速入门程序就完成了