Mybatis如何自动生成数据库表的实体类

第一步引入jar

第二步,配置文本文件

# 数据库驱动jar 路径 本地创库的包
drive.class.path=C:/Users/Administrator/.m2/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar
# 数据库连接参数
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.1.188:3306/sxhy_user?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=rhzh
# 包路径配置
model.package=com.fishing.personal.common.entity
xml.mapper.package=com.fishing.personal.common.dao.mapper
target.project=src/main/java

第三步配置文件

<?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">
<!-- 配置Run As Maven build : Goals 参数 : mybatis-generator:generate -Dmybatis.generator.overwrite=true -->
<!-- 配置 tableName,使用 Run As Maven build 生成 dao model 层 -->
<!-- maven执行命令:mybatis-generator:generate -->
<generatorConfiguration>
    <!-- 配置文件路径 -->
    <properties url="${mybatis.generator.generatorConfig.properties}"/>
    <!--数据库驱动包路径 -->
    <classPathEntry location="${drive.class.path}"/>

	<!--
	上下文配置、核心配置
	属性介绍
	defaultModelType:
	    conditional:*这是默认值*,这个模型和下面的hierarchical类似,除了如果那个单独的类将只包含一个字段,将不会生成一个单独的类。
	    	 因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
	    flat:该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。**这种模型最简单,推荐使用。**
	    hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段, 则会为表生成一个包含所有BLOB字段的单独的实体类,
	    	然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系。
	-->
    <context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">
    	<!-- 自动为表名加上前后缀,防止表名中出现空格发生异常(mysql=`) -->
    	<property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <!--关闭注释 -->
        <commentGenerator>
        	<!-- 阻止生成注释 -->
            <property name="suppressAllComments" value="false"/>
            <!-- 阻止生成注释包含时间戳 -->
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!-- 自定义注释生成类,为以上节点添加type属性 -->
        <!-- <commentGenerator type="com.package.abel533.mybatis.generator.MyCommentGenerator"/> -->
        <!--数据库连接信息 -->
        <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>
        <!--生成的model 包路径 -->
        <javaModelGenerator targetPackage="${model.package}" targetProject="${target.project}">
        	<!-- 是否根据catalog和schema来生成子包 -->
            <property name="enableSubPackages" value="ture"/>
            <!-- 是否使用构造方法入参 -->
            <property name="trimStrings" value="true"/>
            <!-- 是否对字符串进行trim操作 -->
            <property name="trimStrings" value="false" />
        </javaModelGenerator>
		<!--生成xml mapper文件 路径 -->
        <sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="${target.project}">
        	<!-- 是否根据catalog和schema来生成子包 -->
            <property name="enableSubPackages" value="ture"/>
        </sqlMapGenerator>
        <!-- 生成的Dao接口 的包路径 -->
        <!--
        type属性介绍:(仅用于mybatis3)
        ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件
		MIXEDMAPPER:XML和注解的混合形式,(上面这种情况中的)SqlProvider注解方法会被XML替代。
		XMLMAPPER:所有的方法都在XML中,接口调用依赖XML文件。
        -->
       <!--  <javaClientGenerator type="XMLMAPPER" targetPackage="${dao.package}" targetProject="${target.project}">
        	是否根据catalog和schema来生成子包
            <property name="enableSubPackages" value="ture"/>
        </javaClientGenerator> -->

        <!-- 对应数据库表名 -->
        <table tableName="user_client" modelType="flat">
            <!-- 配置所有到方法的根接口 -->
            <property name="rootInterface" value="com.rhzh.client.core.generic.GenericDao&lt;Object, Integer&gt;" />
            <!-- 配置主键 -->
            <generatedKey column="id" sqlStatement="Mysql" identity="true"/>
        </table>

        <!-- 手动配置table -->
        <!--
        <table tableName="数据库表名" domainObjectName="自动生成的实体类名" ....更多见参考文档>
        	配置表的主键以及所使用的sql语法
        	<generatedKey column="id" sqlStatement="Mysql"/>
        	....更多见参考文档
        </table>
        -->
    </context>
</generatorConfiguration>

第四步配置MAVEN

第五步配置MAVEN的插件

第六步,启动

Mybatis自动生成xml的配置

idea通过数据库直接生成mybatis的xml和实体文件,很简单,一共分三步

1.配置generatorConfig.xml

2.配置pom

3.配置命令 mybatis-generator:generate -e

1.配置generatorConfig.xml

以下会自动生成entity,mapper,和xml文件

mapper上是没有@Mapper注解的呦

<!--<?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:数据库的JDBC驱动,换成你自己的驱动位置 可选 -->
    <classPathEntry location="F:\aaaRepository\java\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar"/>
    <context id="mysql">
            <commentGenerator>
                <property name="suppressDate" value="true" />
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
            <jdbcConnection
                    connectionURL="jdbc:mysql://localhost:3306/aaa?serverTimezone=GMT%2B8"
                    driverClass="com.mysql.cj.jdbc.Driver" password="root" userId="root" />
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
            <javaModelGenerator targetPackage="com.aaa.bbb.entity" targetProject="src/main/java" >
                <property name="constructorBased" value="false"/>
            </javaModelGenerator>
            <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
            <javaClientGenerator targetPackage="com.aaa.bbb.mapper" targetProject="src/main/java" type="XMLMAPPER" >
            </javaClientGenerator>
            <table tableName="ccc"  enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"     enableSelectByExample="false"> </table>
       </context>
</generatorConfiguration>

“context” 的内容必须匹配按照下面的顺序配置 ?号的可以没有

(connectionFactory|jdbcConnection),
javaTypeResolver?,
javaModelGenerator,
sqlMapGenerator?,
javaClientGenerator?,
table+

2.配置pom

<build>
		<plugins>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<configuration>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

3.命令 mybatis-generator:generate -e

运行上边的命令就行了,实体是驼峰形式的,也可以修改配置和数据库一样

public class Ccc{
    private Integer id;
    private String identifyCode;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getIdentifyCode() {
        return identifyCode;
    }
    public void setIdentifyCode(String identifyCode) {
        this.identifyCode = identifyCode;
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis如何自动生成数据库表的实体类

    第一步引入jar 第二步,配置文本文件 # 数据库驱动jar 路径 本地创库的包 drive.class.path=C:/Users/Administrator/.m2/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar # 数据库连接参数 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://192.168.1.188:3306/sxh

  • Mybatis如何自动生成数据库表结构总结

    一般情况下,用Mybatis的时候是先设计表结构再进行实体类以及映射文件编写的,特别是用代码生成器的时候. 但有时候不想用代码生成器,也不想定义表结构,那怎么办? 这个时候就会想到Hibernate,然后想到它的hibernate.hbm2ddl.auto配置项. 所以手工创表的问题可以很方便的迅速用Hibernate来解决. 那有人问啦:就是不想用Hibernate才换的Mybatis,你这又兜回去了吗? 其实不是的,我们需要的就是单单一个hbm2ddl功能. 其实应该这么想:有一款工具能够自

  • springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</ve

  • Spring Boot整合mybatis并自动生成mapper和实体实例解析

    最近一直都在学习Java,发现目前Java招聘中,mybatis出现的频率挺高的,可能是目前Java开发中使用比较多的数据库ORM框架.于是我准备研究下Spring Boot和mybatis的整合. 1.在pom.xml文件中添加下面的配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

  • IDEA MyBatis Plugins自动生成实体类和mapper.xml

    前言 如何下载和使用MyBatis Generator 插件,只说代码,不讲感情.如果有问题还请多多指点. 开发环境 开发工具:IntelliJ IDEA 2018.1.1 x64 dk版本:1.8.0_171 工程构建工具:maven 版本3.2.5 数据库 mysql IDEA 下载MyBatis Generator 插件 1.首先在File--Settings--点击Plugins,搜索框中搜索mybatis,选择mybatis-plugins,点击安装(由于我的已经安装过,所以没有绿色的

  • Springboot如何根据实体类生成数据库表

    目录 Springboot 实体类生成数据库表 第一步:添加springboot-data-jpa和数据库的依赖关系 第二步:编写yml文件的配置 第三步:实体类中使用的注解 第四步:启动项目是否生成表格 第五步:启动项目即可 springboot继承JPA根据实体类生成数据库中的表 1. pom中添加的依赖 2. application.yml中配置jpa配置 定义用户实体类,通过注解映射成数据库中的表 启动springboot项目 Springboot 实体类生成数据库表 JPA:sprin

  • 解决Spring Data Jpa 实体类自动创建数据库表失败问题

    目录 Spring Data Jpa 实体类自动创建数据库表失败 找了半天发现是一个配置的问题 可能导致JPA 无法自动建表的问题汇总 1.没加@Entity或引错Entity所在包 2.jpa配置中ddl-auto未设置update 3.实体类的包不是启动程序所在包的子包 4.mysql配置问题 5.依赖不全 6.实体类间关系错误 7.启动类注解问题 8.其他问题 Spring Data Jpa 实体类自动创建数据库表失败 先说一下我遇到的这个问题,首先我是通过maven创建了一个spring

  • Mybatis Generator自动生成对应文件的实现方法

    使用Generator自动生成我们需要的bean dao mapper xml等文件的过程(没有借助eclipse等编辑工具直接命令提示符生成) 第一步:在E盘新建一个文件夹generator,在这文件夹下创建一个test文件夹用来存放生成的文件,在创建一个generator.xml的配置文件 第二步:导入需要的jar包 mybatis-generator-core-1.3.2.jar 和mysql-connector-java-5.1.28-bin.jar 第三步:编写generator.xm

  • mybatis generator 使用方法教程(生成带注释的实体类)

    引言: 最近的一个项目,由于数据库表巨多,导致需要创建N多个java实体.dao.mapper.xml映射文件,如果均使用纯手工编写,无疑需要耗费大量时间和精力.于是上网学习了mybatis generator的使用. 现在项目写完了,闲暇之余把干货奉上,供大家直接使用. 需求场景: 当你的java 项目数据库有N张表需要使用mybatis进行数据库操作时,建议使用mybatis generator 自动生成工具.可以自动帮助你生成java实体类.dao.mapper.xml等. 首先给大家分享

  • IDEA Maven Mybatis generator 自动生成代码(实例讲解)

    IDEA Maven Mybatis generator 自动生成代码的实例讲解 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `id` varchar(100) NOT NULL, `username` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT

随机推荐