mybatis-generator插件详解

使用mybatis-generator插件可快速生成mapper及实体类文件,使用方法如下:
一、在pom.xml文件中加入插件:

<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                <!---此处引入数据库的驱动,根据项目实际情况而定。若是Mysql数据库则引入mysql的驱动即可->
                    <dependency>
                        <groupId>com.oracle</groupId>
                        <artifactId>ojdbc7</artifactId>
                        <version>12.1.0.2</version>
                    </dependency>
                </dependencies>
            </plugin>

二、在resources文件夹中加入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="marketing" targetRuntime="MyBatis3" defaultModelType="flat">
        <property name="javaFileEncoding" value="UTF-8" />

        <!-- 配置生成toString()方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />

        <commentGenerator>
            <!-- 是否禁止显示日期 true:是 : false:否 -->
            <property name="suppressDate" value="false" />
            <!-- 是否去除自动生成的所有注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
            <!-- 是否添加字段注释 true:是 false:否 -->
            <property name="addRemarkComments" value="true" />
            <!-- 自定义属性 作者名称 -->
            <property name="author" value="zach" />
        </commentGenerator>

        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection connectionURL="jdbc:oracle:thin:@127.0.0.1:1521/orcl" driverClass="oracle.jdbc.driver.OracleDriver" password="123456" userId="test" />
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 配置生成实体类的包名和位置 -->
        <!-- 通过maven管理插件时targetProject的路径为绝对路径:D:\workspace_oxygen\mybatis3 -->
        <!-- 通过自安装插件生成时的地址:mybatis3 -->
        <javaModelGenerator targetPackage="com.test.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 配置生成映射文件的包名和位置 -->
        <!-- 通过maven管理插件时targetProject的路径为绝对路径:D:\workspace_oxygen\mybatis3 -->
        <!-- 通过自安装插件生成时的地址:mybatis3 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- 配置生成mapper文件的包名和位置 -->
        <!-- 通过maven管理插件时targetProject的路径为绝对路径:D:\workspace_oxygen\mybatis3 -->
        <!-- 通过自安装插件生成时的地址:mybatis3 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.test.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 配置需要反向生成表的信息, tableName填写数据库表名,domainObjectName填写要生成的实体类的类名 -->
        <!-- 下列包含'Example'的属性设置为false时,将只会生成最基础的实体类及CRUD语句;
        为true时,将会生成实体类名+Example命名的实体类及mapper文件
-->
        <table tableName="COMPANY_LIST" domainObjectName="Company"
               enableCountByExample="true" enableUpdateByExample="true"
               enableDeleteByExample="true" enableSelectByExample="true"
               selectByExampleQueryId="true">
            <property name="ignoreQualifiersAtRuntime" value="true" />
            <generatedKey column="id" sqlStatement="Oracle" identity="true" />
        </table>
    </context>
</generatorConfiguration>

三、生成:
在IDEA中,打开窗口右侧的maven窗口。找到mybatis-genarator的插件,双击下图中的:mybatis-generator:generate即可生成实体类、dao层的mapper、resources中的xml文件。
在这里插入图片描述
四、关于Example如何使用
mybatis-generator用数据库表生成数据代码的时候,除了生成实体的POJO以外,会同时生成Example文件,以及在mapper.xml中生成Example的sql语句。
Example类包含一个内部静态类Criteria,利用Criteria可以在类中根据自己的需求动态生成sql where语句。
Criteria类中有对于实体类各个属性的is null、is not null,大于、小于、等于、like等动态sql,通过设置该类中对应的属性,可自动动态拼接sql。
例如:
1.模糊搜索用户名:

String name = “明”;
UserExample ex = new UserExample();
ex.createCriteria().andNameLike(’%’+name+’%’);
List userList = userDao.selectByExample(ex);

2.通过某个字段排序:

String orderByClause = "id DESC";
UserExample ex = new UserExample();
ex.setOrderByClause(orderByClause);
List<User> userList = userDao.selectByExample(ex);

3.条件搜索,不确定条件的个数:

UserExample ex = new UserExample();
Criteria criteria = ex.createCriteria();
if(StringUtils.isNotBlank(user.getAddress())){
    criteria.andAddressEqualTo(user.getAddress());
}
if(StringUtils.isNotBlank(user.getName())){
    criteria.andNameEqualTo(user.getName());
}
List<User> userList = userDao.selectByExample(ex);

4.分页搜索列表:

pager.setPageNum(1);
pager.setPageSize(5);
UserExample ex = new UserExample();
ex.setPage(pager);
List<User> userList = userDao.selectByExample(ex);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值