1.定义实体类Student

2.定义Student表

3.定义index页面

4.定义处理器

5.定义Service

6.定义Dao接口

7.定义Dao的Mapper配置文件

8.定义MyBatis的主配置文件(很多配置已经在spring-mybatis文件中完成了)

 <!-- 该配置文件中主要用于注册 Mapper 中所使用的 类的 别名,及Mapper的位置 -->
<configuration>
<!-- 别名 -->
<typeAliases>
<package name="com.ssm.model"/>
</typeAliases> <!-- Mapper 位置 -->
<mappers>
<package name="com.ssm.dao"/>
</mappers>
</configuration>

9.定义jdbc.prperties

10.定义Spring的配置文件

  (1)spring-db.xml

  (2)spring-mybatis.xml

 <!-- 该配置文件 主要用于 注册 SqlSessionFactoryBean 以及 Mapper 动态代理生成器的Bean -->

     <!-- 注册 SqlSessionFactory的Bean -->
<!-- InputStream in = Resources.getResourceAsStream("mybatis.xml");
session = new SqlSessionFactoryBuilder().build(in).openSession(); -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 指定mybatis 主配置文件位置 -->
<property name="configLocation" value="classpath:resources/mybatis.xml"/>
</bean> <!-- 也可以使用Mapper 动态代理的方式,来生成 Dao 的 代理对象,但是这种方式一次 只能 生成一个 Dao 的代理对象,如果有多个类型的Dao,那么就需要配置多次
<bean id="studentDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
<property name="mapperInterface" value="com.ssm.dao.StudentDao"></property>
</bean>
-->
<!-- 注册 Mapper 扫描 配置器(为指定包中的 所有接口生成代理对象) -->
<!-- 生成 Dao 的代理对象,使用 Mapper 配置扫描器 会为指定包中的 所有接口生成代理对象-->
<!-- 需要注入该 代理对象时,使用 的 是 ref,(ref="IStudentDao" 或 ref="studentDao") -->
<!-- <property name="dao" ref="studentDao"></property> --> <!-- studentDAO = sqlSession.getMapper(StudentDAO.class); -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
<!-- 指定基本扫描包,即Dao接口包 -->
<property name="basePackage" value="com.ssm.dao"></property>
</bean>

  

  (3)spring-service.xml

  (4)spring-tx.xml

    

 <!-- 配置事务管理器 -->
<!-- 开启Spring中的事务管理(声明式的事务管理) xml-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean> <!-- 注册 事务通知 -->
<!-- 具体的advice(逻辑) 由 自之前定义的TransactionManager 来指定-->
<tx:advice transaction-manager="transactionManager" id="transactionAdvice">
<tx:attributes>
<tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice> <!-- aop 配置 -->
<!-- 想要进行事务管理,都需要运用到 AOP ,往方法前后加入开启事务 和 关闭事务的 逻辑,所以用xml 进行声明式的事务管理,也需要用到AOP -->
<aop:config>
<aop:pointcut expression="execution(* *..service.*.*(..))" id="myPointCut"/>
<aop:advisor advice-ref="transactionAdvice" pointcut-ref="myPointCut"/>
</aop:config>

11.定义SpringMVC配置文件

12.定义视图页面 show.jsp

19.SSM整合_配置式开发的更多相关文章

  1. SSM整合_年轻人的第一个增删改查_查找

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  2. SSM整合_年轻人的第一个增删改查_基础环境搭建

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  3. 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)

    上一篇我们讲解了DispatcherServlet的url-pattern配置详解,今天我们来真正对SpringMVC进行配置式开发.所谓配置式开发是指“处理器类是程序员自己定义的.实现了特定接口的类 ...

  4. 3.2.2 SpringMVC配置式开发

    SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...

  5. SpringMVC配置式开发

    所谓配置式开发是指“处理器类是程序员手工定义,实现了特定接口的类,然后再在SpringMVC 配置文件中对该类进行显示的.明确的注册”的开发方式. 一.处理器映射器HandlerMapping Han ...

  6. SSM整合_年轻人的第一个增删改查_新增

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  7. 18.SSM整合_搭建开发环境

    1.导入jar包 mybatis的Jar包 ehcache的Jar包 spring的 Jar包 mybatis 与 spring 整合Jar包 JSON的jar包 Jaskson的Jar包 Hiber ...

  8. IDEA环境下SSM整合------环境配置

    声明:本文纯为个人笔记整理,如有不妥之处还望及时指出,欢迎转载! 只为解决操作问题,可以从第二幅图往后看! 一.做不出详细的概念叙述和文本设计,本文主要以实战步骤为主,少量解释为辅助,下面请大家牢记两 ...

  9. 1.SSM整合_单表的增删改查

    目标:增删改查 环境:Maven+Eclipse+Tomcat7+JDK7 思维导图: 表结构 目录结构 依赖 <dependencies> <dependency> < ...

随机推荐

  1. Python xlwt 模块执行出错Exception: String longer than 32767 characters

    使用Python搜集数据时用到xlwt保存到excel文件,但是数据量有点大时出现 Exception: String longer than 32767 characters 搜索类似的问题都是建议 ...

  2. antd二级联动异步加载

    /** * Created by Admin on 2016/9/19. * 批量导入 */ import React, {Component, PropTypes} from "react ...

  3. 常见MIME类型列表整理

    译者注:英文原文标题为 Incomplete list of MIME types,意为不完整的/未完成的 MIME 类型列表. 这是一份 MIME 类型列表,以及各个类型的文档类别,按照它们的常见扩 ...

  4. 鸟哥私房菜基础篇:程序管理与 SELinux 初探习题

    猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0440processcontrol.php 1-简单说明什么是程序 (program) 而什么是程序 ( ...

  5. 详解Arduino Uno开发板的引脚分配图及定义(重要且基础)

    首先开发板实物图如下: 在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义.Arduino Uno微控制器采用的是Atme ...

  6. HanLP分词工具中的ViterbiSegment分词流程

    本篇文章将重点讲解HanLP的ViterbiSegment分词器类,而不涉及感知机和条件随机场分词器,也不涉及基于字的分词器.因为这些分词器都不是我们在实践中常用的,而且ViterbiSegment也 ...

  7. 小菜鸟之java基础

    1. javac 命令的作用: javac 编译器解析 Java 源代码,并生成字节码文件的过程 2. java为什么可以跨平台: ava有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚 ...

  8. mysql非主键提示key2 检查索引是否设定为唯一

  9. Linux 下安装 redis5.0

    1.redis 安装 wget http://download.redis.io/rele... tar -zxvf redis-5.0.5.tar.gz cd redis-5.0.5.tar.gz ...

  10. LUA的table实现

    数据结构 下面的结构体是lua中所定义的table typedef struct Table { CommonHeader; lu_byte flags; /* 1<<p means ta ...