MyBatis + Plus 的这个系列, 我将把一些快速案例列出, 做好笔记, 以便能够快速回忆.
1. 项目的创建和基础设置
1. 1 Spring Initializr项目的创建
这部分的知识, 构建项目本身的一些操作, 基础配置, 可能比知识点本身更重要.
1.2 依赖
<!-- MyBatisPlus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--LomBok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <optional>true</optional>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
1.3 文件夹结构
java文件中包含 demo 和 resources 两个文件;
具体的java文件, 都包含在demo之中再去分包儿;
resources包中包含一个mappers 包, 用来放xml文件. xml文件中装的是sql语句;
resources 包中还需要一个 application.yml文件, 用来进行数据库的连接配置 / 端口号配置;
1.4 application.xml 文件的设置
设置datasource 数据库源,
需要设置mybatis, 实现mappers.xml文件与主程序的连接;
也可以设置端口号;
spring:
# 配置数据源信息
datasource:
# 配置数据源类型
type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库信息
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test1114?characterEncoding=utf-8&useSSL=false
username: root
password: 123456
#mybatisPlus相关配置
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
#设置端口号
server:
port: 8088
1.5 主类(启动类)的配置
@SpringBootApplication
@MapperScan("demo.dao")
public class Demo {
public static void main(String[] args){
SpringApplication.run(Demo.class,args);
}
}
@MapperScan("") 扫描demo文件夹内的dao文件夹, 获取里面的数据
2. 简单案例: 模拟实现登录功能
需求: 能够通过向方法传参, 返回登录是否成功的信息 , 数据存MySQL数据库;
2.1 创建实体类, 与数据库表建立关联
package demo.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data //生成Get和Set方法,重写toString
@AllArgsConstructor //生成有参构造器
@NoArgsConstructor //生成无参构造器
@TableName("t_user") //设置表名
public class User {
@TableId //指定主键id
private Long id;
private String userName;
private String passwd;
}
实体类的属性之上可以添加下面标签, 来建立"数据库属性 - 实体类属性"之间的连接;
@TableField("user_name") 位置: 实体类中属性上方; 功能: 属性与数据库表格相连接 , 指定对应属性, 用来解决名称不统一的问题
2.2 创建dao, 继承BaseMapper
package demo.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import demo.entity.User;
public interface UserDAO extends BaseMapper<User> {
public User login(String userName,String password);
}
2.3 创建UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="demo.dao.UserDAO">
<select id="login" resultType="demo.entity.User">
select * from t_user where user_name=#{userName} and passwd=#{passwd}
</select>
</mapper>
2.4 在controller中实现具体功能
@RequestMapping("/login")
public String login(String userName, String passwd){
User u = dao.login(userName, passwd);
if(u != null){
return "登录成功";
} else {
return "登录失败";
}
}