mybatis 中 if else 用法】的更多相关文章

ylbtech-Java-MyBatis-杂项: MyBatis 中 in 的用法2 1.返回顶部 1. 一.简介 在SQL语法中如果我们想使用in的话直接可以像如下一样使用: select * from HealthCoupon where useType in ( '4' , '3' )但是如果在MyBatis中的使用in的话,像如下去做的话,肯定会报错: Map<String, Object> selectByUserId(@Param("useType") Stri…
ylbtech-Java-MyBatis-杂项:MyBatis  中  in 的用法 1.返回顶部 1. foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.    item表示集合中每一个元素进行迭代时的别名,    index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,    open表示该语句以什么开始,    separator表示在…
foreach一共有三种类型,分别为List,[](array),Map三种. foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.info.details. 具体说明:在list和数组中是其中的对象,在map中是value. 该参数为必选. collection 要做foreach的对象,作为入参时,List<?>对象默认用list代替作为键,数组对象有array代替作为键,Map对象用map代替作为键. 当然在作为入参时可以使用…
mybaits 中没有 else 要用 chose when otherwise 代替 下面就是MyBatis中的if....else...表示方法 <choose> <when test=""> //... </when> <otherwise> //... </otherwise> </choose> 例子 <select id="findActiveBlogLike" resultT…
这篇文章我们将来学习一些 association 用法 表结构 DROP TABLE IF EXISTS `student`; CREATE TABLE `student` (  `id` int(11) NOT NULL auto_increment,  `name` varchar(10) NOT NULL,  `gender` char(1) NOT NULL,  `major` varchar(20) NOT NULL,  `grade` char(4) NOT NULL,  `supe…
!= 的用法 <if test="xxx != null and xxx !=''"> == 的用法(相较于!=,仅需将双引号和单引号的位置换一下即可) <if test='xxx == "1"'>…
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. item表示集合中每一个元素进行迭代时的别名,    index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,    open表示该语句以什么开始,    separator表示在每次进行迭代之间以什么符号作为分隔 符,    close表示以什么结束. 在使用foreach的时候最关键的…
示例: 接口方法 public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex); XML文件 <select id="selectTeacher"  resultType="com.myapp.domain.Teacher"> select * from Teacher wh…
今天遇到一个问题,半天没看出来问题,特意记录一下 Dao ConfigEvaluation findConfigEvaluationByEvalpecent(BigDecimal evalPercent); Mapper.xml <select id="findConfigEvaluationByEvalpecent" resultType="com.pacific.rspBonus.model.po.twBonus.mbg.ConfigEvaluation"…
代码示例 import org.apache.ibatis.parsing.GenericTokenParser;import org.apache.ibatis.parsing.TokenHandler; final Map<String,Object> mapper = new HashMap<String, Object>(); mapper.put("name", "张三"); mapper.put("pwd",…
一.在了解foreach之前,先了解一下mybatis传入参数及parameterType 1.我们在Dao层向对应的mapper.xml文件传递参数时,可以传递的参数有: ①.基本数据类型(如int/Integer.long/Long.float等) ②.简单引用数据类型(如String.User实体类对象等) ③.集合数据类型(如List.Map等) 我们在parameterType属性获取参数类型时,只需要与传入的参数类型相同即可,如: ①基本数据类型:Java代码: User findB…
MyBatis中的OGNL教程 有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL. 如果我们搜索OGNL相关的内容,通常的结果都是和Struts有关的,你肯定搜不到和MyBatis有关的,虽然和Struts中的用法类似但是换种方式理解起来就有难度. MyBatis常用OGNL表达式 e1 or e2 e1 and e2 e1 == e2,e1 eq e2 e1 != e2,e1 neq e2…
Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型,    此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType=INTEGER},    如果需要if test则一定使用<if test="_parameter != null">,    此处一定使用_parameter != null而不是id != null    <select id="selectByPrima…
在开发的时候,mybatisl中使用in的时候会遇到一些问题,如果我们传的参数是String类型,以“,”来进行隔开的,例如:参数是0,1,2字符串,mybatis中的语句如下 <select id="findByName" parameterType="string" resultType="com.domain.Factory"> SELECT * FROM FACTORY WHERE ID IN (#{ids}) </se…
deptDaoMapper.xml 部门对应员工(1对多的关系) <resultMap type="com.hw.entity.Dept" id="deptinfo"><!-- 如果不用resultMap则不写 --> <result column="did" property="did" /> <result column="dname" property=&qu…
动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的拼接和组装.可以简单的说成Mybatis中可以动态去的判断需不需要某些东西. 动态Sql主要有以下类型: if choose,when,otherwise trim,where,set foreach 这里主要介绍几个常见的where  if  foreach,直接贴代码了 1.where 这里的where有一个好处就是在拼接成功的时候,会自动去掉第一个and 2.i…
MyBatis/Ibatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号. 如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中. 如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id…
SpringMVC +mybatis+spring 结合easyui用法及常见问题总结 1.FormatString的用法. 2.用postAjaxFillGrid实现dataGrid 把form表单转换成一个map对象传入后台实现条件查询. Js代码: var oPage = {     pageIndex: 1,     pageSize: 20 };    postAjaxFillGrid('#FormID','${contextPath}/discountController/selec…
spring中@param /** * 查询指定用户和企业关联有没有配置角色 * @param businessId memberId * @return */ int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); mybatis中的param /** * 查询指定用户和企业关联有没有配置角色 * @param businessId…
今天在工作时,使用MyBatis中向sql传递两个参数时,一直显示SQL语法错误,仔细检查,才发现传入的参数被加上了引号,导致传入的参数(要传入的参数是表名)附近出现语法错误. 错误写法: } a } b on a.config_id = b.config_id; 这种写法在控制台报错: select pro_type, name, b.info from ? a inner join ? b on a.config_id = b.config_id;### Cause: com.mysql.j…
主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大家分享下数据库主键回填在 MyBatis 中的两种实现思路. 原生写法 框架来源于我们学过的基础知识,主键回填实际上是一个在 JDBC 中就被支持的写法,有的小伙伴可能不知道这一点,因此这里我先来说说在 JDBC 中如何实现主键回填. JDBC 中实现主键回填其实非常容易,主要是在构造 Prepar…
最近在项目中使用between取不同的区间值问题,由于区间跨度大,而且区间多,又是前端传过来的参数,所以使用in和exists比较麻烦.然后就考虑使用between.现将使用方法记录一下. 假如表有个字段param_key,参数区间值为:100-300.1000-1999.3050-5000. 首先是between的用法是:param_key between value1 and value2.如果是有多个between则是:param_key between 100 and 300 and p…
一. 背景 之前mybatis中<where>.<update>.<if>.<foreach>标签用的多,知道有<trim>这个标签,但很少去用,也没有去深入理解它,直到最近遇到一个问题.问题是这样的: 一个SQL有三个int查询字段a.b.c,表达式为:a=#{a} AND (b=#{b} OR c=#{c}).其中a是必查的,b和c为非必查的(这里假定传入-1表示该字段不参与查询).那么该表达式会有以下几种形态: a=#{a} a=#{a}…
先给大家介绍下MyBatis中#{}和${}的区别,具体介绍如下: 1. $将传入的数据直接显示生成在sql中 2. #方式能够很大程度防止sql注入. 3.$方式无法防止Sql注入. 4.$方式一般用于传入数据库对象,例如传入表名. 5.一般能用#的就别用$. MyBatis排序时使用order by 动态参数时需要注意,用$而不是#.如果使用#Mybatis排序不起作用,会使用默认asc order by #{columnName} desc 不会起作用,会使用默认的asc order by…
一.概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在.在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值.①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resu…
一.select <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX, ST.STUDENT_BIRTHDAY, ST.CLASS_ID FROM STUDENT_TBL ST…
myBatis中实现分页的方式是采用RowBounds这个类,用法如下,xml语句不变 传入两个参数,strat起始行, limit是当前页显示多少条数据,原理是RowBounds在处理分页时,只是简单的把offset之前的数据都skip掉,超过limit之后的数据不取出…
MyBatis中@MapKey使用详解我们在上一篇文章中讲到在Select返回类型中是返回Map时,是对方法中是否存在注解@MapKey,这个注解我也是第一次看到,当时我也以为是纯粹的返回单个数据对象的Map类型,但是发现还是有些不同的,这个可以用来返回多条记录,具体用法与分析如下. @MapKey用法我查了一下MapKey的用法,这里加上MapKey注解后,还有指定一个字段作为返回Map中的key,这里一般也就是使用唯一键来做key,我这就使用id做key吧. 在UserMapper中添加一个…
​ 我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQL,在dao层定义的接口中定义的参数传到xml文件中之后,在查询之前mybatis会对其进行动态解析,通常使用#{}接收,下面介绍几种比较常用的用法. 接收多个参数 ​ 遇到这个问题是在昨天实现分页的时候接收参数时遇到了错误,最后用第一种方法解决,但是怀着路漫漫其修远兮的态度,吾必将上下而求索其他用法,所以在查询了网上很多教程和mybatis官方文档,总结出以下四种常用用法: 具体分页参考: 手动实现分页 或 手动分…
1.spring中@Param(org.springframework.data.repository.query.Param) int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); 2.mybatis中param(org.apache.ibatis.annotations.Param) int selectRoleCount(@P…