Spring和MyBatis整合,druid连接池

来源:互联网 发布:软件定制开发公司 编辑:程序博客网 时间:2024/06/03 15:47

一、导入所需jar包

<!-- test --><dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.11</version>      <scope>test</scope></dependency><dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-test</artifactId>      <version>4.0.5.RELEASE</version></dependency><!-- spring --><dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context</artifactId>      <version>4.0.5.RELEASE</version></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.2.3</version></dependency><!-- jdbc --><dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-jdbc</artifactId>      <version>4.0.5.RELEASE</version></dependency><dependency>      <groupId>com.h2database</groupId>      <artifactId>h2</artifactId>      <version>1.3.176</version>      <scope>runtime</scope></dependency><!-- 连接池 --><dependency>      <groupId>com.alibaba</groupId>      <artifactId>druid</artifactId>      <version>1.0.15</version></dependency>


二、applicationContext.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd"default-lazy-init="true"><description>Spring公共配置</description><context:property-placeholder location="classpath:application.properties" /><!-- 使用annotation 自动注册bean --><context:component-scan base-package="com.lxy" /><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 指定数据源 --><property name="dataSource" ref="dataSource" /><!-- 指定Mapper接口存放的位置 --><property name="mapperLocations" value="classpath:mybatis/*Mapper.xml" /><!-- 指定实体类bean所在的包 --><property name="typeAliasesPackage" value="com.lxy.beans" /><!-- 指定配置文件位置 --><property name="configLocation" value="classpath:/mybatis/mybatis-configuration.xml"></property></bean><!-- 扫描basePackage下所有以@MyBatisRepository标识的 dao接口 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.lxy.dao" /><property name="annotationClass" value="com.lxy.util.MyBatisRepository" /></bean><!-- 数据源,用druid连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"init-method="init" destroy-method="close"><!-- 基本属性 url、user、password --><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="1" /><property name="maxActive" value="${jdbc.pool.maxActive}" /><property name="minIdle" value="0" /><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="60000" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="60000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="300000" /><property name="validationQuery" value="values 1" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><!-- 打开PSCache,并且指定每个连接上PSCache的大小 --><property name="poolPreparedStatements" value="true" /><property name="maxPoolPreparedStatementPerConnectionSize"value="20" /><!-- 配置监控统计拦截的filters --><property name="filters" value="stat" /></bean></beans>


三、数据源application.properties

#h2 database settingsjdbc.driver=org.h2.Driverjdbc.url=jdbc:h2:file:~/.h2/asdev;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSEjdbc.username=sajdbc.password=database.jpa.databasePlatform=org.hibernate.dialect.H2Dialect#connection pool settingsjdbc.pool.maxIdle=10jdbc.pool.maxActive=50


四、MyBatis的配置文件mybatis-configuration.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="mapUnderscoreToCamelCase" value="true" /></settings></configuration>

五、创建标识类,用于表示MyBatis的dao:MyBatisRepository.class
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Componentpublic @interface MyBatisRepository {String value() default "";}



以上,MyBatis的基本配置就完成了。然后根据需要创建Dao及Mapper:


六、创建Mapper文件,文件命名规则: *Mapper.xml。如:StudentMapper.xml

<?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"><!-- namespace必须指向Dao接口 --><mapper namespace="com.lxy.dao.StudentMybatis">      <!-- id必须指向dao中的方法,parameterType为入参的类型,resultType为返回值的类型</span> -->
      <!--入参的map<String,Object>中,String为属性名,Object是值 --><select id="findStudentByStudentId" parameterType="map" resultType="Student">select *from D001_Student swhere s.student_id =#{id}</select></mapper>


七、创建Dao文件。StudentMybatis.class

<pre name="code" class="java">@MyBatisRepository //标识这是一个Mybatis的daopublic interface StudentMybatis {
List<Student> findStudentByStudentId (Map<String, Object> map);
}


现在,就可以在Service里调用Dao中的findStudentByStudentId(Map<String, Object>  map)方法来访问数据库了。

目录结构:


0 0
原创粉丝点击