springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)

栏目: Java · 发布时间: 8年前

内容简介:springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)

一、 整合 mybatis

为了更好的学习 springmvc mybatis 整合开发的方法,需要将 springmvc mybatis 进行整合。

整合目标:控制层采用 springmvc 、持久层使用 mybatis 实现。

1.1  需求

实现商品查询列表,从 MySQL 数据库 查询商品信息。

1.2  jar

包括: spring (包括 springmvc )、 mybatis mybatis-spring 整合包、数据库驱动、第三方连接池。

参考:mybatis springmvc 整合全部 jar 包”目录

1.3  Dao

目标:

1 spring 管理 SqlSessionFactory mapper

详细参考 mybatis 教程与 spring 整合章节。

1.3.1  sqlMapConfig.xml

classpath 下创建 mybatis/sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>  
  
<!DOCTYPE configuration  
  
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  
"http://mybatis.org/dtd/mybatis-3-config.dtd">  
  
<configuration>  
  
   
  
<!—使用自动扫描器时,mapper.xml文件如果和mapper.java接口在一个目录则此处不用定义mappers -->  
  
<mappers>  
  
<package name="com.sihai.ssm.mapper" />  
  
</mappers>  
  
</configuration>  

1.3.2  applicationContext-dao.xml

配置数据源、事务管理,配置 SqlSessionFactory mapper 扫描器。

<beans xmlns="http://www.springframework.org/schema/beans"  
  
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 ">  
  
<!-- 加载配置文件 -->  
  
<context:property-placeholder location="classpath:db.properties"/>  
  
<!-- 数据库连接池 -->  
  
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  
       <property name="driverClassName" value="${jdbc.driver}"/>  
  
<property name="url" value="${jdbc.url}"/>  
  
<property name="username" value="${jdbc.username}"/>  
  
<property name="password" value="${jdbc.password}"/>  
  
<property name="maxActive" value="30"/>  
  
<property name="maxIdle" value="5"/>  
  
</bean>  
  
   
  
   
  
<!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->  
  
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  
<!-- 数据库连接池 -->  
  
<property name="dataSource" ref="dataSource" />  
  
<!-- 加载mybatis的全局配置文件 -->  
  
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />  
  
</bean>  
  
<!-- mapper扫描器 -->  
  
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  
 <property name="basePackage" value="com.sihai.springmvc.mapper"></property>  
  
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>  
  
</bean>  
  
   
  
</beans>  

1.3.3  ItemsMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>  
  
<!DOCTYPE mapper  
  
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  
<mapper namespace="com.sihai.ssm.mapper.ItemsMapper">  
  
<!-- sql片段 -->  
  
<!-- 商品查询条件 -->  
  
<sql id="query_items_where">  
  
<if test="items!=null">  
  
<if test="items.name!=null and items.name!=''">  
  
and items.name like '%${items.name}%'  
  
</if>  
  
</if>  
  
</sql>  
  
      
  
<!-- 查询商品信息 -->  
  
<select id="findItemsList" parameterType="queryVo" resultType="items">  
  
select * from items  
  
<where>  
  
<include refid="query_items_where"/>  
  
</where>  
  
</select>  
  
   
  
</mapper>  

1.3.4  ItemsMapper.java

public interface ItemsMapper {  
  
//商品列表  
  
public List<Items> findItemsList(QueryVo queryVo) throws Exception;  
  
}  

1.4 Service

目标:

1 Service spring 管理

2 spring Service 进行事务控制。

1.4.1  applicationContext-service.xml

配置 service 接口。

1.4.2  applicationContext-transaction.xml

配置事务管理器。

<beans xmlns="http://www.springframework.org/schema/beans"  
  
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 ">  
  
   
  
<!-- 事务管理器 -->  
  
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  
<!-- 数据源 -->  
  
<property name="dataSource" ref="dataSource"/>  
  
</bean>  
  
   
  
   
  
<!-- 通知 -->  
  
<tx:advice id="txAdvice" transaction-manager="transactionManager">  
  
  <tx:attributes>  
  
     <!-- 传播行为 -->  
  
    <tx:method name="save*" propagation="REQUIRED"/>  
  
    <tx:method name="insert*" propagation="REQUIRED"/>  
  
    <tx:method name="delete*" propagation="REQUIRED"/>  
  
    <tx:method name="update*" propagation="REQUIRED"/>  
  
    <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>  
  
    <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>  
  
  </tx:attributes>  
  
</tx:advice>  
  
   
  
<!-- 切面 -->  
  
<aop:config>  
  
  <aop:advisor advice-ref="txAdvice"  
  
  pointcut="execution(* com.sihai.springmvc.service.impl.*.*(..))"/>  
  
