原文出处:http://wangjie2013.iteye.com/blog/1996135
下面将介绍使用spring+mybatis的开发样例:
首先,笔者创建的是一个maven工程,在开发先先导入相关的依赖jar:
pom.xml:
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.11</version>
- <scope>test</scope>
- </dependency>
- <!-- spring3 相关依赖 -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>3.0.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>3.0.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>3.0.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>3.0.5.RELEASE</version>
- </dependency>
- <!-- spring MVC -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>3.0.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>3.0.5.RELEASE</version>
- </dependency>
- <!-- mysql jdbc driver -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.13</version>
- </dependency>
- <!-- log 日志 -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.7.2</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.7.2</version>
- </dependency>
- <!-- mybatis-spring 插件 -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis-spring</artifactId>
- <version>1.2.1</version>
- </dependency>
- <!-- mybatis依赖 -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>3.2.1</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
- <!-- 数据库连接池 -->
- <dependency>
- <groupId>proxool</groupId>
- <artifactId>proxool</artifactId>
- <version>0.9.1</version>
- </dependency>
- <dependency>
- <groupId>proxool</groupId>
- <artifactId>proxool-cglib</artifactId>
- <version>0.9.1</version>
- </dependency>
- <!-- servlet-jsp 依赖,为编译jsp时使用 -->
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <version>2.2</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
web.xml中对spring和数据库连接池的配置:
- <context-param>
- <param-name>log4jConfigLocation</param-name>
- <param-value>/WEB-INF/log4j.xml</param-value>
- </context-param>
- <context-param>
- <param-name>log4jRefreshInterval</param-name>
- <param-value>60000</param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
- </listener>
- <!-- needed for ContextLoaderListener -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext.xml</param-value>
- </context-param>
- <!-- Bootstraps the root web application context before servlet initialization -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <!-- The front controller of this Spring Web application, responsible for
- handling all application requests -->
- <servlet>
- <servlet-name>spring3</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
- <!-- Map all requests to the DispatcherServlet for handling -->
- <servlet-mapping>
- <servlet-name>spring3</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!-- database proxool config -->
- <servlet>
- <servlet-name>ServletConfigurator</servlet-name>
- <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
- <init-param>
- <param-name>xmlFile</param-name>
- <param-value>WEB-INF/proxool.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
在这里要注意,因为我使用了数据库连接池proxool,虽然已经设置servlet的启动级别是1,但是由于在servlet启动之前,spring(ContextLoaderListener)监听器已启动了,所以在spring监听启动时它会报一个找不到对应的数据源的SQLException。对于这个问题,本可以通过更改spring为servlet启动,并将启动级别设置为proxool配置加载之后解决:
- <servlet>
- <servlet-name>contextConfigLocation</servlet-name>
- <servlet-class>
- org.springframework.web.context.ContextLoaderServlet
- </servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
但是因为spring3以后就不支持使用servlet启动了,官方推荐使用listener启动applicationContext。所以这个方法在新版本不适合了,不过这个异常可以忽略,因为proxool在整个项目加载完成的时候的确以及完成了加载,所以在项目运行起来以后是不会报错的,开始报错是spring做的一个检查。
为了解决乱码问题最好在web.xml中加上这个配置:
- <!-- character filter. use UTF8 -->
- <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>
- </filter>
- <filter-mapping>
- <filter-name>characterEncodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
下面是对spring3-servlet.xml的配置,它里面申明的bean都存放在webApplicationContext中:
- <?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:mvc="http://www.springframework.org/schema/mvc"
- default-lazy-init="false" xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <context:component-scan base-package="com.pinche.statistic.web"></context:component-scan>
- <!-- 启用spring mvc注解 -->
- <mvc:annotation-driven />
- <!-- 静态资源访问问题 -->
- <mvc:default-servlet-handler />
- <!-- Default ViewResolver -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
- <property name="prefix" value="/WEB-INF/page/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
- <!-- 对抛给spring的异常的处理 -->
- <bean id="exceptionResolver"
- class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
- <property name="exceptionMappings">
- <props>
- <prop key="java.lang.Exception">error</prop>
- </props>
- </property>
- </bean>
- </beans>
下面对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:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <!--
- 数据源配置:这里配置了两个数据源dataSource_statistic和dataSource_pinche,
- 分别注入到_sqlSessionFactory_statistic和_sqlSessionFactory_pinche
- -->
- <bean id="dataSource_statistic"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <!-- 数据库连接 -->
- <property name="url" value="proxool.statistic" />
- <!--
- 这是不使用数据库连接池的配置方式,由于proxool只有在启动web应用的时候才能加载,
- 所以如果在初期开发阶段可以用这种简单的数据库连接方式,在通过
- new FileSystemXmlApplicationContext("src/main/webapp/WEB-INF/applicationContext.xml")
- 获取到context,并进行测试。
- <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
- <property name="url" value="jdbc:mysql://192.168.1.168:3306/statistic"/>
- <property name="username" value="statistic"></property>
- <property name="password" value="statistic"></property>
- -->
- </bean>
- <bean id="dataSource_pinche"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <!-- 数据库连接 -->
- <property name="url" value="proxool.pinche" />
- </bean>
- <!-- 为mybatis-spring注入数据源 -->
- <bean name="_sqlSessionFactory_statistic" class="org.mybatis.spring.SqlSessionFactoryBean">
- <!-- 注入数据源 -->
- <property name="dataSource" ref="dataSource_statistic"></property>
- <!-- 注入别名的包名前缀,这样就可以在mybatis的文件中直接写类名不用写全名了 -->
- <property name="typeAliasesPackage" value="com.pinche.statistic.domain" />
- </bean>
- <bean name="_sqlSessionFactory_pinche" class="org.mybatis.spring.SqlSessionFactoryBean">
- <!-- 注入数据源 -->
- <property name="dataSource" ref="dataSource_pinche"></property>
- <!-- 注入别名的包名前缀,这样就可以在mybatis的文件中直接写类名不用写全名了 -->
- <property name="typeAliasesPackage" value="com.pinche.statistic.domain" />
- <!-- 该配置文件用来指定Mapper映射文件的位置 ,如果映射文件与相应的接口同名,且在同一路径下,那么可以不配置该选项-->
- <!--<property name="mapperLocations" value="src/UserMapper.xml"/>-->
- <!--
- 该属性用来指定MyBatis的XML配置文件路径,跟Spring整合时,
- 编写MyBatis映射文件的目的无非是配置一下typeAlias、setting之类的
- 元素。不用在其中指定数据源,或者事务处理方式。就算配置了也会被忽略。
- 因为这些都是使用Spring中的配置。当然如果你不打算添加typeAlias 之
- 类的设置的话,你连MyBatis的配置文件都不用写,更不用配置这个属性了
- -->
- <!-- <property name="configLocation" value=""/> -->
- </bean>
- <!--
- 注册Mapper方式一
- <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
- <property name="mapperInterface" value="com.pinche.statistic.mapper.ApplicationsMapper"/>
- <property name="sqlSessionFactory" ref="_sqlSessionFactory_statistic"/>
- </bean>
- -->
- <!-- 注册Mapper方式二:也可不指定特定mapper,而使用自动扫描包的方式来注册各种Mapper ,配置如下:-->
- <!--
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.pinche.statistic.mapper"></property>
- </bean>
- -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.pinche.statistic.dialstatistic.mapper"></property>
- <property name="sqlSessionFactoryBeanName" value="_sqlSessionFactory_pinche"></property>
- </bean>
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.pinche.statistic.mapper"></property>
- <property name="sqlSessionFactoryBeanName" value="_sqlSessionFactory_statistic"></property>
- </bean>
- <!-- 事务 -->
- <!-- 虽然mybatis也有自己的事务配置,但是配置了也没用,事务最终会交由spring控制,
- 由于项目没有用到可以注掉。
- -->
- <!-- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource_statistic" />
- </bean>
- <tx:annotation-driven transaction-manager="transactionManager"/> -->
- <!-- 启用注解 -->
- <context:annotation-config />
- <!-- 自动扫描注入 -->
- <context:component-scan
- base-package="com.pinche.statistic.dao,
- com.pinche.statistic.service" />
- </beans>
通过以上的工作环境的配置完成,下一章继续介绍spring-mybatis集成开发的剩余内容。
相关推荐
SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+...
Spring集成Mybatis所需jar包
SpringMVC+Spring+Mybatis集成开发环境
spring集成mybatis,资源包括: 中文版MyBatis 3 User Guide.pdf mybatis-spring集成指导.pdf Mybatis.pdf mybatis-3.2.8.jar mybatis-spring-1.2.2.jar
spring mvc mybatis 整合源码,带数据库脚本,带详细注释,适合初、中、高各级开发人员使用
NULL 博文链接:https://fangyong1307.iteye.com/blog/2276550
Spring Boot 集成mybatis,Spring Boot和mybatis整合的开发
spring4.0 集成 tk.mybatis插件,增删改无需增删改查,快速开发
1. 该框架的开发环境为EclipseJEE集成开发工具。 2. 基于Spring4框架的三层架构开发完成。 3. Mybatis版本为:3.2.8。 4. 使用了SpringMVC框架,Spring4的xml配置和注解配置。 5. 前台展示页面使用了JQuery ...
本套源代码实现了Spring 和 mybatis 和 layui 集成情况下的基础操作,包括: 增删改查、分页、导入导出等功能。数据库为mysql,脚本在源代码根目录下,mybatis_crud.sql
Windchill+spring+mybatis 1、修改codebase/MVCDispatcher-servlet.xml新增如下内容,配置mybatis-spring
springMVC(4.1.2)+spring(4.1.2)+Mybatis+maven整合,项目部署时请配好开发环境!
完美商务管理系统:采用经典搭配SSM技术架构,功能非常全,代码完整度非常高,其中集成了非常多的插件技术,聊天可用,图片裁剪、上传、图片采集、调用摄像头,按钮开关(UI体验...Spring+Springmvc+Mybatis+ace+jquery
项目概述:本项目深入整合Spring Data与MyBatis,致力于简化基于数据访问技术的Spring应用程序开发流程。共计296个文件,主要包括200个Java源码文件,以及39个VM模板、19个XML配置、7个SQL脚本、4个Markdown文档、2...
mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现...
springmvc+spring+mybatis集成开发demo eclipse项目 具体事项请阅读SSIDemo/WebContent/readme.txt 数据库文件在SSIDemo/si.sql
本压缩文件为spring,springMVC,myBatis集成开发源码,解压后可直接在eclipse中使用,有问题也可留言;
最近帮一个师弟写的一个简单系统,虽小,但是想学习三大框架集成的可以下载来看看
SpringMVC+Spring+Mybatis+Druid框架,通过Spring与Mybatis集成,开发一个简单用户增加的Web项目。用到了用的最广的阿里的Druid连接池