Mybatis整合spring
目录
项目说明
- 本项目作用为将
Mybatis
与Spring
整合到一起 - 项目处于开发阶段
- ……
模块划分
Service模块
- 主要存放实体以及相关核心代码
- 主要分为四个子模块
- dao
Mybatis
自动生成,一般存放*Mapper.java
,相当于Hibernate
中的Dao
- entity
- service
- resources/mapper
Mybatis
自动生成,一般存放*Mapper.xml
,为*Mapper.java
的映射文件
Util模块
Web模块
MyBatis配置
`mybatis与spring整合配置
- 相关配置文件对应Web模块
resources/spring/applicationContext-mybatis.xml
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="useGeneratedKeys" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="defaultStatementTimeout" value="25000" />
</settings>
<typeAliases></typeAliases>
<mappers>
<mapper resource="mapper/*.xml" />
</mappers>
</configuration>
mybatis数据源以及注入配置
- 相关配置文件对应Web模块
resources/spring/applicationContext-dataSource.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:mapper/*.xml" />
<property name="typeAliasesPackage" value="com.demo.java.entity" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.demo.java.dao" />
</bean>
mybatis自动生成代码
Mybatis
支持根据数据库表自动生成bean
dao
xml
文件- 对应配置文件Service模块
resources/generatorConfig.xml
- 注:因为本Demo中
bean
dao
xml
等文件都存放在Service中,所以配置文件放到Service模块 - 需要在Maven的
pom.xml
中增加mybatis-generator
插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${mybatis-generator-maven-plugin.version}</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
...
<properties resource="generatorConfig.properties" />
<classPathEntry location="${jdbc.jar.path}" />
<context id="infoGuardian">
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}" />
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<javaModelGenerator targetPackage="com.demo.java.entity"
targetProject="${project.src}">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="mapper"
targetProject="${project.resources}">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<javaClientGenerator targetPackage="com.demo.java.dao"
targetProject="${project.src}" type="XMLMAPPER">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<table tableName="p_user" domainObjectName="User"
enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false">
</table>
</context>
- 配置完成后使用DOS命令进入到Service模块根目录执行以下命令
mvn mybatis-generator:generate
Spring配置
- Spring配置文件存放位置:Web模块
resources/spring
目录下
- applicationContext-common.xml
- 用于配置Spring公共配置:增加扫描注解,消息定制等
- applicationContext-dataSource.xml
- 用于配置数据源:
DruidDataSource
以及Mybatis
相关配置
- applicationContext-mybatis.xml
- applicationContext-profile.xml
- 用于配置多个需要加载的属性文件
Junit
由@ActiveProfiles([profile])
指定加载的属性文件- Web容器启动则需要在
web.xml
中增加以下配置
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>[profile]</param-value>
</context-param>
- applicationContext.xml
- Web容器启动时需要只需加载该文件即可,其他需要加载的配置文件在该文件中配置
Junit测试
- Junit测试目录为Web模块下
src/test/java
目录 - 新增Junit测试类直接集成
com.demo.java.test.AbstractTest
即可 - 加载配置文件信息以在
com.demo.java.test.AbstractTest
配置完毕
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("test")
@ContextConfiguration({ "classpath:spring/applicationContext.xml" })