当前位置: 首页 > article >正文

Mybatis框架各配置文件主要内容详解(二)

  • ResultMap解决了数据库字段与实体类之间不一致导致的问题
 <!--resultMap:设置自定义映射属性:id:表示自定义映射的唯一标识type:查询的数据要映射的实体类的类型子标签:id:设置主键的映射关系result:设置普通字段的映射关系association:设置多对一的映射关系collection:设置一对多的映射关系属性:property:设置映射关系中实体类中的属性名column:设置映射关系中表中的字段名--><resultMap id="empResultMap" type="Emp"><id column="emp_id" property="empId"></id><result column="emp_name" property="empName"></result><result column="age" property="age"></result><result column="gender" property="gender"></result></resultMap>
  • where查询片段
 <select id="getEmpListByConditionTwo" resultType="Emp">select * from t_emp<where><if test="empName != '' and empName != null">emp_name = #{empName}</if><if test="age != '' and age != null">and age = #{age}</if><if test="gender != '' and gender != null">and gender = #{gender}</if></where></select>

  • trim标签可以去掉sql中的连接字段
 <select id="getEmpListByCondition" resultType="Emp">select * from t_emp<trim prefix="where" suffixOverrides="and"><if test="empName != '' and empName != null">emp_name = #{empName} and</if><if test="age != '' and age != null">age = #{age} and</if><if test="gender != '' and gender != null">gender = #{gender}</if></trim></select>
  • foreach标签可以遍历出list集合
<!--    void insertMoreEmp(@Param("emps") List<Emp> emps);--><select id="insertMoreEmp" >insert into t_emp values<foreach collection="emps" item="emp" separator=",">(null,#{emp.empName},#{emp.age},#{emp.gender},null)</foreach></select>
  • 批量删除可以用foreach结合In函数来实现
<!--    void deleteMoreEmp(@Param("empIds") Integer[] empIds);--><delete id="deleteMoreEmp" >delete from t_emp where emp_id in<foreach collection="empIds" item="empId" separator="," open="(" close=")">#{empId}</foreach></delete>

http://www.lryc.cn/news/2396682.html

相关文章:

  • 【优选算法 | 队列 BFS】构建搜索流程的核心思维
  • virtio介绍 (三)--spdk作为virtio后端处理nvme盘io的流程--上
  • 关于BackgroundScheduler的pause
  • 设计模式(行为型)-中介者模式
  • 【Java学习笔记】异常
  • MySQL:视图+用户管理+访问+连接池原理
  • neo4j 5.19.0安装、apoc csv导入导出 及相关问题处理
  • C/C++ OpenCV 矩阵运算
  • 无人机桥梁3D建模的拍摄频率
  • ESP32-idf学习(三)esp32C3连接iot
  • 详解鸿蒙仓颉开发语言中的计时器
  • 【计算机网络】第3章:传输层—拥塞控制原理
  • Vue3(watch,watchEffect,标签中ref的使用,TS,props,生命周期)
  • 【nssctf第三题】[NSSCTF 2022 Spring Recruit]easy C
  • Cocos 打包 APK 兼容环境表(Android API Level 10~15)
  • 数据结构之堆:解析与应用
  • DBeaver导入/导出数据库时报错解决方案
  • GPIO模拟串口通信
  • uniapp与微信小程序开发平台联调无法打开IDE
  • 第十二节:第五部分:集合框架:Set集合的特点、底层原理、哈希表、去重复原理
  • 【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器
  • 基于大数据的个性化购房推荐系统设计与实现(源码+定制+开发)面向房产电商的智能购房推荐与数据可视化系统 基于Spark与Hive的房源数据挖掘与推荐系统设计
  • FFmpeg学习笔记
  • Chrome 通过FTP,HTTP 调用 Everything 浏览和搜索本地文件系统
  • GpuGeek如何成为AI基础设施市场的中坚力量
  • 【Hot 100】45. 跳跃游戏 II
  • Codeforces Round 1026 (Div. 2) C. Racing
  • Python库CloudScraper详细使用(绕过 Cloudflare 的反机器人页面的 Python 模块)
  • oracle sql 语句 优化方法
  • Python数学可视化——显函数、隐函数及复杂曲线的交互式绘图技术