1.定义实体类Student
2.定义Student表
3.定义index页面
4.定义处理器
5.定义Service
6.定义Dao接口
7.定义Dao的Mapper配置文件
8.定义MyBatis的主配置文件(很多配置已经在spring-mybatis文件中完成了)
1 <!-- 该配置文件中主要用于注册 Mapper 中所使用的 类的 别名,及Mapper的位置 --> 2 <configuration> 3 <!-- 别名 --> 4 <typeAliases> 5 <package name="com.ssm.model"/> 6 </typeAliases> 7 8 <!-- Mapper 位置 --> 9 <mappers> 10 <package name="com.ssm.dao"/> 11 </mappers> 12 </configuration>
9.定义jdbc.prperties
10.定义Spring的配置文件
(1)spring-db.xml
(2)spring-mybatis.xml
1 <!-- 该配置文件 主要用于 注册 SqlSessionFactoryBean 以及 Mapper 动态代理生成器的Bean --> 2 3 <!-- 注册 SqlSessionFactory的Bean --> 4 <!-- InputStream in = Resources.getResourceAsStream("mybatis.xml"); 5 session = new SqlSessionFactoryBuilder().build(in).openSession(); --> 6 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 7 <property name="dataSource" ref="dataSource"/> 8 <!-- 指定mybatis 主配置文件位置 --> 9 <property name="configLocation" value="classpath:resources/mybatis.xml"/> 10 </bean> 11 12 13 14 <!-- 也可以使用Mapper 动态代理的方式,来生成 Dao 的 代理对象,但是这种方式一次 只能 生成一个 Dao 的代理对象,如果有多个类型的Dao,那么就需要配置多次 15 <bean id="studentDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> 16 <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> 17 <property name="mapperInterface" value="com.ssm.dao.StudentDao"></property> 18 </bean> 19 --> 20 <!-- 注册 Mapper 扫描 配置器(为指定包中的 所有接口生成代理对象) --> 21 <!-- 生成 Dao 的代理对象,使用 Mapper 配置扫描器 会为指定包中的 所有接口生成代理对象--> 22 <!-- 需要注入该 代理对象时,使用 的 是 ref,(ref="IStudentDao" 或 ref="studentDao") --> 23 <!-- <property name="dao" ref="studentDao"></property> --> 24 25 <!-- studentDAO = sqlSession.getMapper(StudentDAO.class); --> 26 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 27 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> 28 <!-- 指定基本扫描包,即Dao接口包 --> 29 <property name="basePackage" value="com.ssm.dao"></property> 30 </bean>
(3)spring-service.xml
(4)spring-tx.xml
1 <!-- 配置事务管理器 --> 2 <!-- 开启Spring中的事务管理(声明式的事务管理) xml--> 3 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 4 <property name="dataSource" ref="dataSource"></property> 5 </bean> 6 7 <!-- 注册 事务通知 --> 8 <!-- 具体的advice(逻辑) 由 自之前定义的TransactionManager 来指定--> 9 <tx:advice transaction-manager="transactionManager" id="transactionAdvice"> 10 <tx:attributes> 11 <tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED"/> 12 </tx:attributes> 13 </tx:advice> 14 15 <!-- aop 配置 --> 16 <!-- 想要进行事务管理,都需要运用到 AOP ,往方法前后加入开启事务 和 关闭事务的 逻辑,所以用xml 进行声明式的事务管理,也需要用到AOP --> 17 <aop:config> 18 <aop:pointcut expression="execution(* *..service.*.*(..))" id="myPointCut"/> 19 <aop:advisor advice-ref="transactionAdvice" pointcut-ref="myPointCut"/> 20 </aop:config>
11.定义SpringMVC配置文件
12.定义视图页面 show.jsp