在mybatis中如果我们使用#{}的方式编写的sql时,#{} 对应的变量自动加上单引号 ' ' 例如: select * from #{param} 当我们给参数传入值为user时,他的sql是这样的: select * from 'user' 参数user上会带着单引号,而单引号在mysql中会被识别为字符串,select一个字符串肯定是会报错的. 而如果我们使用${}的方式编写的sql时,${} 是进行sql拼接,${} 对应的变量是不会被加上单引号 ' ' 的. select * fr…
1 使用map <select id="selectRole" parameterType="map" resultType="RoleMap"> SELECT id, roleName, note FROM role WHERE roleName LIKE Concat('%',#{roleName},'%') and note like Concat('%',#{note},'%') </select> 在接口中如下定…
一.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…
#{} 表示一个占位符号,通过 #{} 可以实现 preparedStatement 向占位符中设置值,自动进行 java 类型和 jdbc 类型转换.#{} 可以有效防止   sql注入. #{} 可以接收简单类型值或 pojo 属性值. 如果 parameterType 传输单个简单类型值,#{} 括号中可以是 value 或其它名称. ${} 表示拼接sql串,通过 ${} 可以将 parameterType 传入的内容拼接在 sql 中且不进行 jdbc 类型转换,不能防止 sql 注入…
不严谨的写法,可能会报错:in (),这种情况不符合mysql的语法. select from loanwhere LOAN_ID in <foreach item="item" index="id" collection="list" open="(" separator="," close=")"> #{item} 要么在Mybatis的sql文件中,要么在Java程序中…
union 连接查询  连接两个表后会过滤掉重复的值 <resultMap id="BaseResultMap" type="com.sprucetec.pay.etl.model.BillDetail"> <id column="id" jdbcType="INTEGER" property="id"/> <result column="pay_order_no&q…
动态sql where if where可以自动处理第一个and. <!-- 根据id查询用户信息 --> <!-- public User findUserById(int id); --> <select id="findUserById" parameterType="user" resultType="user"> select * from user <!-- 当有if条件成立时,where会自…
不严谨的写法,可能会报错:in (),这种情况不符合SQL的语法,导致程序报错. 如果简单只做非空判断,这样也有可能会有问题:本来in一个空列表,应该是没有数据才对,却变成了获取全部数据! 所以一个比较周全的方法是: <select id="findLastPoolTaskIdsForMo" resultMap="poolTaskResult"> SELECT MIN(p.pool_task_id) AS pool_task_id FROM pool_t…
Available parameters are [2, 1, 0, param1, param2, param3] <select id="loginByTeacher" parameterType="String" resultType="User">     SELECT * FROM `user` WHERE LoginID=#{0} and LoginPwd=#{1} AND Role=2  </select>…
<!-- 收件箱插入收件信息 -->    <insert id="insertReceiveemail">           <!-- 生成一条UUID类型的id -->        <selectKey keyProperty="rid" resultType="String" order="BEFORE">              select  replace(uu…