spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件

文章目录

  • mybatis generator
  • mybatis配置类
  • 配置插件
  • mybatis generator配置文件
  • 使用mybatis generator插件生成实体类和映射文件以及部分dao接口
  • 注意问题
  • 附件

mybatis generator

官网教程

mybatis配置类

@Configuration
@MapperScan("com.example.codercow.core.dao")
public class MybatisConfig {

    @Autowired
    private DataSource dataSource;

    @Bean
    public SqlSessionFactory sessionFactoryBean() throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        factoryBean.setTypeAliasesPackage("com.example.codercow.core.model");
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        factoryBean.setMapperLocations(resolver.getResources("classpath*:**/sqlmapper/*.xml"));
        return factoryBean.getObject();
    }
}

配置插件

在pom.xml中配置mybatis generator插件

        <plugin>
            <groupId>org.mybatis.generatorgroupId>
            <artifactId>mybatis-generator-maven-pluginartifactId>
            <version>1.3.3version>
            <configuration>
                <configurationFile>
                    
                    ${basedir}/src/main/resources/MybatisGenerator.xml
                configurationFile>
                <overwrite>trueoverwrite>
                <verbose>trueverbose>
            configuration>
        plugin>

mybatis generator配置文件

在resource包下创建MybatisGenerator.xml配置文件,内容如下



<generatorConfiguration>

    <classPathEntry
    
            
            <property name="suppressAllComments" value="true"/>
        commentGenerator>

        
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.1.8:3306/codercow?serverTimezone=UTC"
                        userId="root" password="sa">
            <property name="useInformationSchema" value="true">property>
        jdbcConnection>
        
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        javaTypeResolver>

        
        <javaModelGenerator targetPackage="com.example.codercow.core.model" targetProject="src/main/java">
            <property name="trimStrings" value="true"/>
        javaModelGenerator>

        
        <sqlMapGenerator targetPackage="sqlmapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        sqlMapGenerator>

        
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.codercow.core.dao"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        javaClientGenerator>

        
        <table schema="mysql" tableName="sys_config" domainObjectName="SysConfigModel"
               enableDeleteByExample="false" enableSelectByPrimaryKey="false"
               enableSelectByExample="false" enableUpdateByExample="false"
               enableCountByExample="false" enableDeleteByPrimaryKey="false" enableUpdateByPrimaryKey="false">
            <property name="useActualColumnNames" value="true"/>

            
            

        table>
    context>
generatorConfiguration>

使用mybatis generator插件生成实体类和映射文件以及部分dao接口

在maven中找到mybatis generator命令

spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件_第1张图片

双击执行,控制台打印BUILD SUCCESS,执行成功

spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件_第2张图片

在工程下可以看到生成了以下几个文件

spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件_第3张图片

打开model包下生成的实体,和数据库字段对比,是否正确生成。

生成model实体字段如下:

spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件_第4张图片

数据表结构如下:

spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件_第5张图片

经过对比,字段生成都正确,至此mybatis generator生成成功!


注意问题

如果数据库中某个字段是存放长文本内容的话,mybatis generator会将这个字段给生成带BLOB的类型,被翻译成了二进制类型,此时就需要在配置文件中指定一下这个字段的类型,确保类型一致。


附件

mysql中数据类型对应java中数据类型
spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件_第6张图片

你可能感兴趣的:(spring boot系列(六) 使用MybatisGenerator生成dao实体类和xml映射文件)