博客
关于我
每日总结[5 20191005]MyBatis之输入输出映射
阅读量:324 次
发布时间:2019-03-04

本文共 1592 字,大约阅读时间需要 5 分钟。

(1)头脑风暴,把我能想到的写下来:

(一) 输入输出映射部分。

先复习通过动态代理的方式实现Mybatis:

首先,新建Mapper包,其下有UserMapper接口和同名的UserMapper.xml,在SqlMapConfig.xml中写<mapper package="xxx.xx.Mapper">,进行包扫描。在接口中的方法需要与UserMapper.xml中的statement一致。
新建UserEx类,(扩展类,用于后续添加属性),和UserPacking类(包装类),其中有UserEx类型的UserEx属性。
接下来,通过Mybatis实现一些select需求:
需求1:
sql语句: select * from user where sex='1' and username like '%vin%'
如果我们不传入"1"和"%vin%"的参数,想执行全查呢,可以使用<if>标签。如果传入了性别参数就按性别参数查,如果传入了姓名参数还可以按姓名参数模糊查询,如果不传参数的话就全查。
在UserMapper.xml中写:

[改: and username like ‘%${userEx.username}%’]

因为userex是userPacking类的属性,所以<if test>中是可以通过getter方法读取到它的。

可以把上述的判断模块提出来,提取需要注意:不能有<where>,不能是多表查询:

usersex=#{ userex.sex}
and username like '$%userex.name%'

[补充:

sql语句:select count() from user where…可以用来统计元组个数]*

需求2:

sql语句:

select* from user where id='1' or id='2' or id='3'

因为这会涉及多个id,可以在UserPacking类中添加List ids属性,这样就可以通过传入UserPacking类,由它的getter方法获取ids属性,再通过标签,如下所示:

[改:

]

这时如果提到<sql>中,需要让<if test="ids!=null">

还有一种写法:
sql语句:

select * from user where userid in('1','2','3');

对应的:

[改:

]

需求三:

sql语句:select userid as myID,username as myname,useradress as myadress
其中,"as"是可以省略的。
这里就需要要到resultMap了。

以上所示的对应的是我们在sql语句中写的那个列名的别名,而type则是映射以后的类,而对应的是映射成的类的属性。(注意:这里必须是直接拥有的,可以通过getter方法获得的,不能是其父类的属性。)

在单元测试中输出得到的User类集合,它每个对象都会输出对应属性。

转载地址:http://qbjh.baihongyu.com/

你可能感兴趣的文章
nacos服务提供和发现及客户端负载均衡配置
查看>>
Nacos服务注册与发现demo
查看>>
Nacos服务注册与发现的2种实现方法!
查看>>
nacos服务注册和发现原理简单实现案例
查看>>
Nacos服务注册总流程(源码分析)
查看>>
nacos服务注册流程
查看>>
Nacos服务部署安装
查看>>
nacos本地可以,上服务器报错
查看>>
Nacos注册Dubbo(2.7.x)以及namespace配置
查看>>
Nacos注册中心有几种调用方式?
查看>>
nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
查看>>
nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
查看>>
nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
查看>>
nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
查看>>
Nacos简介、下载与配置持久化到Mysql
查看>>
Nacos简介和控制台服务安装
查看>>
Nacos管理界面详细介绍
查看>>
Nacos编译报错NacosException: endpoint is blank
查看>>
nacos自动刷新配置
查看>>
nacos运行报错问题之一
查看>>