前面已经说了,springMVC+spring+Mybatis的整合思路了,现在就照着这个思路来做一下:

  在开始之前先来看一下工程的目录结构:

  config这个目录底下放的都是配置文件:

    mybatis-config.xml是Mybatis的全局配置文件

    applicationContext.xml是spring的配置文件

    dispatch-servlet.xml是springMVC的配置文件

    另外两个是数据库的文件和日志文件

  首先是jar,对于jar我就不贴出来了(这里整合的都是3.x的)记得把该有的jar都添加进去就好了

  

  整合dao(spring和mybatis的整合过程):就是在applicationContext.xml中添加底下的bean

    配置数据源的文件路径

    配置数据源

    配置SqlSessionFactory

   Mapper的管理(扫描的过程)

<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-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/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- 配置数据源的文件的位置 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置数据源  可以使用DriverManagerDataSource 或ComboPooledDataSource 后者比较强大:com.mchange.v2.c3p0.ComboPooledDataSource 需要c3p0的包  -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 数据库连接池(需要数据源连接池的可以自己配置) -->
</bean> <!-- 配置SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 指定Mybatis配置文件的路径 -->
<property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
</bean>
<!-- 配置mapper的扫描包 -->
<!-- 去扫描bean的时候,有一个取名字的规则:bean的名字=原先类的类名小写,这个是为了做测试的时候看看spring和Mybatis有没有整合成功的时候需要使用到 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.etc.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean> </beans>

    db.properties配置文件的配置信息

#数据源的配置信息
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/jc?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

    log4j.properties的配置信息

log4j.rootLogger=DEBUG, stdout
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d[%t]%-5p[%c]-%m%n
log4j.appender.syslog.encoding=UTF-8

    到这来spring和Mybatis就整合完成了,完成之后,建议大家建立一个测试类,测试一下spring和Mybatis是否整合成功,否则后期一旦出错,就要从头开始查,比较麻烦

    测试类代码如下:因为我们在spring的配置中是采用扫描包的方式进行mapper.xml文件是扫描,所以必须要遵循包扫描的几个规则这里重复一遍:   

      规则:1.mapper接口和mapper.xml映射文件的名称必须一致

      2.mapper接口和mapper.xml映射文件必须在同一个目录

          

public class TestUser {
@Test
public void findAll() {
//获取spring配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"classpath:spring/applicationContext.xml");
//得到mapper.xml:bean的值就是你类名的小写,并且要求你dao接口和实现的xml名字必须一样
UserMapper userMapper=(UserMapper) applicationContext.getBean("userMapper");
List<User>list=userMapper.findAll();
for (User user : list) {
System.out.println(user);
}
}
}

    这里的测试类只要你有查询出数据的东西,就说明你整合的spring和Mybatis没有问题,就可以继续往下面走了。

  整合service(让spring管理sevice的过程):这个也很简单就是添加配置文件就OK,但是这里有两种方式:第一种是注释的事务配置,第二种是非注解的事务配置

        事务的配置

        通知(哪一些事务需要提交,哪一些还不需要)

        Aop

  注解的配置(配置文件):

<!-- 4. 事务管理 : DataSourceTransactionManager -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 5. 使用声明式事务 -->
<tx:annotation-driven transaction-manager="txManager" />

  service中注解的使用:(在方法上加上@Transactional

@Transactional//要在你的方法上加上这个注解

public void insertUser(User user) {

    userMapper.insertUser(user);
}

  非注解的配置:

<!-- 事物的配置 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 通知 -->
<tx:advice transaction-manager="transactionManager" id="txAdvice">
<!-- 传播行为:什么方法需要用到事物 -->
<tx:attributes>
<!--<tx:method name="*" rollback-for="RunTimeException"/>-->
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="select*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- Aop 告诉spring哪里需要用到事物-->
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.etc.service.impl.*.*(..))"/>
</aop:config>

  整合springmvc(不需要整合,只要丢配置文件就好了):把springMVC的配置文件放进去就行

        前置过滤器

        默认的注解支持

        视图解析器

<?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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 默认的注解映射支持 -->
<mvc:annotation-driven/>
<!-- 启用自动扫描 -->
<context:component-scan base-package="com.etc.*"></context:component-scan>
<!-- 配置ViewResolver -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>

   在web.xml中加载spring的配置文件和指定springMVC的文件位置(默认是在WEB-INF底下的servlet名字-servlet.xml,现在被我们放到了config底下了)

   

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- spring 容器配置 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- spring 配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext.xml</param-value>
</context-param>
  <!--前置过滤器的配置-->
