Mapper.xml映射文件

Mapper.xml映射文件:
 <select>  resultType如果返回的是集合,那么应该设置为集合包含的类型而不是集合本身的类型
如果参数类型是pojo类型,参数名必须是pojo中的属性名
<insert>
session.commit();
session = factory.openSession();

driver:com.mysql.jdbc.Driver
url:jdbc:mysql://127.0.0.1:3306/test
动态sql:
小于号
<![CDATA[<=]]>
:

<where>:
<if test="sal != null">
and sal <![CDATA[<=]]>#{sal}         //and,or会自动给去掉
</where>
choose when otherwise:
when otherwise中只走一个
select * from emp where
<choose><when test="sal != null">sal <![CDATA[<=]]> #{sal}</when><when test="ename != null">ename like concat('%',#{ename},'%')</when><otherwise>deptno=#{deptno}<otherwise>
</choose>

trim标签  组合 if标签 主要功能 可以在自己包含的内容前面加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix;
            可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是prefixOverrides和suffixOverrides

insert into emp
<trim prefix="("  suffix=")" suffixOverrides = ","><if test = "empno != null">empno,<if test = "ename != null">ename,<if test = "mgr != null">mgr,<if test = "sal != null">sal,<if test = "deptno != null">deptnol,
</trim>
values
<trim prefix="("  suffix=")" suffixOverrides = ","><if test = "empno !=null">#{empno},<if test = "ename != null">#{ename},<if test = "mgr != null">#{mgr},<if test = "sal != null">#{sal},<if test = "deptno != null">#{deptnol},
</trim>


<set>标签: 如果包含的语句以逗号结束会把逗号省略掉

update   emp
<set><if test="sal != null">sal=#{sal},</if><if test="mgr != null">mgr=#{mgr},</if><if test="ename != null">ename=#{ename},</if>
</set>
<where><if test="empno != null">and empno = #{empno}</if><if test="job != null">and job =  #{job}</if>
</where>

<foreach>主要用在构建in条件中,它可以在SQL语句中迭代一个集合
item 表示集合中每一个元素进行迭代时的别名
index指定一个名字,用于表示在迭代过程中,每次迭代到的位置
[LIST]:

select * from emp 
<where><foreach collection = "list" open = "(" close = ")" item="empno" seperator="or">empno=#{empno}</foreach>
</where>select * from emp where empno in <foreach collection = "list" open = "(" close = ")" item="empno" seperator=",">#{empno}</foreach>
</where>


[array]:
paramaterType = List

select * from emp where empno in <foreach collection = "array" open = "(" close = ")" item="empno" seperator=",">#{empno}</foreach>
</where>
[map]:

(Map<String,List<Integer> map>)
多条件复杂查询的时候
List<Emp> selectEmpByMapinfo(Map<String,object>);

<select id = "selectEmpByMapinfo" paramaterType="java.util.Map" resultType="emp">select * from emp<where>deptno=#{deptnokey}andename like '%${enamekey}%'andempno in<foreach collection="empnos" open="(" close=")" separator="," item="no">#{no}</foreach></where>
</select>.


map.put("deptnokey",10)
map.put("enamekey","enamekey")
map.put(empnos,list)
[SQL片段]:

<sql id="sqlid">select * from emp
</sql>
<include refid="sqlid"></include>


[bind]标签

<select><bind name="name" value="'%' + ename + '%'">select * from emp<where><if test="sal != null">and sal <![CDATA[ <= ]]>#{sal]</if><if test="ename != null">and ename like #{name}</if></where>
</select>

resultType实现一对一 
多对多:

<collection property="ods" ofType="orderDetail" >
</collection>
<association property="items" javaType="items">
</association>


SqlSessionFactory factory;
Inputstream stream = Resources.getResourceasStream("SqlMapConfig.xml");
factory = SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder().build(stream)
 
page工具类实现分页:page工具类:
PageHelper.startPage((page- 1)* size,size)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/751977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信开发者工具如何使用?使用注意事项

