MyBatis 动态SQL
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 5 <mapper namespace="com.iotek.dao.IEmployeeDAO"> 6 <resultMap id="empMap" type="Employee"> 7 <id property="empId" column="empId"/> 8 <result property="empName" column="empName"/> 9 <result property="salary" column="salary"/> 10 <!--association:配置多对一、property:多方中一方的属性名,javaType:一方的类型--> 11 <association property="dept" javaType="Dept"> 12 <id property="deptId" column="deptId"/> 13 <result property="deptName" column="deptName"/> 14 </association> 15 </resultMap> 16 17 18 <select id="getEmpAndDeptByEmpId" parameterType="int" resultMap="empMap"> 19 select t_dept.*,t_employee.* from t_dept,t_employee 20 where t_dept.deptId = t_employee.dept_id 21 AND t_employee.empId = #{id} 22 </select> 23 24 <select id="getEmpByParams" parameterType="map" resultType="Employee"> 25 select t_employee.* from t_employee where 1=1 26 <if test="empName!=null and empName!=''"> 27 and empName like #{empName} 28 </if> 29 <if test="minSalary!=null and minSalary>=0"> 30 and salary >= #{minSalary} 31 </if> 32 <if test="maxSalary!=null and maxSalary>=0"> 33 and salary <= #{maxSalary} 34 </if> 35 and salary is not null 36 </select> 37 38 <select id="getEmpByParams2" parameterType="map" resultType="Employee"> 39 select t_employee.* from t_employee 40 <where> 41 <if test="empName!=null and empName!=''"> 42 and empName like #{empName} 43 </if> 44 <if test="minSalary!=null and minSalary>=0"> 45 and salary >= #{minSalary} 46 </if> 47 <if test="maxSalary!=null and maxSalary>=0"> 48 and salary <= #{maxSalary} 49 </if> 50 </where> 51 and salary is not null 52 </select> 53 54 <select id="getEmpByParams3" parameterType="map" resultType="Employee"> 55 select t_employee.* from t_employee 56 <choose> 57 <when test="empName!=null and empName!=''"> 58 where empName like #{empName} 59 </when> 60 <when test="minSalary!=null and minSalary>=0"> 61 where salary >= #{minSalary} 62 </when> 63 <when test="maxSalary!=null and maxSalary>=0"> 64 where salary <= #{maxSalary} 65 </when> 66 <otherwise> 67 where salary is not null 68 </otherwise> 69 </choose> 70 </select> 71 72 <select id="getEmpInIds" parameterType="list" resultMap="empMap"> 73 select t_employee.* from t_employee 74 <where> 75 empId IN 76 <foreach collection="list" item="id" open="(" close=")" separator=","> 77 #{id} 78 </foreach> 79 </where> 80 81 <!--等价于:select * from t_employee where empId in (1,2,3)--> 82 <!--1,2,3就是被封装在list集合--> 83 </select> 84 85 <update id="DynamicUpdateEmployee" parameterType="Employee"> 86 update t_employee 87 <set> 88 <if test="empName!=null and empName!=''">empName=#{empName},</if> 89 <if test="salary!=null and salary>0">salary=#{salary},</if> 90 91 </set> 92 where empId=#{empId} 93 </update> 94 </mapper>