工程结构
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">
<parent>
<artifactId>springboot-demo</artifactId>
<groupId>cn.xiaojf</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties> <artifactId>springboot-mybatis-plus</artifactId> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency> <dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.1.7</version>
</dependency> <dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>1.0.5</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
</dependencies>
</project>
application.properties
#应用端口号
server.port=8010
#freemarker 默认文件后缀
spring.freemarker.suffix=.html #数据库设置
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root #mybatis plus 设置
mybatis-plus.mapper-locations=classpath:/mapper/*Mapper.xml
#实体扫描,多个package用逗号或者分号分隔
mybatis-plus.typeAliasesPackage=cn.xiaojf.springboot.mybatisplus.entity
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
mybatis-plus.global-config.id-type=2
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
mybatis-plus.global-config.field-strategy=2
#驼峰下划线转换
mybatis-plus.global-config.db-column-underline=true
#刷新mapper 调试神器
mybatis-plus.global-config.refresh-mapper=true
#数据库大写下划线转换
#mybatis-plus.global-config.capital-mode=true
#序列接口实现类配置
#mybatis-plus.global-config.key-generator=com.baomidou.springboot.xxx
#逻辑删除配置
mybatis-plus.global-config.logic-delete-value=0
mybatis-plus.global-config.logic-not-delete-value=1
#自定义填充策略接口实现
#mybatis-plus.global-config.meta-object-handler=com.baomidou.springboot.xxx
#自定义SQL注入器
#mybatis-plus.global-config.sql-injector=com.baomidou.springboot.xxx
mybatis-plus.configuration.map-underscore-to-camel-case=true
mybatis-plus.configuration.cache-enabled=false
MybatisPlusConfig.java
package cn.xiaojf.springboot.mybatisplus.configure; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration; @Configuration
@MapperScan("cn.xiaojf.springboot.mybatisplus.mapper*")
public class MybatisPlusConfig { }
UserMapper.java
package cn.xiaojf.springboot.mybatisplus.mapper; import cn.xiaojf.springboot.mybatisplus.SuperMapper;
import cn.xiaojf.springboot.mybatisplus.entity.User; import java.util.List; public interface UserMapper extends SuperMapper<User> {
List<User> findByUserName(String name); User findUserAddrByName(String name);
}
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="cn.xiaojf.springboot.mybatisplus.mapper.UserMapper">
<resultMap id="userAddr" type="cn.xiaojf.springboot.mybatisplus.entity.User">
<id column="user_id" property="id"></id>
<result column="user_name" property="name"></result>
<result column="user_age" property="age"></result>
<collection property="userAddrList" ofType="cn.xiaojf.springboot.mybatisplus.entity.UserAddr">
<id column="addr_id" property="id"></id>
<result column="addr_name" property="name"></result>
<result column="user_id" property="userId"></result>
</collection>
</resultMap> <select id="findByUserName" resultType="cn.xiaojf.springboot.mybatisplus.entity.User">
SELECT * FROM sys_user
</select> <select id="findUserAddrByName" resultMap="userAddr">
SELECT
u.id AS user_id,u.`name` AS user_name ,u.age AS user_age,addr.`name` AS addr_name,addr.id AS addr_id
FROM
sys_user u
LEFT JOIN sys_user_addr addr ON u.id = addr.user_id
WHERE
u.name = #{name}
</select> </mapper>
源码
https://gitee.com/xiaojf/springboot-demo/tree/master/springboot-mybatis-plus