</aop:config>  
  
   
  
</beans>  

1.4.3  OrderService

public interface OrderService {  
  
//商品查询列表  
  
public List<Items> findItemsList(QueryVo queryVo)throws Exception;  
  
}  
  
   
  
@Autowired  
  
private ItemsMapper itemsMapper;  
  
   
  
@Override  
  
public List<Items> findItemsList(QueryVo queryVo) throws Exception {  
  
//查询商品信息  
  
return itemsMapper.findItemsList(queryVo);  
  
}  
  
   
  
}  

1.5  Action

1.5.1  springmvc.xml

<beans xmlns="http://www.springframework.org/schema/beans"  
  
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 ">  
  
<!-- 扫描controller注解,多个包中间使用半角逗号分隔 -->  
  
<context:component-scan base-package="com.sihai.ssm.controller"/>  
  
<!--注解映射器 -->  
  
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>  
  
<!--注解适配器 -->  
  
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>  
  
<!-- ViewResolver -->  
  
<bean  
  
class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  
<property name="viewClass"  
  
value="org.springframework.web.servlet.view.JstlView" />  
  
<property name="prefix" value="/WEB-INF/jsp/" />  
  
<property name="suffix" value=".jsp" />  
  
</bean>  
  
   
  
</beans>  

1.5.2  web.xml

加载 spring 容器,配置 springmvc 前置控制器。

<?xml version="1.0" encoding="UTF-8"?>  
  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  
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">  
  
<display-name>springmvc</display-name>  
  
   
  
<!-- 加载spring容器 -->  
  
<context-param>  
  
<param-name>contextConfigLocation</param-name>  
  
<param-value>/WEB-INF/classes/spring/applicationContext.xml,/WEB-INF/classes/spring/applicationContext-*.xml</param-value>  
  
</context-param>  
  
<listener>  
  
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  
</listener>  
  
   
  
<!-- 解决post乱码 -->  
  
<filter>  
  
<filter-name>CharacterEncodingFilter</filter-name>  
  
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  
<init-param>  
  
<param-name>encoding</param-name>  
  
<param-value>utf-8</param-value>  
  
</init-param>  
  
</filter>  
  
<filter-mapping>  
  
<filter-name>CharacterEncodingFilter</filter-name>  
  
<url-pattern>/*</url-pattern>  
  
</filter-mapping>  
  
   
  
   
  
<!-- springmvc的前端控制器 -->  
  
<servlet>  
  
<servlet-name>springmvc</servlet-name>  
  
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  
<!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->  
  
<init-param>  
  
<param-name>contextConfigLocation</param-name>  
  
<param-value>classpath:spring/springmvc.xml</param-value>  
  
</init-param>  
  
<load-on-startup>1</load-on-startup>  
  
</servlet>  
  
<servlet-mapping>  
  
<servlet-name>springmvc</servlet-name>  
  
<url-pattern>*.action</url-pattern>  
  
</servlet-mapping>  
  
   
  
<welcome-file-list>  
  
<welcome-file>index.html</welcome-file>  
  
<welcome-file>index.htm</welcome-file>  
  
<welcome-file>index.jsp</welcome-file>  
  
<welcome-file>default.html</welcome-file>  
  
<welcome-file>default.htm</welcome-file>  
  
<welcome-file>default.jsp</welcome-file>  
  
</welcome-file-list>  
  
</web-app>  
  
   

1.5.3  OrderController

@Controller  
  
public class OrderController {  
  
@Autowired  
  
private OrderService orderService;  
  
   
  
@RequestMapping("/queryItem.action")  
  
public ModelAndView queryItem() throws Exception {  
  
// 商品列表  
  
List<Items> itemsList = orderService.findItemsList(null);  
  
   
  
// 创建modelAndView准备填充数据、设置视图  
  
ModelAndView modelAndView = new ModelAndView();  
  
   
  
// 填充数据  
  
modelAndView.addObject("itemsList", itemsList);  
  
// 视图  
  
modelAndView.setViewName("order/itemsList");  
  
   
  
return modelAndView;  
  
}  
  
   
  
}  
  
   
  
   

1.6  测试

http://localhost:8080/springmvc_mybatis/ queryItem.action

动动小手关注我的微信公众号吧 好好学java

springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)


以上所述就是小编给大家介绍的《springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

PHP and MySQL Web Development

PHP and MySQL Web Development

Luke Welling、Laura Thomson / Sams / July 25, 2007 / $49.99

Book Description PHP and MySQL Web Development teaches you to develop dynamic, secure, commerical Web sites. Using the same accessible, popular teaching style of the three previous editions, this b......一起来看看 《PHP and MySQL Web Development》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具