spring整合mybatis
2016-07-21 15:21
381 查看
这里通过spring+junit测试整合mybatis功能,运用的是mysql数据库。
jar包依赖出了spring+junit相关以外,还需要mybatis相关jar包
下面是相关配置
mybatis-config.xml
数据源配置:
SQL映射文件
其中
MapperScannerConfigurer:basePackage属性用于dao层扫包;
SqlSessionFactoryBean:typeAliasesPackage属性用于实体类扫包,configLocation属性用于引入mybatis-config.xml配置,mapperLocations属性用于引入SQL映射的资源文件
测试类:
执行结果:1
这里只做整合相关配置介绍,mybatis具体使用这几就不赘述了。
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具体使用这几就不赘述了。
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- Spring整合WebSocket应用示例(上)
- Mybatis传递多个参数的解决办法(三种)
- 获取Java的MyBatis框架项目中的SqlSession的方法
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- 监听器获取Spring配置文件的方法
- Mybatis逆工程jar包的修改和打包
- 深入浅析mybatis oracle BLOB类型字段保存与读取
- Java利用Sping框架编写RPC远程过程调用服务的教程
- springmvc 发送ajax出现中文乱码的解决方法汇总