Mybatis 框架学习(四)——如果世界真的那么简单就好了

Mybatis 框架学习(四)——如果世界真的那么简单就好了


这一篇的标题是Mybtais的官方文档中的一句话,我觉得很经典,让大家有个印象…


image.png


一、resultMap 结果映射


解决属性名 和数据库字段名不一致的问题


就是说我们在java代码中要写一个pojo类,与数据库表的字段相对应,必须名字相同。

我们来看一下,如果名字不同的话

数据库中student表的字段

image.png

pojo包下student类我们改成名字不同的属性

image.png

原来是 name,我们改成 studentname

运行测试方法

image.png

发现所有的name都变成了 null,因为拿到数据库查询后的结果之后会根据字段名字映射到对应的类里面,因为name->studentName 对不上,所以全为null

那么我们如果想要数据库字段与实体类的属性名字不一致的话,怎么实现呢?


用resultMap标签解决


在写select标签的时候,返回值之前我们用的是 resultType返回实体类,这个时候我们可以用resultMap。resultMap后面跟一个id

在上面在写一个具体的resultMap标签

id自己取名字,增删改查的标签使用id直接调用

type对应实体类

里面写result标签,properties对应实体类中的属性,column对应数据库表中的字段,这个result就相当于有个对应关系,我们可以用不一致的属性在实体类中

image.png

官方文档的解释和上面的差不多,再看看还说了什么?

如果这个世界总是这么简单就好了

image.png

高级结果映射,复杂的sql语句,目前还接触不到,我们在以后的工作中再去应对吧


二、limit分页


分页会减少数据的处理量

sql语句中使用limit进行分页


limit用法回顾

select * from student limit n;

相当于查询从第1条到第n条的数据

select * from student limit startIndex,pageSize;

startIndex是从那一条开始的

pageSize是一页显示的数据的条数

相当于从第 startIndex开始,显示pageSize 条数据


mybtais中使用分页查询


1.在接口定义一个分页查询的方法,参数是map

    // 按照分页来进行查询信息
    List<Student> getUserLimit(Map<String,Integer> map);

2.测试方法里面创建map,传递map参数

@Test
    public void getUserlimit(){
   
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        StudentMapper studentMapper = sqlSession.getMapper(StudentMapper<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RAIN 7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值