版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲人:吴佳云延迟符<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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省广州华美2026届高三化学试题综合试卷(16)化学试题含解析
- 2026年郑州澍青医学高等专科学校单招职业适应性测试题库及答案详解一套
- 2026年辽宁冶金职业技术学院单招职业技能考试题库含答案详解
- 2025年安徽新安银行人员招聘笔试考试试题及答案详解
- 2026年国庆节知识竞答开国大典
- 2026年非遗传承师木雕高级笔试题
- 2026届浙江省嘉兴市五校高三期末调研测试化学试题含解析
- 高中地理必修二(2026届艺考生百日冲刺)·产业“变”与“不变”备考方案
- 2026服装零售业市场分析报告趋势分析和深度预测
- 2026工业互联网平台竞争格局与制造业数字化转型路径分析报告
- 2026新疆理工学院面向社会招聘编制外聘用人员29人笔试备考题库及答案解析
- 医学26年:肌张力障碍分型与治疗 查房课件
- 2016–2025 年高考英语应用文写作真题汇集
- 化工企业重大隐患自查表 AQ3067
- 2025版中国心房颤动管理指南解读课件
- 2026年上海市静安区社区工作者招聘笔试参考试题及答案解析
- csco结直肠癌指南2026
- 第14课 我们共同的梦想(课件)小学道德与法治二年级下册
- 精神科护理安全与风险防范
- 行政事业单位会计监督制度
- 智能制造产线故障排查与维修手册
评论
0/150
提交评论