mybatis逆向工程生成的Example类的使用

一.逆向工程
逆向工程可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po),根据数据库的表生成java代码(逆向工程代码示例:https://github.com/tongyiming/mybatis)

二.Example类的使用

Example类的成员:

    //升序还是降序:字段+空格+asc(desc)
    protected String orderByClause;
    //去除重复:true是选择不重复记录,false,反之
    protected boolean distinct;
    //自定义查询条件
    protected List<Criteria> oredCriteria;

需求:根据用户名查询查询user
sql:select id, username, birthday, sex, address from user WHERE ( username = ‘张三’ ) order by username asc

@Test
    public void testFindUserByName(){

        //通过criteria构造查询条件
        UserExample userExample = new UserExample();
        userExample.setOrderByClause("username asc"); //asc升序,desc降序排列
        userExample.setDistinct(false); //去除重复,true是选择不重复记录,false反之
        UserExample.Criteria criteria = userExample.createCriteria(); //构造自定义查询条件
        criteria.andUsernameEqualTo("张三");

        //自定义查询条件可能返回多条记录,使用List接收
        List<User> users = userMapper.selectByExample(userExample);

        System.out.println(users);
    }

测试结果(数据库中有两个username为张三):
DEBUG [main] - ==> Preparing: select id, username, birthday, sex, address from user WHERE ( username = ? ) order by username asc
DEBUG [main] - ==> Parameters: 张三(String)
DEBUG [main] - <== Total: 2
DEBUG [main] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@17db9ab7]
DEBUG [main] - Returning JDBC Connection to DataSource
[cn.itcast.ssm.po.User@567bed7a, cn.itcast.ssm.po.User@622410f1]

  • 10
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MyBatis逆向工程是一个非常实用的工具,可以根据数据库表结构自动生成Java Bean对象和Mapper映射接口代码,提高开发效率。而生成的代码默认使用XML文件配置SQL语句,但是随着Java EE技术的不断发展,注解已经逐渐成为了一个非常流行和便捷的编程方式。 因此,很多开发者开始使用MyBatis逆向工程生成注解的代码。下面是一个基本的工程配置步骤: 1. 添加相关依赖 在Maven工程中,需要添加MyBatisMyBatis Generator和数据库驱动的依赖。例如: ``` <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> </dependencies> ``` 2. 编写generatorConfig.xml 该配置文件位于src/main/resources/目录下,可以使用MyBatis Generator提供的GUI工具进行可视化编辑,也可以手动编写该文件。编写该文件时需要注意以下几点: - database、jdbcConnection、table等元素的配置与普通的XML配置似。 - 需要添加context元素,并在其中配置JavaModelGenerator、SqlMapGenerator和JavaClientGenerator等元素,分别用来生成Java Bean、Mapper映射接口和Mapper XML文件。 - 在context元素中添加targetRuntime="MyBatis3Simple"属性,表示使用简单的MyBatis3运行时,可以生成注解的代码。 例如: ```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="DB2Tables" targetRuntime="MyBatis3Simple"> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" userId="root" password="root"> </jdbcConnection> <javaModelGenerator targetPackage="com.example.demo.pojo" targetProject="src/main/java"> </javaModelGenerator> <sqlMapGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java"> </sqlMapGenerator> <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="com.example.demo.mapper" targetProject="src/main/java"> </javaClientGenerator> <table tableName="student"></table> </context> </generatorConfiguration> ``` 3. 运行Generator 使用Maven插件或者命令行运行MyBatis Generator,生成自动化代码到指定目录下。例如: ```shell mvn mybatis-generator:generate ``` 4. 代码使用 生成的 Java Bean、Mapper 接口和注解 SQL 语句已经全部生成了,可以直接使用。例如: ```java public interface StudentMapper { @Select({ "select", "id, name, age, sex", "from student", "where id = #{id,jdbcType=INTEGER}" }) @Results({ @Result(column="id", property="id", jdbcType=JdbcType.INTEGER, id=true), @Result(column="name", property="name", jdbcType=JdbcType.VARCHAR), @Result(column="age", property="age", jdbcType=JdbcType.INTEGER), @Result(column="sex", property="sex", jdbcType=JdbcType.VARCHAR) }) Student selectByPrimaryKey(Integer id); } ``` 以上是MyBatis逆向工程生成注解的代码的工程配置过程,也是一种传统的方式。近年来,大部分使用MyBatis的开发者选择使用习惯上更加统一的Lombok注解库,必要的情况下也对产生的代码进行瘦身优化,使代码更加简洁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值