>> springmvc 和 mybatis 整合:springmvc_mybatis
~ 需求
使用springmvc和mybatis完成商品列表查询;
~ 整合思路
springmvc+mybatis的系统架构:
第一步:整合dao层:mybatis和springmvc整合,通过spring管理mapper接口;
使用mapper扫描器自动扫描mapper接口在spring中进行注册;
第二步:整合service:通过spring管理service接口;
使用配置方式将service接口配置在spring配置文件中,实现事务控制;
第三步:整合springmvc:由于springmvc是spring的模块,不需要整合;
~ 环境准备
1、搭建数据库,4张表:User、Orders、OrderDetail、OItems;
2、创建一个动态Javaweb项目:
3、加入需要的jar包:数据库驱动包、mybatis的jar包、mybatis和spring整合包、log4j的jar包、dbcp数据库连接池的jar包、spring所有jar包、jstl的jar包;
~ 整合dao
- 1、配置mybatis自己的配置文件:
SqlMapConfig.xml
2、配置mybatis和spring整合的配置文件:applicationContext-dao.xml
- **3、逆向工程生成po类及mapper(单表的增删改查) :**将逆向工程生成的文件拷贝到项目中(mapper包和po包);
- **4、创建po类:**商品信息的扩展类
ItemsCustom.java
和 商品包装对象类ItemsQueryVo,java
; - 5、手动定义商品查询mapper:
ItemsMapperCustom.xml
和ItemsMapperCustom.java
;针对综合查询mapper,一般情况会有关联查询,建议自定义mapper;
~ 整合service
让spring管理service接口;
- 1、定义service接口
ItemsService.java
:
2、编写service接口实现类ItemsServiceImpl.java
:
3、在sprig容器中配置service(applicationContext-service.xml
):
4、事务控制:在applicationContext-transaction.xml
中使用spring声明式事务控制方法;
~ 整合springmvc
创建springmvc.xml
文件,配置处理器映射器、适配器、视图解析器;
- 1、配置
springmvc.xml
文件: - **2、在
web.xml
文件中配置前端控制器:**参考入门程序;
3、编写Controller(就是Handler):
- 4、编写jsp:
~ 加载spring的容器
在web.xml文件中,添加spring容器监听器,加载spring容器;将mapper、service、controller加载到spring容器中;建议使用通配符加载配置文件;
将applicationContext-dao.xml、applicationContext-service.xml、applicationContext-transaction.xml这三个配置文件添加到spring容器监听器中:
~ 调试及注意问题
访问地址:http://localhost:8080/springmvc_mybatis/queryItems.action
注意问题:Maven项目中,applicationContext-xxx.xml文件、springmvc.xml文件、db.properties文件等,都是放在src/main/resources目录下的,Tomcat部署项目时,src/main/resources目录下的配置文件默认位置为:{项目名}/WEB-INF/classes,而spring却默认在src/main/resources目录下寻找,肯定找不到,因此,配置时需要指定在classpath目录下寻找;
**Eg:**在applicationContext-dao.xml文件中加载配置文件、配置SqlSessionFactory;在web.xml文件中配置前端控制器;