&#xff08;1&#xff09;单位如何进行换算&#xff1f; 1 px 750/屏幕宽度 rpx 1 rpx 屏幕宽度/750 px &#xff08;2&#xff09;如何新建文件&#xff1f; 1> 点开app.json 2> 在“pages/index/index”后面接“&#xff0c;pages/自定义文件夹名/自定义文件名”…

万界星空科技商业开源MES,技术支持+项目合作

商业开源的一套超有价值的JAVA制造执行MES系统源码 亲测 带本地部署搭建教程 教你如何在本地运行运行起来。 开发环境&#xff1a;jdk11tomcatmysql8springbootmaven 可以免费使用&#xff0c;需要源码价格便宜&#xff0c;私信我获取。 一、系统概述&#xff1a; MES制造执…

LinkedList源码解析和设计思路

一、 继承体系 LinkedList类位于java.util包中&#xff0c;它实现了List接口和Deque接口&#xff0c;LinkedList可以被当做链表、双端队列使用&#xff0c;并且继承自AbstractSequentialList类。在继承关系中&#xff0c;它的父类是AbstractSequentialList&#xff0c;而Abstr…

go语言请求http接口示例 并解析json

本例请求了天气api接口 对接流程 注册一个账号, 对接免费实况天气接口阅读接口文档 http://tianqiapi.com/index/doc?versionday请求接口解析json 开发流程 创建一个 json.go 文件需要引入的包 import ("encoding/json""fmt""io/ioutil"&q…

设计模式--访问者模式(Visitor Pattern)

访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为型设计模式&#xff0c;它可以让你在不改变类的情况下&#xff0c;增加作用于一组对象上的新操作。 访问者模式主要包含以下几个角色&#xff1a; Visitor&#xff08;访问者&#xff09;&#xff1a;这是一个接…

Spring炼气之路(炼气二层)

一、bean的配置 1.1 bean的基础配置 id&#xff1a; bean的id&#xff0c;使用容器可以通过id值获取对应的bean&#xff0c;在一个容器中id值唯一 class&#xff1a; bean的类型&#xff0c;即配置的bean的全路径类名 <bean id"bookDao" class "com.zhang…

软件测试 自动化测试selenium 基础篇

文章目录 1. 什么是自动化测试&#xff1f;1.1 自动化分类 2. 什么是 Selenium &#xff1f;3. 为什么使用 Selenium &#xff1f;4. Selenium 工作原理5. Selenium 环境搭建 1. 什么是自动化测试&#xff1f; 将人工要做的测试工作进行转换&#xff0c;让代码去执行测试工作 …

tailwindcss在vite esm模式下的配置修改

vite6将弃用cjs&#xff08;CommonJS &#xff09;采用ESM&#xff08;ESModule&#xff09;&#xff0c;所有的js文件将编译为ESM语法&#xff0c;参考https://cn.vitejs.dev/guide/troubleshooting 基于ESM方式&#xff0c;我们需要对导出导入方式和postcss插件加载方式进行…

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载 3 月 8 日凌晨&#xff0c;macOS Sonoma 14.4 发布&#xff0c;同时带来了 macOS Ventru 13.6.5 和 macOS Monterey 12.7.4 安全更新。 macOS Ventura 13.6 及更新版本&#xff0c;如无特殊说明皆为安全更新&…

【开源鸿蒙】编译OpenHarmony轻量系统QEMU RISC-V版

文章目录 一、背景介绍二、准备OpenHarmony源代码三、准备hb命令3.1 安装hb命令3.2 检查hb命令 四、编译RISC-V架构的OpenHarmony轻量系统4.1 设置hb构建目标4.2 启动hb构建过程 五、问题解决5.1 hb set 报错问题解决 六、参考链接 开源鸿蒙坚果派&#xff0c;学习鸿蒙一起来&a…

