02 mybatis-plus配置详解
前面实例中,mapper文件 继承 BaseMapper 类,直接调用BaseMapper 封装的方法;但是BaseMapper 封装的方法不一定都能满足业务,所以需要我们自定义实现
configLocations
configLocations即MyBatis 配置文件位置,如果有单独的 MyBatis 配置,请将其路径配置到 configLocations中。
- application.properties
spring.application.name = mp-springboot
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mp
spring.datasource.username=root
spring.datasource.password=root
# Logger Config
logging.level.root: debug
#指定mybatis-config.xml的位置
mybatis-plus.config-location=classpath:mybatis-config.xml
- mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
mapperLocations
mapperLocations即MyBatis Mapper 所对应的 mapper配置 文件位置,如果在 Mapper 中有自定义方法(XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置。
- application.properties
spring.application.name = mp-springboot
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mp
spring.datasource.username=root
spring.datasource.password=root
# Logger Config
logging.level.root: debug
#指定mybatis-config.xml的位置
mybatis-plus.mapper-locations = classpath*:li/chen/com/mapper/*.xml
注意:
1 mapper配置文件UserMapper.xml在resources中路径与java对应的UserMapper.java 路径一致时,可不配mapper-locations;(注意resources中目录写法,如果报错找不到文件可以去target检查文件路径)
2 若UserMapper.xml在resources路径与UserMapper.java 路径不一致时,需要配置。

3 若UserMapper.xml 与 UserMapper.java 在同一目录下,需要在pom.xml加上如下配置(且不需要配置mapper-locations)

pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!--mapper文件与xml温江放在同一文件夹下,需添加此配置-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
typeAliasesPackage
设置MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名(即 XML 中调用的时候不用包含包名)。
# 配置实体类的别名路径
mybatis-plus.type-aliases-package=li.chen.com.pojo
mapUnderscoreToCamelCase
是否开启自动驼峰命名规则(camel case)映射,即从数据库列名 A_COLUMN(下划线命名) 到经典 Java属性名 aColumn(驼峰命名) 的类似映射。
1 在application.properties中配置
#指定mybatis-config.xml的位置
# mybatis-plus.config-location=classpath:mybatis-config.xml 注释config‐location
#开启自动驼峰映射,注意:配置configuration.map‐underscore‐to‐camel‐case则不能配置config‐location
mybatis‐plus.configuration.map‐underscore‐to‐camel‐case=true
2 在mybatis-config.xml中配置(不注释config‐location)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!--#开启自动驼峰映射,注意:配置configuration.map‐underscore‐to‐camel‐case则不能配置config‐location-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
实体类中,自动将驼峰格式字段映射数据库字段为下划线格式

项目文件

坐标文件
pom.xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>li.chen.com</groupId>
<artifactId>springboot_mybatisplus</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--简化代码的工具包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mybatis-plus的springboot支持-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!--mapper文件与xml温江放在同一文件夹下,需添加此配置-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
</project>
配置文件
application.properties
spring.application.name = mp_springboot
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mp
spring.datasource.username=root
spring.datasource.password=root
# Logger Config
logging.level.root: debug
#指定mybatis-config.xml的位置
mybatis-plus.config-location=classpath:mybatis-config.xml
#指定mapper文件位置(注意,此配置时,根路径时在resources,若mapper.xml配置在java文件中,此配置无效,需要在pom文件中配置)
#mybatis-plus.mapper-locations = classpath*:li/chen/com/mapper/*.xml
# 配置实体类的别名路径
mybatis-plus.type-aliases-package=li.chen.com.pojo
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!--#开启自动驼峰映射,注意:配置configuration.map‐underscore‐to‐camel‐case则不能配置config‐location-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
java文件
实体类
package li.chen.com.pojo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data //自动生成对应的get,set方法及构造方法
@TableName("tb_user") //对应数据库表名
public class User {
@TableId("id") //指定主键字段名
private Long id;
// @TableField("user_name") //指定对应字段名
private String userName;
@TableField("password")
private String passWord;
@TableField("name")
private String name;
@TableField("age")
private Integer age;
@TableField("email")
private String email;
@TableField("birthday")
private String birthday;
}
mapper文件
- UserMapper
package li.chen.com.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import li.chen.com.pojo.User;
public interface UserMapper extends BaseMapper<User> {
public User findById(Long id);
}
- 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="li.chen.com.mapper.UserMapper">
<select id="findById" resultType="user" parameterType="java.lang.Long">
select * from tb_user where id = #{id}
</select>
</mapper>
启动类
package li.chen.com;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
@MapperScan("li.chen.com.mapper")
@org.springframework.boot.autoconfigure.SpringBootApplication
public class SpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootApplication.class,args);
}
}
测试文件
package li.chen.com.mapper;
import li.chen.com.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
UserMapper userMapper;
@Test
public void TestSelect(){
//查询tb_user所有记录
List<User> users = userMapper.selectList(null);
System.out.println(users);
}
@Test
public void TestFindById(){
//查询指定id用户
User user = userMapper.findById(2L);
System.out.println(user);
}
}
运行查看

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)