介绍
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);
});
}
}
启动
数据返回成功
这样快速入门程序就完成了