MyBatis
totally123
这个作者很懒,什么都没留下…
展开
-
MyBatis中@MapKey的妙用
背景 在实际开发中,有一些场景需要我们返回主键或者唯一键为Key、Entity为Value的Map集合,如Map<Long, User>,之后我们就可以直接通过map.get(key)的方式来获取Entity。 实现 MyBatis为我们提供了这种实现,Dao示例如下: public interface UserDao { @MapKey("id") ...原创 2019-10-24 15:30:11 · 12795 阅读 · 0 评论 -
mybatis动态SQL的<where>标签
<select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG <where> <if test="state != null"> state = #{state} </if> <if test="title != null"> AND tit转载 2016-07-05 10:11:25 · 350 阅读 · 0 评论 -
fastjson过滤指定字段
在项目中,使用了MyBatis的延迟加载。将查出来的对象进行序列化时,fastjson会调用成员变量的getter方法,会触发延迟加载。解决:在对象响应字段前加注解,这样生成的json也不包含该字段。例如:public class User { private Integer id; private String name; @JSONField(serialize = fals原创 2017-01-10 23:43:33 · 2796 阅读 · 0 评论 -
MyBatis类型别名类TypeAliasRegistry
MyBatis类型别名定义在org.apache.ibatis.type.TypeAliasRegistry类中,具体对应关系见如下代码: public TypeAliasRegistry() { registerAlias("string", String.class); registerAlias("byte", Byte.class); registerAlias("l原创 2017-07-05 17:10:52 · 605 阅读 · 0 评论 -
记一次Spring refresh context引发Data source is closed异常的坑
背景:Spring的profile写在了自定义配置文件中,需要手动读取配置文件,手动激活profile,关于激活profile的方法参考Spring激活profile的几种方式,我们采用了方案2。程序是首先初始化Spring上下文,建立连接池和事务管理器等等,然后读取配置文件,获取profile并激活,最后刷新上下文。如果在初始化上下文和刷新上下文之间有数据库操作的话,刷新上下文成功之后,这些操...原创 2018-03-16 11:52:46 · 2634 阅读 · 0 评论 -
MyBatis 批量插入与批量更新
1、批量插入:原理是循环insert values后的参数 Mapper <insert id="addEmpBatch" parameterType="list"> INSERT INTO employee (last_name, email, gender) VALUES <foreach collection="empList" item="em...原创 2018-03-26 18:08:38 · 1137 阅读 · 0 评论