Mybatis 作为一个半自动的ORM框架,相比hibernate而言,灵活了许多,优化sql语句的时候自己可以直接在xml文件中自己优化或者编写,但是有很多简单的增删改查的代码需要自己书写,这时候自己可以可以用mybatis官方提供的逆向工程帮自己生成大部分单表查询的sql语句,至于多表关联,就需要自己去 xml文件中自己编写了。
首先 给大家提供mybatis逆向工程githup下载链接:https://github.com/wcyong/mybatisGeneratorCustom.git
百度云:链接: https://pan.baidu.com/s/1Vpjlpy_3QkIIpo3JeAzFFw 密码: 63cx
首先把解压好的代码导入你的开发工具中。
导入之后 会看到这样一个目录 , 当然 我自己用得版本比较老 ,目录结构可能和大家的有点儿不一样,不过最终目的都是一样
本人连接得是mysql数据库,所以导入的是mysql的驱动,当然。如果你用的是oracle可以在oracle安装目录中找到oracle的驱动
,接下来 打开 GeneratorSqlmap这个类,你会看到有一个导入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>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/your_database_name" userId="your_name"
password="your_password">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
和 NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成POJO类的位置 自己可以根据实际情况自己包名 包默认在根目录下生成-->
<javaModelGenerator targetPackage="am.lemon.crm.pojo"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 自己可以自定义 -->
<sqlMapGenerator targetPackage="am.lemon.crm.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 根据自己的实际情况书写地址-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="am.lemon.crm.mapper" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<!--因为本人这个数据库有4张表 所以依次填写表名就行 !-->
<table schema="" tableName="empmessage"></table>
<table schema="" tableName="partnum_tb"></table>
<table schema="" tableName="persionthrough"></table>
<table schema="" tableName="familytable"></table>
</context>
</generatorConfiguration>
以上动作完成之后运行此程序-------- 日志打印没毛病 。。刷新此java工程 然后会看到生成的pojo 和 对应的mapper映射文件;
但是发现多了4个实体类,其实呢,这4个实体类是逆向工程帮你生成做条件查询用的,每个实体类对应的example中都会有一个Criteria内部类 我们可以用这个内部类去拼装条件进行简单的条件,省去写部分sql的麻烦