Mybatis中的foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close: item:表示集合中每一个元素进行迭代时的别: index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置: open:表示该语句以什么开始: separator:表示在每次进行迭代之间以什么符号作为分隔 符: close:表示以什么结束: collection: 在使用fo…
一.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…
不严谨的写法,可能会报错:in (),这种情况不符合mysql的语法. select from loanwhere LOAN_ID in <foreach item="item" index="id" collection="list" open="(" separator="," close=")"> #{item} 要么在Mybatis的sql文件中,要么在Java程序中…
在mybatis中如果我们使用#{}的方式编写的sql时,#{} 对应的变量自动加上单引号 ' ' 例如: select * from #{param} 当我们给参数传入值为user时,他的sql是这样的: select * from 'user' 参数user上会带着单引号,而单引号在mysql中会被识别为字符串,select一个字符串肯定是会报错的. 而如果我们使用${}的方式编写的sql时,${} 是进行sql拼接,${} 对应的变量是不会被加上单引号 ' ' 的. select * fr…
deptDaoMapper.xml 部门对应员工(1对多的关系) <resultMap type="com.hw.entity.Dept" id="deptinfo"><!-- 如果不用resultMap则不写 --> <result column="did" property="did" /> <result column="dname" property=&qu…
<sql id="query_user_where"> <!-- 如果 userQueryVo中传入查询条件,再进行sql拼接--> <!-- test中userCustom.username表示从userQueryVo读取属性值--> <if test="userCustom!=null"> <if test="userCustom.username!=null and userCustom.user…
1.首先定义一个sql标签,一定要定义唯一id.(name,age是要查询的字段) <sql id="Base_Column_List" >name,age</sql> 2.然后通过id引用<select id="selectAll">select <include refid="Base_Column_List" /> from student</select> 这个<inclu…
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用choose,where,set标签生成动态的Sql. 1. choose 用法 假设有这样1个需求:当参数id有值时优先使用id查询,当id没有值时就去判断用户名是否有值,如果有值就用用户名查询,如果没值,就使查询无结果. 首先,我们在接口SysUserMapper中添加如下方法: /** * 根据用户id或用户名查询…
<if>标签 <select id="findActiveBlogWithTitleLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{title} </if> </select> if标签通常伴随着where,set出现…
if(item.getClass().isArray()){ this.collection = new ArrayList(); int length = Array.getLength(items); for(int i=0;i<length;i++){ Object value = Array.get(items,i); this.collection.add(value); } } 接收任何类型集合或数组的代码…