您的位置:首页 > 编程语言 > Java开发

spring整合mybatis

2016-07-21 15:21 381 查看
这里通过spring+junit测试整合mybatis功能,运用的是mysql数据库。

jar包依赖出了spring+junit相关以外,还需要mybatis相关jar包

<!-- DB:mysql & mybatis  -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>


下面是相关配置

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="false"/>
<setting name="lazyLoadingEnabled" value="false"/>
<setting name="aggressiveLazyLoading" value="false"/>
<setting name="useGeneratedKeys" value="true"/>
<setting name="autoMappingBehavior" value="FULL"/>
<setting name="defaultExecutorType" value="REUSE"/>
<setting name="defaultStatementTimeout" value="20000"/>
<!--自动驼峰命名映射字段名-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

</configuration>


数据源配置:

<bean id="demoDatasource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="root" />
<!-- Connection Pooling Info -->
<property name="filters" value="wall,stat,log4j" />
<property name="maxActive" value="15" />
<property name="initialSize" value="1" />
<property name="maxWait" value="60000" />
<property name="minIdle" value="1" />
<property name="timeBetweenEvictionRunsMillis" value="3000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
<!--监控信息输出到日志的时间-->
<property name="timeBetweenLogStatsMillis" value="300000" />
<!-- 超过时间限制是否回收 -->
<property name="removeAbandoned" value="true" />
<!-- 超时时间;单位为秒。180秒=3分钟 -->
<property name="removeAbandonedTimeout" value="180" />
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true" />
</bean>

<bean id="demoSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="demoDatasource"/>
<property name="typeAliasesPackage" value="yjc.demo.entities"/>
<property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:mappers/*/*Dao.xml"/>
</bean>

<bean id="demoMapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="yjc.demo.dao"/>
<property name="sqlSessionFactoryBeanName" value="demoSqlSessionFactory"/>
</bean>


SQL映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="yjc.demo.dao.UserDao">

<insert id="insert" useGeneratedKeys="true" keyProperty="id">
INSERT INTO `user` (mobile_number,`password`,salt,user_name,nick_name,gender,email,`status`,comment)
VALUES(    #{mobileNumber},#{password},#{salt},#{userName},#{nickName},#{gender},#{email},1,#{comment}    )
</insert>

</mapper>


其中

MapperScannerConfigurer:basePackage属性用于dao层扫包;

SqlSessionFactoryBean:typeAliasesPackage属性用于实体类扫包,configLocation属性用于引入mybatis-config.xml配置,mapperLocations属性用于引入SQL映射的资源文件

测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring-context.xml")
public class UserDaoTest {

@Autowired
private UserDao userDao;

@Test
public void insertTest(){
User user = new User();
user.setMobileNumber("13185092783");
user.setGender(GenderEnum.MALE);
user.setNickName("yjc");
user.setPassword("13456a");
user.setSalt("zxccc");
user.setUserName("yangjiachang");
System.out.println(userDao.insert(user));
}
}


执行结果:1

这里只做整合相关配置介绍,mybatis具体使用这几就不赘述了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis spring jar