spring整合mybatis

来源:互联网 发布:实变函数和实分析 知乎 编辑:程序博客网 时间:2024/06/05 23:58

本文将讨论如何在maven中用spring整合mybatis


1.导包,在maven工程中,所需要的包全部通过仓库进行下载,配置在pom.xml文件中

 <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  <!-- 配置编码集 -->
        <junit.version>4.12</junit.version>  <!-- junit单元测试版本 -->
        <servlet.version>3.0.1</servlet.version>  <!-- servlet版本 -->
        <jstl.version>1.2</jstl.version>  <!-- jstl版本 -->
        <spring.version>4.3.3.RELEASE</spring.version>  <!-- spring版本 -->
        <fileupload.version>1.3.2</fileupload.version>  <!-- 文件上传版本 -->
        <gson.version>2.7</gson.version>  <!-- gson版本 -->
        <mybatis.version>3.4.1</mybatis.version>  <!-- mybatis版本 -->
        <mybatis.spring.version>1.3.0</mybatis.spring.version>  <!-- spring整合mybatis版本 -->

        <!-- 数据库驱动包版本,注:在本文件中数据库驱动包是从本地仓库配置的,远程仓库下载会出错 -->            

        <jdbc.version>14.0.0</jdbc.version> 
        <mybatis.ehcache.version>1.0.3</mybatis.ehcache.version>  <!-- 缓存版本 -->
        <log.version>2.6.2</log.version>  <!-- 日志版本 -->

        <!-- 数据库连接池版本,注:使用dbcp只能使用ojdbc6的数据库驱动包 -->          

        < dbcp.version>2.1.1</dbcp.version> 
 </properties>
    
 <dependencies>
        <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>${junit.version}</version>
              <scope>test</scope>
        </dependency>
        
        <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>${servlet.version}</version>

              <!-- 注意:provided表明该包只在编译和测试的时候用,由于tomcat中也有servlet-api包

               所以此包在配置时应声明为provided-->

              <scope>provided</scope>
        </dependency>
        
        <dependency>
              <groupId>jstl</groupId>
              <artifactId>jstl</artifactId>
              <version>${jstl.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-aspects</artifactId>
              <version>${spring.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jdbc</artifactId>
              <version>${spring.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>${spring.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>${spring.version}</version>
        </dependency>
        
        <dependency>
              <groupId>commons-fileupload</groupId>
              <artifactId>commons-fileupload</artifactId>
              <version>${fileupload.version}</version>
        </dependency>
        
        <dependency>
              <groupId>com.google.code.gson</groupId>
              <artifactId>gson</artifactId>
              <version>${gson.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>${mybatis.version}</version>
              <scope>runtime</scope>
        </dependency>
        
        <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis-spring</artifactId>
              <version>${mybatis.spring.version}</version>
        </dependency>
        
        <dependency>
              <groupId>com.ss</groupId>
              <artifactId>ojdbc6</artifactId>
              <version>${jdbc.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.mybatis.caches</groupId>
              <artifactId>mybatis-ehcache</artifactId>
              <version>${mybatis.ehcache.version}</version>
              <exclusions>
                   <exclusion>
                       <groupId>org.slf4j</groupId>
                       <artifactId>slf4j-api</artifactId>
                   </exclusion>
              </exclusions>
        </dependency>
        
        <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-slf4j-impl</artifactId>
              <version>${log.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-core</artifactId>
              <version>${log.version}</version>
        </dependency>
        
        <dependency>
              <groupId>org.apache.commons</groupId>
              <artifactId>commons-dbcp2</artifactId>
              <version>${dbcp.version}</version>
        </dependency>
  </dependencies>
  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>

                   <!-- 配置插件版本,目标版本和所安装jdk版本相同 -->

                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
        <finalName>financeSystem</finalName>
   </build>

2.配置 spring-bean.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 指定要扫描的包,包路径为src/main/java/自定义包名 -->
    <context:component-scan base-package="com.ss.financeSystem"/>
    
    <!-- 导入配置文件,配置文件路径在src/main/resource下面 -->
    <context:property-placeholder location="classpath:db.properties"/>
    
    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${driverClass}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${user}"/>
        <property name="password" value="${password}"/>
    </bean>
    
    <!-- 配置SqlSessionFctory -->  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <!-- 指定数据源 -->  
        <property name="dataSource" ref="dataSource"></property>
        
        <!-- mybatis的映射文件 -->  
        <property name="mapperLocations" value="classpath:com/ss/financeSystem/mapper/*Mapper.xml"></property>
    
        <!-- 实体类别名 -->
        <property name="typeAliasesPackage" value="com.ss.financeSystem.bean"></property>
    </bean>
    
    <!-- 配置事务管理 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
</beans>


3.db.properties文件(本文使用的是Oracle数据库)


driverClass=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
user=scott
password=tiger


4.配置spring-mvc.xml文件


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 导入spring-bean文件 -->
    <import resource="classpath:com/ss/financeSystem/config/spring-bean.xml"/>
    
    <!-- 指定要扫描的包 -->
    <context:component-scan base-package="com.ss.financeSystem"/>
    
    <!-- 启用mvc注解 -->
    <mvc:annotation-driven>
        <!-- 对@responseBody中回送的信息进行转码 -->
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="utf-8"></constructor-arg>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    
    <!-- 视图层配置 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 加前缀 -->
        <property name="prefix" value="/"></property>
        <!-- 加后缀 -->
        <property name="suffix" value=".jsp"></property>
    </bean>
    
    <!-- 放过静态资源 -->
    <!-- 启用默认servlet,如果该资源不在默认列表,则在web.xml中增加对静态资源的处理 -->
    <mvc:default-servlet-handler/>
    
    <!-- 文件上传的控制 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <!-- 设置上传文件最大尺寸,单位为B -->
        <property name="maxUploadSize" value="104857600"></property>
    </bean>
    
    <!-- 配置拦截器,在访问控制层前进入 -->
    <!-- <mvc:interceptors>
        <mvc:interceptor>
            拦截路径
            <mvc:mapping path="/back/*"/>
            拦截器位置
            <bean class="com.ss.blog.interceptor.CheckLoginInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors> -->
</beans>


5.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>financeSystem</display-name>

    <!-- 配置编码集过滤器 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 配置前端分发器 初始化spring-mvc.xml文件 -->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:com/ss/financeSystem/config/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

6. *Mapper.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">

<mapper namespace="命名空间,一般是包路径">
   
</mapper>


好了,就此,在maven中用spring整合mybatis完成