基于springmvc+spring+mybatis搭建JAVA WEB后台开发环境
- 格式:doc
- 大小:406.47 KB
- 文档页数:16
JAVA WEB后台一般可分为控制层、服务层、持久层三层架构。
这里我们使用springmvc实现控制层,使用spring @service注解实现服务层,使用Apache DBCP项目的jdbc数据源,使用spring jdbc事务管理,使用mybatis实现持久层sql开发。
一、环境配置
1、pom.xml依赖配置
spring项目依赖:
DBCP项目依赖:
jackson项目依赖(实现json到javabean转换)
附件上传项目依赖(可选):
mybatis项目依赖:
2、web.xml配置
3、spring bean上下文配置文件springmvc-mybatis.xml配置:
其中,
mvc:annotation-driven声明用于支持MappingJackson2HttpMessageConverter ,实现controller方法参数及返回值支持json到javabean的自动转换。
context:component-scan,用于自动扫描并加载对应包下注解类的bean。
multipartResolver,用于声明及配置附件上传,如果没有附件上传,可以不配置该元素。
dataSource,数据源配置,这里使用的DBCP数据源。
txManager,事务管理配置。
tx:annotation-driven,声明支持注解方式的事务管理
sqlSessionFactory,配置mybatis的sqlSessionFactory mybatis:scan,配置mybatis自动扫描对应包下的mapper xml文件。
二、示例项目开发
1、建表SQL
create table user(
user_id int,
user_name varchar(50),
user_sex char(1),
address varchar(100)
);
2、java代码结构
分为controller、service、dao、data四个包。
controller为控制层,service为服务层,dao为持久层,data为javabean。
1)UserController类
package springtest.SpringMvcMybatisTest.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import er;
import springtest.SpringMvcMybatisTest.service.IUserService;
@Controller
@RequestMapping("/user.do")
public class UserController {
private IUserService userService;
public IUserService getUserService() {
return userService;
}
@Autowired
public void setUserService(IUserService userService) { erService = userService;
}
@RequestMapping(params = "method=insertUser")
@ResponseBody
public String insertUser(@RequestBody User user){
getUserService().insertUser(user);
return "1";
}
@RequestMapping(params = "method=updateAddress")
@ResponseBody
public String updateAddress(int userId,String address){
getUserService().updateAddress(userId, address);
return "1";
}
@RequestMapping(params = "method=deleteUser")
@ResponseBody
public String deleteUser(int userId){
getUserService().deleteUser(userId);
return "1";
}
@RequestMapping(params = "method=getUser") @ResponseBody
public User getUser(int userId){
return getUserService().getUser(userId);
}
@ResponseBody
@RequestMapping(params = "method=getAll")
public List getAll(){
return getUserService().getAll();
}
}
2)IUserService接口
package springtest.SpringMvcMybatisTest.service;
import java.util.List;
import er;
public interface IUserService {
public void insertUser(User user);
public void updateAddress(int userId,String address); public void deleteUser(int userId);
public User getUser(int userId);
public List getAll();
}
3)UserServiceImpl类
package springtest.SpringMvcMybatisTest.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import erMapper;
import er;
@Service("userService")
public class UserServiceImpl implements IUserService{
private UserMapper userMapper;
public UserMapper getUserMapper() {
return userMapper;
}
@Autowired
public void setUserMapper(UserMapper userMapper) {
erMapper = userMapper;
}
@Transactional
public void insertUser(User user) {
getUserMapper().insertUser(user);
}
@Transactional
public void updateAddress(int userId, String address) {
getUserMapper().updateAddress(userId, address);
}
@Transactional
public void deleteUser(int userId) {
getUserMapper().deleteUser(userId); }
public User getUser(int userId) {
return getUserMapper().getUser(userId);
}
public List getAll() {
return getUserMapper().getAll();
}
}
增加、修改、删除方法需要配置事务控制注解,查询不需要。
4)UserMapper接口
package springtest.SpringMvcMybatisTest.dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import er;
public interface UserMapper {