1.#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入. #{}可以接收简单类型值或pojo属性值. 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称. 使用#传入参数是,sql语句解析是会加上"",比如 select * from table where name = #{name} ,传入的name为小李,那么最后打印出来的就是
原配置写法:<if test="assetFlaw.handleTime != null and assetFlaw.handleTime != ''"> and af.handle_time like CONCAT('%',#{assetFlaw.handleTime},'%')</if> 原因: 这个错误是由于mybatis版本问题导致,这个版本中时间不能与空字符串进行比较.3.3.*版本应该都会有这个问题. 解决:
这个问题我让我搞了大半天,实在气人,话不多说,直接上代码 <select id="*" resultMap="Blog" parameterType="Integer"> select * (select count(*) from table_name c where c.bbs_id=t.id) as plcount, //子查询 plcount为虚拟字段 排序 from table_name t <