为了更好的学习 springmvc和mybatis整合开发的方法,需要将springmvc和mybatis进行整合。
整合目标:控制层采用springmvc、持久层使用mybatis实现。
jar包
包括:spring(包括springmvc)、mybatis、mybatis-spring整合包、数据库驱动、第三方连接池。
参考:“mybatis与springmvc整合全部jar包”目录
Dao
目标:
1、spring管理SqlSessionFactory、mapper
详细参考mybatis教程与spring整合章节。
sqlMapConfig.xml
在classpath下创建mybatis/sqlMapConfig.xml
applicationContext-dao.xml
配置数据源、事务管理,配置SqlSessionFactory、mapper扫描器。
ItemsMapper.xml
and items.name like '%${items.name}%'
ItemsMapper.java
public interface ItemsMapper {
//商品列表
public List findItemsList(QueryVo queryVo) throws Exception;
}
Service
目标:
1、Service由spring管理
2、spring对Service进行事务控制。
applicationContext-service.xml
配置service接口。
applicationContext-transaction.xml
配置事务管理器。
<
!-- 通知 -->
aop:config
OrderService
public interface OrderService {
//商品查询列表
public List findItemsList(QueryVo queryVo)throws Exception;
}
@Autowired
private ItemsMapper itemsMapper;
@Override
public List findItemsList(QueryVo queryVo) throws Exception {
//查询商品信息
return itemsMapper.findItemsList(queryVo);
}
}
Action
springmvc.xml
web.xml
加载spring容器,配置springmvc前置控制器。
springmvc
contextConfigLocation
/WEB-INF/classes/spring/applicationContext.xml,/WEB-INF/classes/spring/applicationContext-*.xml
org.springframework.web.context.ContextLoaderListener
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
CharacterEncodingFilter
/*
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springmvc.xml
1
springmvc
*.action
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
OrderController
@Controller
public class OrderController {
@Autowired
private OrderService orderService;
@RequestMapping("/queryItem.action")
public ModelAndView queryItem() throws Exception {
// 商品列表
List itemsList = orderService.findItemsList(null);
// 创建modelAndView准备填充数据、设置视图
ModelAndView modelAndView = new ModelAndView();
// 填充数据
modelAndView.addObject("itemsList", itemsList);
// 视图
modelAndView.setViewName("order/itemsList");
return modelAndView;
}
}