标签:
1、其实我也是菜鸟一枚,以前ssm不会,所以花了一段时间,学习了mybatis spring又进行了整合,后来又学习springmvc算是都看了看,今天就把整个搭建好的框架整理一下,和大家分享,如果错误希望指正……
2、整个项目的目录结构:
3、有了整体结构之后我们一步一步整合来实现,整合步骤:
(1)、配置前端控制器,web.xml配置
(2)、创建处理映射器 springmvc-server.xml 配置
(3)、创建控制层
(4)、业务逻辑层
(5)、dao层
(6)、sqlmapper 映射文件
(7)、spring+mybatis 整合配置文件即spring.xml 配置文件
4、具体实现
<web-appxmlns:xsi=http: 2001="" p="" www.w3.org="">
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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsdid=WebApp_ID version=3.0>
FinalTestO
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:config/springmvc-servlet.xml,
classpath:config/ApplicationContext.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
encodingFilter
*.do
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:config/springmvc-servlet.xml
1
springmvc
*.do
index.jsp
(2)、创建映射处理器
xmlns=http://www.springframework.org/schema/beans
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:aop=http://www.springframework.org/schema/aop
xmlns:context=http://www.springframework.org/schema/context
xmlns:mvc=http://www.springframework.org/schema/mvc
xmlns:util=http://www.springframework.org/schema/util
xmlns:tx=http://www.springframework.org/schema/tx
xmlns:jdbc=http://www.springframework.org/schema/jdbc
xmlns:cache=http://www.springframework.org/schema/cache
xsi:schemaLocation=
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/jdbchttp://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd>
<beanid=viewresolver class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<propertyname=suffix value=".jsp">
(3)、控制层,也就是映射处理器将请求映射到控制层的某个具体的方法上。
packagecom.inspur.action;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
importorg.springframework.web.bind.annotation.RequestMapping;
importcom.inspur.po.User;
importcom.inspur.service.UserService;
/**
*@author WHD
*2015-3-18
*/
/*
* 这里实现控制层的方式有多种,一般有extends abstractController 以及implements Controller这个接口
* 但是在平时的项目中使用的都是这个注解方式实现,
*所以这里也就使用了注解的方式,使用Controller 就说明这就是控制器
*/
@Controller
/**
* 这里的RequestMapping 可以在类上也可以不再类上,如果在类上则完整的请求路劲就是类+方法
*/
@RequestMapping(value=/user)
public classUserController {
/**
* 自动注入业务逻辑层,注入方式使用了注解自动注入
*/
@Autowired
private UserServiceuserService;
/**
* 添加用户信息
*/
/* 增加 */
@RequestMapping(value=/save.do)
public Stringinsert(Integer id ,String name,String sex,User user){
Map<string,object>map= new HashMap<string,object>();
map.put(id,user.getId());
map.put(name,user.getName());
map.put(sex,user.getSex());
userService.saveUser(map);
System.out.println(ok);
returnindex;
}
/**删除
*
*/
@RequestMapping(value=/delete.do)
public String delete(Integer id){
userService.delUser(id);
returnindex;
}
/**
* 修改用户信息
*/
@RequestMapping(value=/update.do)
public Stringupdate(User user){
Map<string,object>map= new HashMap<string,object>();
map.put(id,user.getId());
map.put(name,user.getName());
map.put(sex,user.getSex());
userService.updateUser(map);
returnindex;
}
/**
* 查询用户信息
*/
@RequestMapping(value=/select.do)
public Stringselect(Integer id,Map<string,object> map){
List<map<string,object>>list= new ArrayList<map<string,object>>();
list=userService.selectUser(id);
map.put(mylist,list);
returnlist;
}
}
(4)、业务逻辑层
packagecom.inspur.service;
importjava.util.List;
importjava.util.Map;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
importorg.springframework.transaction.annotation.Transactional;
importcom.inspur.dao.UserDao;
/**
*@author WHD
*2015-3-18
*/
/**
* 这个service注解说明就是一个业务逻辑层,里面的值可有可无
*/
@Service(userService)
/**
* transactional 这个注解就是使用注解的方式实现事务
*/
@Transactional
public classUserService {
/**
*自动注入dao层
*/
@Autowired
private UserDao userDao;
/**保存用户信息
* @param map
*/
publicvoid saveUser(Map<string, object=""> map) {
//TODO Auto-generated method stub
userDao.saveUser(map);
}
/**
*删除user
* @param id
*/
publicvoid delUser(Integer id) {
userDao.delUser(id);
}
/**
* 编辑用户信息
* @param map
*/
publicvoid updateUser(Map<string, object=""> map) {
userDao.updateUser(map);
}
/**
* 查询信息
* @param id
*/
publicList<map<string,object>> selectUser(Integer id) {
return userDao.selectUser(id);
}
}
(5)、dao层
packagecom.inspur.dao;
importjava.util.List;
importjava.util.Map;
importorg.mybatis.spring.SqlSessionTemplate;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Repository;
/**
*@author WHD
*2015-3-18
*/
/**
* repository 说明就是一个dao层的注解
*/
@Repository(userDao)
public class UserDao{
/**
*自动注入这里spring管理了mybatis的sqlsessionfactory
*/
@Autowired
privateSqlSessionTemplate sqlSession;
/**
* 保存用户信息
* @param map
*/
publicvoid saveUser(Map<string, object=""> map) {
sqlSession.insert(com.inspur.userMapper.insertUserMap,map);
}
/**
* 删除用户
* @param id
*/
publicvoid delUser(Integer id) {
sqlSession.delete(com.inspur.userMapper.delUser,id);
}
/**
* 修改用户信息
* @param map
*/
publicvoid updateUser(Map<string, object=""> map) {
sqlSession.update(com.inspur.userMapper.updateUser,map);
}
/**
* 查询用户信息
* @param id
* @return
*/
publicList<map<string, object="">> selectUser(Integer id) {
returnsqlSession.selectList(com.inspur.userMapper.selectUser, id) ;
}
}
(6)、sqlmapper 映射文件
http://mybatis.org/dtd/mybatis-3-mapper.dtd>
<mappernamespace=com.inspur.usermapper>
<insertid=insertusermap parametertype="java.util.Map">
insert into mytest(id,name,sex) values(#{id},#{name},#{sex})
<deleteid=deluser parametertype="int">
delete from mytest where id=#{id}
<updateid=updateuser parametertype="java.util.Map">
update mytest setname=#{name},sex=#{sex} where id=#{id}
(7)、spring+mybatis 配置文件
<beansxmlns=http: p="" schema="" www.springframework.org="">
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:tx=http://www.springframework.org/schema/tx
xmlns:context=http://www.springframework.org/schema/context
xsi:schemaLocation=http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-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/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd>
<context:property-placeholderlocation=classpath:datasource.properties>
<propertyname=driverclassname>
${jdbc.driverClassName}
${jdbc.url}
${jdbc.username}
${jdbc.password}
标签:
原文地址:http://www.cnblogs.com/bubu2/p/4784328.html