Vue.js+SpringBoot开发农家乐订餐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核心代码4.1 查询菜品类型4.2 查询菜品4.3 加购菜品4.4 新增菜品收藏4.5 新增菜品留言 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的农家乐订餐系统&#xff0c…

ISIS接口MD5 算法认证实验简述

默认情况下&#xff0c;ISIS接口认证通过在ISIS协议数据单元&#xff08;PDU&#xff09;中添加认证字段&#xff0c;例如&#xff1a;MD5 算法&#xff0c;用于验证发送方的身份。 ISIS接口认证防止未经授权的设备加入到网络中&#xff0c;并确保邻居之间的通信是可信的。它可…

Blocks —— 《Objective-C高级编程 iOS与OS X多线程和内存管理》

目录 Blocks概要什么是BlocksOC转C方法关于几种变量的特点 Blocks模式Block语法Block类型 变量截获局部变量值__block说明符截获的局部变量 Blocks的实现Block的实质 Blocks概要 什么是Blocks Blocks是C语言的扩充功能&#xff0c;即带有局部变量的匿名函数。 顾名思义&#x…

八股文打卡day35——数据库(12)

面试题:讲一下MVCC机制&#xff1f; 我的回答&#xff1a; MVCC&#xff0c;是多版本并发控制。 什么意思呢&#xff1f; 数据库会记录每条数据记录的变更情况&#xff0c;也就是说&#xff0c;一条数据记录是有多个版本的。 例如&#xff0c;一条数据&#xff0c;是&#xf…

API安全集成最佳实践:有效应对安全挑战

API集成的重要性正愈发凸显。调查数据显示&#xff0c;83%的受访者表示API集成在其业务战略中起着关键作用&#xff0c;约40%的受访者表示企业数字化转型的深入发展是推动API集成的关键推动力。对于现代企业而言&#xff0c;API集成的重要性主要体现在以下方面&#xff1a; 提…

数据结构与算法Bonus-KNN问题的代码求解过程

一、问题提出 &#xff08;一&#xff09;要求 1.随机生成>10万个三维点的点云&#xff0c;并以适当方式存储 2.自行实现一个KNN算法&#xff0c;对任意Query点&#xff0c;返回最邻近的K个点 3.不允许使用第三方库(e.g.flann&#xff0c;PCL,opencv)! 4.语言任选(推荐…

ChatGPT编程实现简易聊天工具

ChatGPT编程实现简易聊天工具 今天借助[[小蜜蜂]][https://zglg.work]网站的ChatGPT练习socket编程&#xff0c;实现一个简易聊天工具软件。 环境&#xff1a;Pycharm 2021 系统&#xff1a;Mac OS 向ChatGPT输入如下内容&#xff1a; ChatGPT收到后&#xff0c;根据返回结…

深度学习设计-基于机器学习的心血管疾病分析与预测

概要 在国富民强的今天&#xff0c;医疗卫生事业快速发展&#xff0c;平均人口寿命也逐年上升&#xff0c;随之而来的是人口老龄化问题&#xff0c;而心 血管疾病是近年来发病率极高的老年性疾病。其发病率和死亡率均有所上升&#xff0c;已然成为当今威胁人类健康的重大疾 病之…

配置lvs(DR)

配置lvs(DR) 主机名主机IP地址lvs1lvs192.168.88.38web1nginx192.168.88.10web2nginx192.168.88.20 lvs1上操作 #安装ipvsadm [rootlvs1 ~]# yum -y install ipvsadm [rootlvs1 ~]# ipvsadm -A -t 192.168.88.100:80 -s rr [rootlvs1 ~]# ipvsadm -a -t 192.168.88.100:80 -…

【记录搭建elk 如何在linux共享文件】

『如何在linux共享文件 &#xff0c;搭建elk直接看第二部分』 新增用户a b c adduser a adduser b adduser c新增用户组 A groupadd developteam将用户a b c 加入 组 usermod -a -G developteam hadoop usermod -a -G developteam hbase usermod -a -G developteam hive设置um…