SpringMVC和Mybatis (一)整合思路、整合dao、service、springmvc、加载spring

开发分层开发:前端层,业务层,持久层


sping将各层进行整合:
通过spring管理持久层的mapper
通过spring管理service,可以调用mapper接口,进行事务控制。
通过spring管理Handler,可以调用service接口
mapper、service、Handler都是javaBean


第一步整合dao层
使用mapper的扫描器自动扫描mapper接口在spring中进行注册


第二步整合service层
使用配置方式将service接口配置在spring配置文件中。
实现事务控制,根据业务层在哪里,事务层在哪里。


第三步整合springmvc
不需要整合


1.加载jar包:数据库驱动包、mybatis包、mybatis和spring整合包、log4j包、dbcp数据库连接池包、


spring所有包、jstl包
2.创建config创建log4j.properties

config创建db.properties

3.创建包:controller、mapper、po、service、创建ItemsService.java、service.impl。

4.整合dao(mybatis和spring进行整合)
config创建mybatis包创建sqlMapConfig.xml


sqlMapConfig.xml
 
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
"http://mybatis.org/dtd/mybatis-3-config.dtd">   














 





在config创建spring创建applicationContext-dao.xml、applicationContext-service.xml、applicationContext-transaction.xml、springmvc.xml

applicationContext-dao.xml

配置:数据源、SqlSessionFactory


    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">


 
 



                destroy-method="close">
       
       
       
       
       
       
       

        



















编写mapper使用逆向工程
生成:
ssm.mapper和ssm.po的包


针对综合查询mapper,手动定义商品查询mapper
ItemsMapperCustom.xml
sql语句:SELECT * FROM items WHERE NAME LIKE '%批量%'












items.name LIKE '%${itemsCustom.name}%'













ItemsMapperCustom.java接口
public interface ItemsMapperCustom {


//商品查询列表
public List findItemsList(ItemsQueryVo itemsQueryVo)throws Exception;
}




定义包装对象po类
ItemsQueryVo.java 增加set和get方法
public class ItemsQueryVo {


//商品信息包装进入
private Items items;

//为了系统可以扩展性,对商品信息定义扩展类
private ItemsCustom itemsCustom;


不使用原始的po类,使用扩展类
ItemsCustom.java
//商品信息的扩展类
public class ItemsCustom extends Items{


//添加商品扩展的属性
}
==================================================================================
整合service层
让spring管理service接口。
定义service接口ItemsService.java
//商品管理service
public interface ItemsService {


//商品查询列表
public List findItemsList(ItemsQueryVo itemsQueryVo)throws Exception;
}


service实现类
ItemsServiceImpl.java
public class ItemsServiceImpl implements ItemsService {


@Autowired
private ItemsMapperCustom itemsMapperCustom;

//itemsMapperCustom直接从service传到dao
@Override
public List findItemsList(ItemsQueryVo itemsQueryVo) throws Exception {
// TODO Auto-generated method stub
return itemsMapperCustom.findItemsList(itemsQueryVo);
}


}


在spring容器配置service接口
applicationContext-service.xml
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 


xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 


xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">





事务控制
applicationContext-transation
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 


xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 


xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">



 

class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 

 
 
 
 
 


=====================================================================================
整合springmvc
创建springmvc.xml
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">






























配置前端控制器
web.xml



xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 


http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  springmv_mybatis1208
  
  
 
 
  springmvc
  org.springframework.web.servlet.DispatcherServlet
 
 
  contextConfigLocation
  classpath:spring/springmvc.xml
 

 

  
 
  springmvc
 
  *.action
 

  
  
 
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
 




编写Handler(Controller)

ItemsController.java


//使用Controller标识他是一个控制器
@Controller
public class ItemsController {

//注入service
@Autowired
private ItemsService itemsService;


//商品查询列表
//一般建议将url和方法名写成一样,方便queryItems和url进行映射,一个方法对应一个url
@RequestMapping("/queryItems")
public ModelAndView queryItems()throws Exception{
//调用service查找数据库,查询商品,这里先使用静态模拟
List itemsList = itemsService.findItemsList(null);

//返回ModelAndView
ModelAndView modelAndView = new ModelAndView();
//相当于request的setAttribut,在jsp页面中通过itemsList取数据
modelAndView.addObject("itemsList",itemsList);

//指定视图
//下边的路径,如果在视图解析器中配置jsp路径的前缀和jsp路径的后缀,就改为
//modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
//上边的路径配置可以不再程序中指定jsp路径的前缀和jsp路径的后缀
modelAndView.setViewName("items/itemsList");
return modelAndView;
}


编写jsp

itemsList.jsp


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"
contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>





 
    
    check list
    


   






 
  
 
 

  查询条件:
 
 
 
 
 

  商品列表:
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
商品名称 商品价格 生产日期 商品描述 操作
${item.name } ${item.price } ${item.detail } 修改

 

 



=====================================================================================
加载spring容器
把dao、service、transaction
建议使用通配符加载上边的配置文件
在web.xml添加spring容器监听器,加载spring容器。



xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 


http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  springmv_mybatis1208
  
 
 
  contextConfigLocation
  /WEB-INF/classes/spring/applicationContext-*.xml
 

 
  org.springframework.web.context.ContextLoaderListener
 

  

你可能感兴趣的:(先Spring,后SpringMVC,随时Mybatis)