Spring MVC + MyBatis整合(IntelliJ IDEA环境下)
一些重要的知识:
mybais-spring.jar及其提供的API:
SqlSessionFactoryBean:
SqlSessionFactory是由SqlSessionFactoryBuilder产生的,
Spring整合MyBats时SqlSessionFactoryBean也是由SqlSessionFactoryBuilder生成的。
MapperFactoryBean:
在使用MapperFactoryBean时,有一个Mapper,就需要一个MapperFactoryBean。
为此,需要基于扫描机制的,MapperScannerConfigurer。具体配置方法略。
只需配置要扫描的包。
将扫描该包下所有的带有@MyBatisRepository的Mapper。
第一阶段,spring整合mybatis
项目目录:
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
xmlns:cache="http://www.springframework.org/schema/cache" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task" 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/cache http://www.springframework.org/schema/cache/spring-cache-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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
"
default-lazy-init="true"> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name = "driverClassName" value = "com.mysql.jdbc.Driver"/>
<property name = "url" value = "jdbc:mysql:///test"/>
<property name = "username" value = "root"/>
<property name = "password" value = "1234"/>
</bean> <bean id = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref = "myDataSource"/>
<property name = "mapperLocations" value = "classpath:com/rixiang/entity/*.xml"/>
</bean> <bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactory" ref = "sqlSessionFactory"/>
<property name="basePackage" value = "com.rixiang"/>
<property name = "annotationClass" value = "com.rixiang.annotation.MyBatisRepository"/>
</bean> </beans>
EmpDAO,记得添加@MybatisRepository注解:
package com.rixiang.dao; import java.util.List; import com.rixiang.annotation.MyBatisRepository;
import com.rixiang.entity.Emp; @MyBatisRepository
public interface EmpDAO {
public List<Emp> findAll();
}
MyBatisRepository:
package com.rixiang.annotation; import org.springframework.stereotype.Repository; /**
* Created by samdi on 2016/3/3.
*/
@Repository
public @interface MyBatisRepository {
String value() default "";
}
test:
package com.rixiang.test; import com.rixiang.dao.EmpDAO;
import com.rixiang.entity.Emp;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException;
import java.util.List; /**
* Created by samdi on 2016/3/3.
*/
public class TestEmpDAO {
@Test
public void testFindAll() throws IOException {
String conf = "applicationContext.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(conf);
EmpDAO mapper = ac.getBean("empDAO",EmpDAO.class);
List<Emp> list = mapper.findAll();
for(Emp emp:list){
System.out.println(emp.getEmpno() + " " + emp.getEname());
} }
}
第二阶段:SpringMVC+MyBatis:
controller:
package com.rixiang.web; import java.util.List; import com.rixiang.dao.EmpDAO;
import com.rixiang.entity.Emp; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping("emp")
public class EmpListController {
private EmpDAO dao;
@Autowired
public void setDao(EmpDAO dao){
this.dao = dao;
}
@RequestMapping("/list")
public String execute(Model model){
List<Emp> list = dao.findAll();
model.addAttribute("emps",list);
return "emp_list";
}
}
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
xmlns:cache="http://www.springframework.org/schema/cache" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task" 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/cache http://www.springframework.org/schema/cache/spring-cache-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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
"
default-lazy-init="true"> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name = "driverClassName" value = "com.mysql.jdbc.Driver"/>
<property name = "url" value = "jdbc:mysql:///test"/>
<property name = "username" value = "root"/>
<property name = "password" value = "1234"/>
</bean> <bean id = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref = "myDataSource"/>
<property name = "mapperLocations" value = "classpath:com/rixiang/entity/*.xml"/>
</bean> <bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactory" ref = "sqlSessionFactory"/>
<property name="basePackage" value = "com.rixiang"/>
<property name = "annotationClass" value = "com.rixiang.annotation.MyBatisRepository"/>
</bean> <context:component-scan base-package="com.rixiang"/> <!-- 支持@RequestMapping请求和Controller映射 -->
<mvc:annotation-driven/> <!-- 定义视图解析器viewResolver -->
<bean id = "viewResolver"
class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name = "prefix" value = "/WEB-INF/jsp/"/>
<property name = "suffix" value = ".jsp"/>
</bean> </beans>
jsp:
<%@ page language = "java" import = "java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>员工列表示例</title>
</head> <body>
<table border="1">
<tr>
<td>编号</td>
<td>姓名</td>
<td>工资</td>
<td>入职时间</td>
</tr>
<c:forEach items="${emps}" var="emp">
<tr>
<td>${emp.empno}</td>
<td>${emp.ename}</td>
<td>${emp.sal}</td>
<td>${emp.hiredate}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
运行:
Spring MVC + MyBatis整合(IntelliJ IDEA环境下)的更多相关文章
- spring, spring mvc, mybatis整合文件配置详解
转自:http://www.cnblogs.com/wxisme/p/4924561.html 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用 ...
- ssm整合说明与模板-Spring Spring MVC Mybatis整合开发
ssm整合说明 spring+spring mvc+mybatis 说明 源码下载 由于之前存在ssh框架,spring+struts+hibernate,其中spring负责aop与ioc,所以一般 ...
- Spring + Spring MVC + MyBatis 整合
1.所需要Jar包 ? <!-- Spring3.0.1包 --> org.springframework.web-3.0.1 系列 <!-- 公共包 --> sl ...
- Spring+MVC+Mybatis整合
本文是对慕课网上"搞定SSM开发"路径的系列课程的总结,详细的项目文档和课程总结放在github上了.点击查看 什么是秒杀业务 网站售卖某产品时,规定在某个日期开始售卖限量的产品, ...
- Spring+Spring MVC+MyBatis整合
一.准备工作 1.1导入所需jar包 1.2数据库 CREATE TABLE `t_customer` ( `id` ) NOT NULL AUTO_INCREMENT, `username` ...
- Spring4+Spring MVC+MyBatis整合思路
1.Spring框架的搭建 这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListener,并指定spring加载配置文件 ...
- Spring + Spring MVC + MyBatis框架整合
---恢复内容开始--- 一.Maven Web项目创建 如有需要,请参考:使用maven创建web项目 二.Spring + Spring MVC + MyBatis整合 1.Maven引入需要的J ...
- Spring MVC 学习总结(十)——Spring+Spring MVC+MyBatis框架集成(IntelliJ IDEA SSM集成)
与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...
- 基于Maven的Spring + Spring MVC + Mybatis的环境搭建
基于Maven的Spring + Spring MVC + Mybatis的环境搭建项目开发,先将环境先搭建起来.上次做了一个Spring + Spring MVC + Mybatis + Log4J ...
随机推荐
- cef3 获得 谷歌浏览器 网页源码 哈哈
Get HTML Source from Chromium Embedded http://stackoverflow.com/questions/13324095/get-html-source-f ...
- python json学习之路2-认识python种的json模块
1.从python原始类型向json类型的转化过程,具体的转化对照如下: 2.从json到python的类型转化对照如下: 3.json提供四个功能:dumps, dump, loads, load ...
- Unsupported major.minor version
by: java.lang.UnsupportedClassVersionError: com/dayang/product/pubinfo/dao/ProPubInfoDAO : Unsupport ...
- 获取 input 单选框和多选框的值
引用 jQuery的js <script> $(function(){ var arr = new Array(); $('#checkbox').click(function(){ a ...
- 用window.showModelDialog() 打开的页面的返回值
有两个页面也个 Default1.aspx 另外一个是 Default2.aspx Default1.aspx 有个按钮是用来打开Default2.aspx页面的 按钮的js代码是 var win ...
- SQL Server Profiler使用方法
一.SQL Server Profiler使用方法 1.单击开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler,如下图: 2. ...
- [转] linux虚拟带库操作笔记
原文来自:“王旺的书房” ---- http://blog.itpub.net/271063/viewspace-1059840/ 分类: Linux 查看设备[root@node1 ~]# lssc ...
- [MyBean-插件]MyBean通用报表免费无限制版本发布
[优点] 1.开发时无需安装报表组件(可以直接用编译好的文件,注意版权说明,请自行编译一次相应的报表插件文件). 2.无带包烦恼所有版本Delphi都可以使用,不拖累Delphi版本的 ...
- c#开发Mongo笔记第九篇
用skip略过少量的文档还是不错的.但是要是数量非常多的话,skip就会变得很慢,因为要先找到需要被略过的数据,然后再抛弃这些数据.大多数数据库都会在索引中保存更多的元数据,用于处理skip, 但是m ...
- SDAutoLayout:比masonry更简单易用的自动布局库
SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLa ...