JavaEE企业级项目开发(第3版)课件 微课3-2:where与set元素_第1页
JavaEE企业级项目开发(第3版)课件 微课3-2:where与set元素_第2页
JavaEE企业级项目开发(第3版)课件 微课3-2:where与set元素_第3页
JavaEE企业级项目开发(第3版)课件 微课3-2:where与set元素_第4页
JavaEE企业级项目开发(第3版)课件 微课3-2:where与set元素_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲人:吴佳云延迟符<where>与<set>元素动态SQL与关联映射<where>元素<where>元素用于构建SQL查询的where子句,它会自动处理AND和OR关键字,以确保生成的SQL语句是有效的。例如,根据用户的姓名或空条件查询用户列表。<where>元素的使用(1)EmployeeMapper.java:添加方法@Mapper

publicinterfaceEmployeeMapper{

List<Employee>getByWhere(Employeeemployee);

}<where>元素的使用(2)EmployeeMapper.xml:添加方法<!--where元素-->

<selectid="getByWhere"resultMap="employeeMap"parameterType="com.my.ccit.entity.Employee">

select

<includerefid="Base_Column_List"/>

fromtb_employee

<where>

<iftest="name!=nullandname!=''">

andnamelikeconcat('%',#{name},'%')

</if>

<iftest="sex!=null">

andsex=#{sex}

</if>

</where>

</select><where>元素的使用(3)测试文件@Test

publicvoidtestWhere(){

//1.通过工具类生成SqlSession对象

SqlSessionsession=MyBatisUtils.getSession();

Employeeparam=newEmployee();

//2.无条件时查询信息

System.out.println(“通过【无】条件搜索的结果为:”);

List<Employee>employeeList=session.selectList(“com.my.ccit.mapper.EmployeeMapper.getByWhere”,param);

for(Employeeitem:employeeList){

System.out.println(item);

}

//3.根据名字时查询信息

param.setName("汤姆");

System.out.println("通过【汤姆】条件搜索的结果为:");

List<Employee>employeeList1=session.selectList("com.my.ccit.mapper.EmployeeMapper.getByWhere",param);

for(Employeeitem:employeeList1){

System.out.println(item);

}

//4.关闭SqlSession

session.close();

}<set>元素在更新数据时,如果把一个对象所有的字段给持久化对象,然后发送所有的属性去更新,对网络带宽消耗很大。在MyBatis中,可以使用<set>元素来避免这个问题,<set>可以将主键和需要更新字段的值传给SQL更新。例如,根据用户的姓名、性别等进行更新用户信息。<set>元素的使用(1)EmployeeMapper.java:添加方法@Mapper

publicinterfaceEmployeeMapper{

IntegerupdateBy(Employeeemployee);}<set>元素的使用(2)EmployeeMapper.xml:添加方法<updateid="updateBy"parameterType="com.my.ccit.entity.Employee">

updatetb_employee

<set>

<iftest="loginName!=null">loginname=#{loginName},</if>

<iftest="password!=null">password=#{password},</if>

<iftest="name!=null">name=#{name},</if>

<iftest="sex!=null">sex=#{sex},</if>

<iftest="age!=null">age=#{age},</if>

<iftest="phone!=null">phone=#{phone},</if>

<iftest="state!=null">state=#{state}</if>

</set>

whereid=#{id}

</update><set>元素的使用(3)测试文件@Test

publicvoidtestSet(){

//1.通过工具类生成SqlSession对象

SqlSessionsession=MyBatisUtils.getSession();

EmployeeMapperemployeeMapper=session.getMapper(EmployeeMapper.class);

intid=1;

//2.查询更新前信息

System.out.println("更新【name】字段前:");

EmployeebeforeEmployee=employeeMapper.getById(id);

System.out.println(beforeEmployee);

//3.设置更新条件

Employeeparam=newEmployee();

param.setId(id);

param.setName("新新杰克");

employeeMapper.updateBy(param);

//4.查询更新后信息

System.out.println("更新【name】字段后:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论