前面实例中,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);

    }

}

运行查看
在这里插入图片描述

Logo

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

更多推荐