spring 整合 mybatis

来源:互联网 发布:java 锁修饰静态方法 编辑:程序博客网 时间:2024/04/29 06:56
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>sshdemo</groupId><artifactId>mybatis</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>mybatis Maven Webapp</name><url>http://maven.apache.org</url><properties><spring.version>4.1.4.RELEASE</spring.version><project.build.sourceEncoding>utf-8</project.build.sourceEncoding></properties><dependencies><!-- spring --><dependency><groupId> org.springframework</groupId><artifactId> spring-core</artifactId><version>  4.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-jdbc</artifactId>    <version>4.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency><!-- mybatis --><dependency><groupId> org.mybatis</groupId><artifactId> mybatis</artifactId><version> 3.2.8</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><!-- mysql连接 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.34</version></dependency><!-- log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- servlet --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>3.0-alpha-1</version></dependency><!-- c3p0 连接池 --><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>3.0-alpha-1</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency>    <groupId>org.aspectj</groupId>    <artifactId>aspectjweaver</artifactId>    <version>1.8.9</version></dependency></dependencies><build><finalName>mybatis</finalName></build></project>
config
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=123jdbc.initialPoolSize=20  jdbc.maxPoolSize=100  jdbc.minPoolSize=10  jdbc.maxIdleTime=600  jdbc.acquireIncrement=5  jdbc.maxStatements=5  jdbc.idleConnectionTestPeriod=60  
log4j
### set log levels ###log4j.rootLogger = INFO , C , D , E ### console ###log4j.appender.C = org.apache.log4j.ConsoleAppenderlog4j.appender.C.Target = System.outlog4j.appender.C.layout = org.apache.log4j.PatternLayoutlog4j.appender.C.layout.ConversionPattern = [springmvc_mybatis_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n### log file ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = ../logs/springmvc-mybatis-demo.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = INFO log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = [springmvc_mybatis_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n### exception ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File = ../logs/springmvc-mybatis-demo_error.log log4j.appender.E.Append = truelog4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = [sspringmvc_mybatis_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
spring-mybatis
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"<span style="white-space:pre"></span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"<span style="white-space:pre"></span>xmlns:aop="http://www.springframework.org/schema/aop"<span style="white-space:pre"></span>xsi:schemaLocation="<span style="white-space:pre"></span>http://www.springframework.org/schema/beans <span style="white-space:pre"></span>http://www.springframework.org/schema/beans/spring-beans-4.1.xsd <span style="white-space:pre"></span>http://www.springframework.org/schema/tx <span style="white-space:pre"></span>http://www.springframework.org/schema/tx/spring-tx-4.1.xsd<span style="white-space:pre"></span>http://www.springframework.org/schema/aop <span style="white-space:pre"></span>http://www.springframework.org/schema/aop/spring-aop-4.1.xsd"><span style="white-space:pre"></span><!-- 配置数据源 使用的是c3p0数据源 --><span style="white-space:pre"></span><bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"<span style="white-space:pre"></span>destroy-method="close"><span style="white-space:pre"></span><property name="JdbcUrl" value="${jdbc.url}" /><span style="white-space:pre"></span><property name="user" value="${jdbc.username}" /><span style="white-space:pre"></span><property name="Password" value="${jdbc.password}" /><span style="white-space:pre"></span><!-- 指定连接池中保留的最大连接数. Default:15 --><span style="white-space:pre"></span><property name="maxPoolSize" value="${jdbc.maxPoolSize}" /><span style="white-space:pre"></span><!-- 指定连接池中保留的最小连接数 --><span style="white-space:pre"></span><property name="minPoolSize" value="${jdbc.minPoolSize}" /><span style="white-space:pre"></span><!-- 指定连接池的初始化连接数 取值应在minPoolSize 与 maxPoolSize 之间.Default:3 --><span style="white-space:pre"></span><property name="initialPoolSize" value="${jdbc.initialPoolSize}" /><span style="white-space:pre"></span><!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。 Default:0 --><span style="white-space:pre"></span><property name="maxIdleTime" value="${jdbc.maxIdleTime}" /><span style="white-space:pre"></span><!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数. Default:3 --><span style="white-space:pre"></span><property name="acquireIncrement" value="${jdbc.acquireIncrement}" /><span style="white-space:pre"></span><!-- JDBC的标准,用以控制数据源内加载的PreparedStatements数量。 但由于预缓存的statements属于单个connection而不是整个连接池所以设置这个参数需要考虑到多方面的因数.如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default:0 --><span style="white-space:pre"></span><property name="maxStatements" value="${jdbc.maxStatements}" /><span style="white-space:pre"></span><!-- 每60秒检查所有连接池中的空闲连接.Default:0 --><span style="white-space:pre"></span><property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}" /><span style="white-space:pre"></span></bean><span style="white-space:pre"></span><!-- myBatis文件 --><span style="white-space:pre"></span><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><span style="white-space:pre"></span><property name="dataSource" ref="dataSource" /><span style="white-space:pre"></span><property name="mapperLocations" value="classpath:/mapping/*.xml" /><span style="white-space:pre"></span></bean><span style="white-space:pre"></span><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><span style="white-space:pre"></span><property name="basePackage" value="com.xyh.dao" /><span style="white-space:pre"></span><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /><span style="white-space:pre"></span></bean><span style="white-space:pre"></span><!-- 配置事务管理器 --><span style="white-space:pre"></span><bean id="transactionManager"<span style="white-space:pre"></span>class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><span style="white-space:pre"></span><property name="dataSource" ref="dataSource" /><span style="white-space:pre"></span></bean><span style="white-space:pre"></span><!-- 拦截器方式配置事物 --><span style="white-space:pre"></span><tx:advice id="transactionAdvice" transaction-manager="transactionManager"><span style="white-space:pre"></span><tx:attributes><span style="white-space:pre"></span><tx:method name="insert*" propagation="REQUIRED" /><span style="white-space:pre"></span><tx:method name="update*" propagation="REQUIRED" /><span style="white-space:pre"></span><tx:method name="delete*" propagation="REQUIRED" /><span style="white-space:pre"></span><tx:method name="get*" propagation="SUPPORTS" read-only="true" /><span style="white-space:pre"></span><tx:method name="find*" propagation="SUPPORTS" read-only="true" /><span style="white-space:pre"></span><tx:method name="select*" propagation="SUPPORTS" read-only="true" /><span style="white-space:pre"></span></tx:attributes><span style="white-space:pre"></span></tx:advice><span style="white-space:pre"></span><!-- Spring aop事务管理 --><span style="white-space:pre"></span><aop:config><span style="white-space:pre"></span><aop:pointcut id="transactionPointcut"<span style="white-space:pre"></span>expression="execution(* org.andy.shop.service..*Impl.*(..))" /><span style="white-space:pre"></span><aop:advisor pointcut-ref="transactionPointcut"<span style="white-space:pre"></span>advice-ref="transactionAdvice" /><span style="white-space:pre"></span></aop:config><span style="white-space:pre"></span><!-- mapper bean --><span style="white-space:pre"></span><bean name="Usermapper" id="Usermapper"<span style="white-space:pre"></span>class="org.mybatis.spring.mapper.MapperFactoryBean"><span style="white-space:pre"></span><property name="mapperInterface" value="com.xyh.dao.Usermapper" /><span style="white-space:pre"></span><property name="sqlSessionFactory" ref="sqlSessionFactory" /><span style="white-space:pre"></span></bean><span style="white-space:pre"></span><bean name="userService" class="com.xyh.service.UserServiceImp"><span style="white-space:pre"></span><property name="Usermapper" ref="Usermapper"><span style="white-space:pre"></span></property><span style="white-space:pre"></span></bean></beans>
 spring 配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"<span style="white-space:pre"></span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"<span style="white-space:pre"></span>xsi:schemaLocation="http://www.springframework.org/schema/beans<span style="white-space:pre"></span>http://www.springframework.org/schema/beans/spring-beans-4.1.xsd<span style="white-space:pre"></span>http://www.springframework.org/schema/context<span style="white-space:pre"></span>http://www.springframework.org/schema/context/spring-context-4.1.xsd"><span style="white-space:pre"></span><context:property-placeholder location="classpath:config.properties" /><span style="white-space:pre"></span><context:component-scan base-package="com.xyh.service" /><span style="white-space:pre"></span><context:component-scan base-package="com.xyh.dao" />    <context:component-scan base-package="classpth:/mapping" /></beans>


@Repositorypublic interface Usermapper {/** *   * 功能: 查询用户列表 *  * @return */public List<User> find();}

package com.xyh.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jmx.export.annotation.ManagedResource;import org.springframework.stereotype.Repository;import org.springframework.stereotype.Service;import com.xyh.dao.Usermapper;import com.xyh.domain.User;@Service("UserService")public class UserServiceImp implements UserService {   @Autowiredpublic Usermapper usermapper;public List<User> find() {// TODO Auto-generated method stubreturn usermapper.find();}public Usermapper getUsermapper() {return usermapper;}public void setUsermapper(Usermapper usermapper) {this.usermapper = usermapper;}}

junit
package com.xyh.dao;import java.util.List;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Before;import org.junit.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.xyh.domain.User;import com.xyh.service.UserService;import com.xyh.service.UserServiceImp;public class UsermapperTest {@Autowiredpublic UserService userService;@Beforepublic void init() {@SuppressWarnings("resource")ApplicationContext ac = new ClassPathXmlApplicationContext(new String[] { "classpath:spring.xml","classpath:spring-mybatis.xml" });  userService=  (UserService) ac.getBean("userService");}@Testpublic void testfind() {List<User> list= userService.find();System.out.println(list.size());}}




0 0
原创粉丝点击