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

本文深入解析了MyBatis框架中的逆向工程功能,展示如何自动生成代码,以及Example类的使用方法,包括排序、去重和自定义查询条件,通过实例演示了如何根据用户名查询用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.逆向工程
逆向工程可以针对单表自动生成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;

1
2
3
4
5
6
需求:根据用户名查询查询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);
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
测试结果(数据库中有两个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]

作者:si_ma_tong_ming
来源:优快云
原文:https://blog.youkuaiyun.com/simatongming/article/details/76021687
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值