第一步引入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<Object, Integer>" />
- <!-- 配置主键 -->
- <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;
- }
- }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。