我们来继续研究 mybatis 框架sql映射文件的属性

‍我们来继续研究 mybatis 框架sql映射文件的属性

各位小伙伴

祝大家元旦快乐

开始我们今天的分享

我们已经了解了 mybatis 框架的两种使用方式以及主配置文件 (mybatis-config.xml) 的属性。那么今天我们来一起了解sql 映射文件 (userMapper.xml) 的属性。

parameterType 输入参数

1)简单类型的单个参数

我们来模拟一个需求:根据用户 id 查询用户信息

先在接口类 UserMapper.Java 中,添加一个接口。

然后在对应的 UserMapper.xml 中,填写 sql 查询语句。

在测试类中测试一下。这个也没什么说的我们最近一直都在测试这些。

2)简单类型的多个参数

模拟需求:通过登录名和密码验证用户是否存在

先在接口类 UserMapper.Java 中,添加一个接口。这里需要添加两个参数

然后在对应的 UserMapper.xml 中,填写 sql 查询语句。再添加两个参数的时候可以在大括号里填上 0 代表第一个参数,1 第二个参数以此类推。

在测试类中测试一下。

这是2个参数,要是参数再多点,我们这样一个个的标,很麻烦。这是就可以利用包装对象,直接传一个对象进去。

3)包装类对象作为输入参数进行查询

模拟需求:根据界面输入的用户名称或者登录名称来查询符合条件的用户列表。

先创建一个包装类,包装我们的 User 对象,这里就可以包装很多参数了。

在接口类 UserMapper.Java 中,添加一个接口。

然后在对应的 UserMapper.xml 中,填写 sql 查询语句。

在测试类中测试一下。

再多的参数也不用怕了。

resultType/resultMap 对象

1)简单类型的输出例:Integer String Long 。

在接口类 UserMapper.Java 中,添加一个接口,查询用户总数。

然后在对应的 UserMapper.xml 中,填写 sql 查询语句。

在测试类中测试一下。

2)对象的输出

我们之前做的都是对象输出,给大家简单的测试一下。

3)HashMap 的输出

在接口类 UserMapper.Java 中,添加一个接口。

然后在对应的 UserMapper.xml 中,填写 sql 查询语句。

在测试类中测试一下。

这样看着不方便,我把它复制出来大家看一下结果。

3)resultMap 对象输出

这个是一个重点,假设我们的数据库命名和我们的 Java 属性命名是不一样的,这样我们就是映射不上,这个时候就需要手动设置一个 resultMap 来解决这个问题。

在接口类 UserMapper.Java 中,添加一个接口。

然后在对应的 UserMapper.xml 中,填写 sql 查询语句。

其中:

id 标签代表数据库表的主键

column 代表列名或者 sql 中的别名

property 代表 java 对象的属性名

在测试类中测试一下。

还是复制出来看一下。

这个resultMap很重要,大家多去试一下。至于有什么作用呢?我们之后会分享给大家的。

如果你想了解java,想学习java请关注微信公众号:java团长

今天的分享就到这里了

伙伴们

元旦快乐

拜拜

本文来自企鹅号 - 互联网科技变更媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java工会

如何恢复oracle中误删除表(drop掉的)?

以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 ― 当然是意外地删除 ― 并需要尽快地恢复。(在某些时候,这个不幸的用户可能就是 DBA!)

673
来自专栏程序员阿凯

Java面试通关要点汇总集 核心篇

1024
来自专栏林欣哲

10 分钟看懂分布式事务

什么是分布式事务 问题的引出 先看一张图,一个电商平台的架构图。 ? 对于用户来说的一个创建订单的过程,背后很可能跨越了多个应用服务。涉及诸如:订单、库存、...

3435
来自专栏Linyb极客之路

浅谈分布式事务

普通事务就是一般所说的数据库事务,大家对数据库事务应该都很了解,这里再简单介绍下。

732
来自专栏Java Edge

分布式MySQL集群方案

5156
来自专栏ImportSource

微服务业务开发三个难题-拆分、事务、查询(下)

上集:微服务业务开发三个难题-拆分、事务、查询(上) 上集我们阐述了使用微服务体系架构的关键障碍是领域模型,事务和查询,这三个障碍似乎和功能拆分具有天然的对抗...

44812
来自专栏Java技术栈

Java 10的10个新特性,将彻底改变你写代码的方式!

Java 9才发布几个月,很多玩意都没整明白,现在Java 10又要来了。。 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,JDK 8 还没用熟,JD...

4088
来自专栏MongoDB中文社区

MongoDB 新功能介绍-Change Streams

MongoDB 3.6已经GA有一段时间,网络上对于该版本新特性的详细介绍文章比较少为此借机会对部分新特性做一个相对详细的介绍。基于早期MongoDB版本实现如...

1342
来自专栏喵了个咪的博客空间

phalapi-进阶篇4(notrom进阶以及事务操作)

#phalapi-进阶篇4(notrom进阶以及事务操作)# ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的...

3086
来自专栏铭毅天下

Elasticsearch聚合后分页深入详解

1、Elasticsearch支持聚合后分页吗,为什么? 不支持,看看Elasticsearch员工如何解读。 ? ? 这个问题,2014年在gith...

68511

扫码关注云+社区