Springboot2.0集成mybatis

1、配置application.properties

spring.datasource.url=jdbc:mysql://localhost:3306数据库名称&useSSL=false
spring.datasource.username=root
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.type-aliases-package=com.example.springbootmybatis.mapper - mapper类包名
mybatis.mapper-locations=classpath:mapper/*.xml

注意:数据库连接不加上useSSL=false的话,结束服务器时会报错:
javax.net.ssl.SSLException
MESSAGE: closing inbound before receiving peer’s close_notify
STACKTRACE:
javax.net.ssl.SSLException: closing inbound before receiving peer’s close_notify
2、创建自动生成xml和mapper的plugin
- 1、Resource下创建:mapper目录用于存放.xml;复制generatorConfig.xml,修改对应配置:
1、 从External Libraries类库找到mysql-connector-java,右键复制path,填上
2、jdbc配置:jdbc:mysql://localhost/数据库名称?nullCatalogMeansCurrent=true
nullCatalogMeansCurrent避免生成UserWithBLOBs类似的实体类
3、bean和model地址
4、Dao地址
5、mapper xml放置地址配置

- 2、按照generatorConfig.xml的包配置在src/main/java下创建 bean实体目录和DAO的mapper目录
- 3、pom.xml添加plugin,在build/plugins/内添加插件配置
      <!--mybatis文件生成插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.15</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
- 4、maven自动生成plugin后,找到mybatis-generator下的generate,双击就进行生成了

3、查看自动生成的model、mapper,xml文件是否正确,在mapper内添加@Mapper标识,手动书写接口需要添加@Select sql语句:

@Mapper
public interface UserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    User selectByPrimaryKey(Integer id);

    List<User> selectAll();

    int updateByPrimaryKey(User record);

    @Select("select * from user where id = #{id}")
    User selectByID(@Param("id") Integer id);
}

4、error:
如果已生成的xml没有删除又运行,会将原有的文件中重新添加上重复的字段, 报出现id有重复的值的错误:

Result Maps collection already contains value for com.example.springbootmybatis.mapper.UserMapper.BaseResultMap

方法:把生成的xml删除清空,重新生成即可

附:generatorConfig.xml

<?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>
    <classPathEntry  location="/Users/xiejc/.m2/repository/mysql/mysql-connector-java/8.0.15/mysql-connector-java-8.0.15.jar"/>
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost/test20?nullCatalogMeansCurrent=true" userId="root" password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成实体的包名和位置-->
        <javaModelGenerator targetPackage="com.example.springbootmybatis.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.springbootmybatis.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值