分类:
Java
mybatis
标签:
mybatis
sqlSessionFactory
mapperLocations
classpath
用过mybatis的人都知道sqlSessionFactory中mapperLocations是用来配置mapper xml文件目录的,通常我们会这么配置classpath*:/com/cangzhitao/**/*Mapper.xml,这表示从classpath com/cangzhitao目录及其子目录下所有以Mapper.xml结尾的文件。cangzhitao后面的**就是表示任意多级目录,而classpath后面的*是什么意思呢?
笔者网上查找资料,发现很多文章都说classpath后面的*表示启用通配符,笔者实际测试,并非如此。笔者开始并没有加*,后面的通配符依然能起作用,并不像网上说的报错,不过也可能是因为版本不同的原因造成的,这里笔者的mybatis版本是3.4.4。笔者的项目是分了多个工程,mapper.xml文件分布在几个工程中,笔者在没有加*的时候,测试发现mybatis只能找到一个工程中的mapper.xml文件,而加上*,所有工程下面的mapper.xml文件就都能找到了,所以如果你也存在笔者这种情况,那么请你在classpath后面加
......
分类:
框架
mybatis
标签:
动态sql
findByParams
接上篇文章,继续完善BaseMapper。
1、BaseMapper.xml:
增加findByParams SQL
<select id="findByParams" parameterType="Map" resultType="Entity">
SELECT * FROM ${__tableName__} t WHERE 1=1
<foreach collection="params" index="index" item="item" open=" and " separator=" and " close="">
${item.name}=${item.value}
&
......
分类:
Java
框架
mybatis
标签:
mybatis
mapper
Interceptor
框架搭建
1、前言
最近新搭建一个框架,以前用过mybatis,这次第一次自己搭建基于mybatis的框架,架构基本上沿袭以前hibernate的套路,说到这,笔者对两者的观念基本还是停留在hibernate自动生成SQL,mybatis需要自己写SQL,mybatis自己写SQL开发起来麻烦,但SQL语句写起来灵活,容易实现功能,性能也更容易优化,而hibernate其实大部分情况下性能也够用,优化起来确实需要一定功底,在hibernate有时不容易实现的功能,笔者实际上会结合jdbcTemplate一起使用,所以一直使用hibernate也没发现什么问题。这次选用mybatis,其实主要是一次尝试。
2、概述
所有的实体都必须实现Entity接口;
所有的Mapper都必须继承BaseMapper,BaseMapper是一个泛型类,有两个泛型参数,一个是该Mapper操作的实体类型,另一个是序列化id类型,BaseMapper里面定义了通用的Mapper接口;
所有的DAO接口都继承于IBaseDA
......