MyBatis:参数传递 [转]
一、单个参数:
public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">select t.* from tableName t where t.id= #{id} </select> 其中方法名和ID一致,#{}中的参数名与方法中的参数名一直, 我这里采用的是XXXBean是采用的短名字,select 后的字段列表要和bean中的属性名一致, 如果不一致的可以用 as 来补充。
二、多参数:
public List<XXXBean> getXXXBeanList(String xxId, String xxCode); <select id="getXXXBeanList" resultType="XXBean">select t.* from tableName where id = #{0} and name = #{1} </select> 由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始
三、Map封装多参数:
public List<XXXBean> getXXXBeanList(HashMap map); <select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">select 字段... from XXX where id=#{xxId} code = #{xxCode} </select> 其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。
四、List封装in:
public List<XXXBean> getXXXBeanList(List<String> list); <select id="getXXXBeanList" resultType="XXBean">select 字段... from XXX where id in<foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select> foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4')
五、多参数传递之注解方式示:
例子:public AddrInfo getAddrInfo(@Param("corpId")int corpId, @Param("addrId")int addrId);xml配置这样写:<select id="getAddrInfo" resultMap="com.xxx.xxx.AddrInfo">SELECT * FROM addr__info where addr_id=#{addrId} and corp_id=#{corpId} </select>以前在<select>语句中要带parameterType的,现在可以不要这样写。
六、selectList()只能传递一个参数,但实际所需参数既要包含String类型,又要包含List类型时的处理方法:
将参数放入Map,再取出Map中的List遍历。如下:
List<String> list_3 = new ArrayList<String>();Map<String, Object> map2 = new HashMap<String, Object>(); list.add("1");
list.add("2");
map2.put("list", list); //网址id map2.put("siteTag", "0");//网址类型
public List<SysWeb> getSysInfo(Map<String, Object> map2) {return getSqlSession().selectList("sysweb.getSysInfo", map2); }
<select id="getSysInfo" parameterType="java.util.Map" resultType="SysWeb">select t.sysSiteId, t.siteName, t1.mzNum as siteTagNum, t1.mzName as siteTag, t.url, t.iconPathfrom TD_WEB_SYSSITE tleft join TD_MZ_MZDY t1 on t1.mzNum = t.siteTag and t1.mzType = 10WHERE t.siteTag = #{siteTag } and t.sysSiteId not in <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">#{item}</foreach></select>
MyBatis:参数传递 [转]相关推荐
- Mybatis参数传递及返回类型
mybatis参数传递: 单个参数:不做特殊处理 #{参数名}:取出参数值 多个参数:做特殊处理 多个参数会被封装成一个map key: ...
- Mybatis - MyBatis注解开发SQL举例,以及MyBatis参数传递的一些概念
文章目录 MyBaits参数传递 单个参数 多个参数 注解开发 注解完成增删改查 提示 简单举例 编写接口方法 编写测试方法 MyBaits参数传递 MyBatis接口方法中可以接收各种各样的参数,M ...
- MyBatis研习录(07)——MyBatis参数传递
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View ...
- Mybatis参数传递5种方式
1.单个参数 可以接受基本类型,对象类型,集合类型的值.这种情况MyBatis可直接使用这个参数,不需要经过任何处理. <!-- 根据id查询数据表中的一条记录,并封装User对象 --> ...
- Mybatis实战练习六【批量删除Mybatis参数传递】
目录
- mybatis参数传递
1.单参传递 PersonMapper: public void deletePerson(Integer id); Mapper.xml: <delete id="deleteP ...
- JavaWeb学习之路——SSM框架之Mybatis(三)
数据库配置和相关类创建看上篇:JavaWeb学习之路--SSM框架之Mybatis(二) https://blog.csdn.net/kuishao1314aa/article/details/832 ...
- MyBatis快速上手与知识点总结
目录 阅读提示: 本文默认已经预装预装maven 1.MyBatis概述 1.1 MyBatis概述 持久层框架,用于简化JDBC开发,是对JDBC的封装 持久层: 负责将数据保存到数据库的代码部分 ...
- MyBatis快速上手与知识总结
原文地址: https://www.cnblogs.com/dandelion-000-blog/p/16636393.html 文章目录 @[toc] 1.MyBatis概述 1.1 MyBatis ...
- 我的MyBatis学习之路
文章目录 MyBatis MyBatis入门 1.持久层(Persistence Layer) 2.什么是框架(Framwrok) 2.1.使用框架的好处 2.2 .常用的基于JavaEE的三大开源框 ...
最新文章
- 图解YARN--大数据平台技术栈17
- 三代测序关键计算技术开发及应用
- win10安装jdk1.8
- 全球及中国防褥疮充气垫行业投资前景展望与“十四五”发展规划建议报告2021年版
- CSS3学习之 animation 属性
- Visual Studio 2010中添加App_Code文件夹注意事项
- glove中文词向量_Summary系列glove模型解读
- 8软件遇到的问题及解决方法_Excel工作表中的8个常见问题,你一定遇到过,附解决方法...
- python代码覆盖率测试_unittest+coverage单元测试代码覆盖操作实例详解_python
- 报错:Unchecked runtime.lastError:Could not establish connection. Receiving end does not exist.
- Confluence 6 修改日志文件的大小数量和级别
- 如何利用OUTLOOK提高你的工作效率
- 深度学习14-实战三-Google涂鸦识别挑战项目(上)
- Linux中线程使用详解
- tinymce的中文语言包
- MSP430指令初探
- day 22 内置的模块
- 为什么要处理自然语言? | NLP基础
- 曾国藩家书-修身篇 致诸弟·明师益友虚心请教
- dedecms中[field:imglink/]图片大小问题解决办法