Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

Spring+SpringMVC+Mybatis整合

风沙迷了眼 2019-02-20 14:28:00 阅读数:144 评论数:0 点赞数:0 收藏数:0

一、简单测试工程搭建

1、Mybatis所需要的的jar包(包含数据库驱动包和相关的日志包)、SpringMVC和Spring的jar包

2、然后构建一个基本的工程,这里我们使用mapper代理的方式进行Mybatis的编写,关于mapper代理请参考Mybatis简单入门中的Mybatis开发dao方法简介中讲到的mapper代理方式,所以在项目中我们不建立dao包,需要建立mapper包用来存放mapper接口和相应的mapper配置文件。

二、配置Mybatis和Spring整合

1、配置Mybatis的核心配置文件,因为是和Spring整合,所以数据库的配置交给Spring管理由Spring进行数据源的配置。1 2 5 6 7 8 9 10 11 12

 2、下来是Spring和Mybatis的整合,可以参考前面的Mybatis和Spring整合篇中的mapper代理方式。到这里我们就需要配置Spring整合Mybatis的配置文件了,在Spring和Mybatis的整合文件applicationContext-dao.xml配置文件中我们需要配置数据源(dataSource)、会话工厂(sqlSessionFactory)和Mapper扫描器

1 2 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

3、接下来我们就开始编写一个简单测mapper测试配置文件,只完成一个小功能(查询一个列表集合) ,在里面使用一些简单的动态sql进行判断避免异常

1 2 5 6 7 8 9 10 11 12 13 14 15 product.pname LIKE '%${productExtend.name}%'16 17 18 19 20 21 22 23 SELECT product./* FROM product24 25 26 27 28

4、写完mapper配置文件之后就写一个接单的接口程序,其中只包含一个方法就是查询列表信息。

1 packagecn.test.ssm.mapper;2 3 importcn.test.ssm.po.ProductExtend;4 importcn.test.ssm.po.ProductQueryVo;5 6 importjava.util.List;7 8 public interfaceProductDemo {9 10 public List findProductListByName(ProductQueryVo productQueryVo) throwsException;11 }

三、配置Spring和Service层整合

1、一般情况下都是定义service接口和对应的实现类,这里我们也定义一个简单的ProductService接口和其实现类作为service层的主要类

①Product Service接口:主要就是要调用mapper接口中定义的那一个查询列表的方法1 packagecn.test.ssm.service;2 3 importcn.test.ssm.po.ProductExtend;4 importcn.test.ssm.po.ProductQueryVo;5 6 importjava.util.List;7 8 public interfaceProductService {9 public List findProductListByName(ProductQueryVo productQueryVo) throwsException;10 }

②ProductServiceImpl实现类,实现上面接口中的方法,由于要和Mybatis和Spring已经整合(采用mapper代理的方式),并且在applicationContext-dao配置文件中配置了mapper扫描器,所以我们可以使用注解的方式注入Mapper接口然后在service中调用接口中的方法

1 packagecn.test.ssm.service.impl;2 3 importcn.test.ssm.mapper.ProductDemo;4 importcn.test.ssm.po.ProductExtend;5 importcn.test.ssm.po.ProductQueryVo;6 importcn.test.ssm.service.ProductService;7 importorg.springframework.beans.factory.annotation.Autowired;8 9 importjava.util.List;10 11 public class ProductServiceImpl implementsProductService {12 13 @Autowired14 private ProductDemo productDemo; //自动注入mapper接口,然后在实现service的方法中调用mapper接口中的方法 15 16 @Override17 public List findProductListByName(ProductQueryVo productQueryVo) throwsException {18 returnproductDemo.findProductListByName(productQueryVo);19 }20 }

2、上面写好了接口和实现类,然后就是将service交给Spring进行管理,配置applicationContext-service.xml对service进行整合。对service整合主要包括:service本身接口实现类的bean配置、事务控制等

①管理service本身的接口实现类的bean1 2 16 17 18 19 20 21 22

②进行事务控制的配置

1 2 16 17 21 22 23 24 25 26 27 28 29 30 31 32 33 "propagation="REQUIRED"/> 34 "propagation="REQUIRED"> 35 "propagation="REQUIRED"> 36 "propagation="REQUIRED"> 37 38 "propagation="SUPPORTS"read-only="true"> 39 40 41 42 43 44 cn.test.ssm.service.impl././(..))"> 45 46

 四、配置整合springmvc和spring

1、首先配置springmvc的配置文件,其中包括处理器映射器、处理器适配器、视图解析器的配置和对controller层包自动扫描的配置1 2 16 17 18 19 20 21 22 23 24 25

 

2、下来在web.xml中配置springmvc的前端控制器,里面主要包括DispatcherServlet的配置以及springmvc配置文件的路径配置。1 2 6 7 8 SpringMvc 9 10 org.springframework.web.servlet.DispatcherServlet11 12 16 17 contextConfigLocation 18 classpath:spring/applicationContext-springmvc.xml 19 20 21 22 SpringMvc 23 /*.do 24 25

五、在controller层写handler程序

这里实现的功能也比较简单,由于只是为了测试整个整合流程的正确,所以依旧是按照查询列表进行编写,然后从service调用方法,返回模型视图、1 packagecn.test.ssm.controller;2 3 importcn.test.ssm.po.ProductExtend;4 importcn.test.ssm.service.ProductService;5 importorg.springframework.beans.factory.annotation.Autowired;6 importorg.springframework.stereotype.Controller;7 importorg.springframework.web.bind.annotation.RequestMapping;8 importorg.springframework.web.servlet.ModelAndView;9 10 importjava.util.List;11 12 @Controller13 public classProductController {14 15 @Autowired16 privateProductService productService;17 18 @RequestMapping("/queryList.do")19 public ModelAndView queryList() throwsException{20 21 //从service层调用方法 22 List productExtendList = productService.findProductListByName(null);23 24 //返回ModelandView 25 ModelAndView modelAndView = newModelAndView();26 modelAndView.addObject(productExtendList);27 modelAndView.setViewName("/WEB-INF/items/itemsList.jsp");28 29 returnmodelAndView;30 }31 }

六、配置Spring容器

到这里,我们还需要配置spring容器的监听和相应配置文件(applicationContext-dao.xml......)的加载。在配置文件中我们需要在IDEA中修改class文件的输出路径(本来默认是自动建立out文件,然后将class文件输出进去),参考这篇博客。至此,所有的配置都已经完成,下面就开始测试1 2 3 contextConfigLocation 4 /WEB-INF/classes/spring/applicationContext-/*.xml 5 6 7 org.springframework.web.context.ContextLoaderListener 8

七、使用简单的jsp视图进行测试

1、数据库中的Product表信息:

1 CREATE TABLE product (2 pid INT(11) NOT NULL AUTOINCREMENT,3 pname VARCHAR(255) DEFAULT NULL,4 `shopprice DOUBLE DEFAULT NULL,5 PRIMARY KEY (pid`)6 ) ENGINE=INNODB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8product表创建的sql

2、然后在浏览器中输入http://localhost:8080/TestSSM2/queryList.do测试得到下面的结果信息

 

版权声明
本文为[风沙迷了眼]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/fsmly/p/10393507.html

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;

支付宝红包,每日可领