<servlet>
<servlet-name>dispatch</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
默认的配置文件的地址:/WEB-INF/servlet的名字-servlet.xml <init-param>-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/dispatcher-servlet.xml</param-value>
</init-param> </servlet>
<servlet-mapping>
<servlet-name>dispatch</servlet-name>
<!--
第一种:*.html,*.action 就是过滤以.xxx结尾的 第二种:/ 所有的地址都会进入这个进行解析,静态的资源,需要添加配置
第三种:/* 他就是变态,连jsp页面都进来,结果就是报错XXXXX别用
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

  到此整合结束,下一篇会把增删改查的demo直接贴代码给大家

2.springMVC+spring+Mybatis整合的更多相关文章

  1. 3.springMVC+spring+Mybatis整合Demo(单表的增删该查,这里主要是贴代码,不多解释了)

    前面给大家讲了整合的思路和整合的过程,在这里就不在提了,直接把springMVC+spring+Mybatis整合的实例代码(单表的增删改查)贴给大家: 首先是目录结构: 仔细看看这个目录结构:我不详 ...

  2. SpringMVC+Spring+Mybatis整合

    SpringMVC+Spring+Mybatis整合 导包 配置jdbc.properties.log4j.properties jdbc.driver=com.mysql.jdbc.Driver j ...

  3. Springmvc+Spring+Mybatis整合开发(架构搭建)

    Springmvc+Spring+Mybatis整合开发(架构搭建) 0.项目结构 Springmvc:web层 Spring:对象的容器 Mybatis:数据库持久化操作 1.导入所有需要的jar包 ...

  4. ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)

    在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,以下就仅仅贴出各层实现功能的代码: Jsp页面实现功能的js代码例如以下: <script ...

  5. mybatis学习(十一)——springmvc++spring+mybatis整合

    做任何一个项目都以一个需求,这里先定义一下需求:利用三大框架查询酒店列表. 一.搭建开发环境 1.创建一个web项目 我这里用的是 jdk1.8+tomact7.0 2.创建hotel表 CREATE ...

  6. JavaWeb_(SpringMVC框架)SpringMVC&Spring&MyBatis整合

    JavaWeb_(SpringMVC框架)测试SpringMVC&Spring&MyBatis三大整合 传送门 1.整合ssm 3大框架 过程 a)导包 -> spring_Ja ...

  7. SpringMVC Spring Mybatis整合篇

    1.创建WEB项目 创建项目:(ssmbuild)步骤略........ 给项目添加lib文件夹,用于存放jar包: 在WEB-INF目录下创建lib文件夹: 创建完成:运行项目时需要把jar导入到l ...

  8. springMVC + Spring + MyBatis 整合

    整理下SSM(基于注解)的整合 1. web.xml 配置文件 <?xml version="1.0" encoding="UTF-8"?> < ...

  9. SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

    一直对springmvc和mybatis挺怀念的,最近想自己再搭建下框架,然后写点什么. 暂时没有整合缓存,druid也没有做ip地址的过滤.Spring的AOP简单配置了下,也还没具体弄,不知道能不 ...

随机推荐

  1. viewPager--viewpager时,发生内存溢出OOM问题

    两个问题:1.如果图片达到500kb每张,你这个划屏会有顿卡:2.快速滑动有出现0.几秒的白屏.图片越大,顿卡越明显. 回复parcool:500kb的背景算大的了,如果是想做图片墙,viewpage ...

  2. Hyper-v之利用差异磁盘快速创建多个虚拟机

    在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...

  3. Silverlight ComboBox with TreeView

    本代码根据国外同名控件代码修改而来--对于N-Tier项目,要求数据源都实现一个接口显然很不方便,因此做了如下修改: 删除接口定义及相关代码 增加了DisplayMember属性,用于标明在Combo ...

  4. JNI支持C++与C的区别

    1. C++的代码后缀是".cpp" 2. 在JNI.h 文件中有两套代码.一套是支持c的, 一套是支持JNI的. JNI.h地址:mac ▸ 用户 ▸ douj ▸ Docume ...

  5. expdp远程导出数据

    环境: 源: os:windows db:11.2.0.1 ip:192.168.213.129 sid:orcl 远程机导出: os:centos 6.5 x64 db:11.2.0.4 ip:19 ...

  6. Unable to install breakpoint in

    Unable to install breakpoint inXXXX due to missing line number attributes.modify compiler options to ...

  7. JAVA获取客户端IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  8. jQuery validate兼容IE8写法

    最近做项目的时候遇到一个validate插件在IE8下面点击submit按钮没有执行检查的BUG 在chrome和FF,还有IE9以上都可以.百度了好多文章都没有找到解决方法,后面自己测试找到了问题. ...

  9. 项目中遇到的各种bug和踩过的坑

    zepto 赋值时单位转换问题 zepto 的 animate 方法移动某个元素的位置时,例如修改某个绝对定位的元素的 left 值,要与修改前的值单位一致,修改前如果是像素值,修改后也要是像素值,否 ...

  10. Bootstrap文件上传插件File Input的使用

    基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用 Bootstrap文件上传插件File Input是一个不错的文件上传控件, ...