博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SpringBoot - 09整合MyBatis

Posted on 2021-01-03 15:14  Kingdomer  阅读(78)  评论(0编辑  收藏  举报

SpringBoot - 09整合MyBatis

(1)搭建项目环境

(1.1)修改POM文件,引入GAV坐标

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>   // 数据库驱动
            <version>5.1.43</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>                  // Druid数据源
            <version>1.1.19</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

(1.2)配置文件

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: root
    password: ****
    type: com.alibaba.druid.pool.DruidDataSource

 

(2)配置Maven的generator插件

(2.1)添加generator插件坐标

            <!-- 配置generator插件 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.43</version>
                    </dependency>
                </dependencies>

                <!--指定配置文件的路径-->
                <configuration>
                    <configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

(2.2)添加generator配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="MySQLTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释  true: 是 false: 否-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!-- 数据库的连接信息-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/dev?useSSL=false"
                        userId="root"
                        password="Mysql2020">
        </jdbcConnection>
        <!-- 默认为false, 把JDBC DECIMAL 和 NUMERIC类型解析为Integer,
                 为true, 把NUMERIC类型解析为java.math.BigDecimal-->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- targetProject: 生成POJO类的位置-->
        <javaModelGenerator targetPackage="com.bearpx.mybatis.entity" targetProject=".\src\main\java">
            <!-- enableSubPackages: 是否让schema作为包的后缀-->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格-->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject: mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="mapper"  targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage: mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.bearpx.mybatis.dao"  targetProject=".\src\main\java">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table schema="" tableName="users"></table>
    </context>
</generatorConfiguration>

(2.3)添加generator配置文件的DTD文件

(2.4)运行generator插件生成代码

配置资源拷贝插件

 

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.html</include>
                </includes>
            </resource>
        </resources>
    </build>

 

 

 

 

生成代码

 

 

 

 

 

(3)测试用户模块

(3.1)添加MapperScan扫描接口

@SpringBootApplication
@MapperScan("com.bearpx.mybatis.dao")  // 指定扫描接口与映射配置文件的包名
public class SpringBoot09MybaitsApplication {

 

 

(3.2)配置文件

mybatis:
  mapper-locations: classpath:/mapper/*.xml        // 扫描classpath中mapper目录下的映射配置文件,针对于映射配置文件放到了resources目录下
  type-aliases-package: com.bearpx.mybatis.entity  // 定义包别名,使用pojo时可以直接使用pojo的类型不用加包名

 

(3.3)编写UserService实现类

@Component
public class UserServiceImpl implements UserService {

    @Autowired
    private UsersMapper usersMapper;

    @Override
    public void addUsers(Users users) {  this.usersMapper.insert(users);  }

    @Override
    public List<Users> selectUsersAll(){
        UsersExample usersExample = new UsersExample();
        return this.usersMapper.selectByExample(usersExample);
    }

    @Override
    public Users findUserById(Integer id){ return this.usersMapper.selectByPrimaryKey(id); }

    @Override
    public void modifyUser(Users users) {  this.usersMapper.updateByPrimaryKey(users); }

    public void dropUser(Integer id){  this.usersMapper.deleteByPrimaryKey(id); }
}

 

(3.4)其他代码与整合JDBC一致