Spring+ Spring mvc+MyBatis整合
- 目录结构
(1) 修改web.xml配置文件的内容
(2) 添加mybatis、spring mvc、spring database的xml文件,放置在资源文件夹根目录,也可以在这里创建分别的目录
(3) 把mybatis的mapper.xml文件放置到资源文件夹中,不再与pojo同包
(4) 创建controller、pojo、service包,分别创建controller类、pojo对象和接口、service类
- 引入maven包
org.springframework spring-core4.3.8.RELEASE org.springframework spring-context4.3.8.RELEASE org.springframework spring-beans4.3.8.RELEASE org.springframework spring-test4.3.8.RELEASE org.springframework spring-web4.3.8.RELEASE org.springframework spring-webmvc4.3.8.RELEASE org.springframework spring-aop4.3.8.RELEASE org.springframework spring-expression4.3.8.RELEASE org.springframework spring-tx4.3.8.RELEASE org.springframework spring-jdbc4.3.8.RELEASE com.alibaba druid1.1.9 org.mybatis mybatis-spring1.3.2 org.mybatis mybatis3.4.6 mysql mysql-connector-java5.1.6 javax.servlet javax.servlet-api4.0.1 provided com.fasterxml.jackson.core jackson-core2.9.5 com.fasterxml.jackson.core jackson-databind2.9.5 com.fasterxml.jackson.core jackson-annotations2.9.5 org.json json20180130
- 修改web.xml文件
contextConfigLocation classpath:spring-database.xml org.springframework.web.context.ContextLoaderListener dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring-mvc.xml 1 dispatcherServlet / CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 CharacterEncodingFilter @Transactional(rollbackFor = Exception.class) public void insertUser(List userList) throws Exception { for (User user : userList) { userMapper.insertUser(user); } } }
- 创建controller
@Controller
public class UserController {
public UserController() {
System.out.println("--------------------------UserAction构造函数");
}
@Autowired
private UserService userService;
@RequestMapping(value = "/selectUser", method = RequestMethod.GET)
public String selectUser(ModelMap modelMap) {
System.out.println("UserAction -------------------------- selectUser");
List list = new ArrayList<>();
User user = new User();
user.setUsername("kkk");
user.setPassword("3330");
list.add(user);
user = new User();
user.setUsername("jjj");
user.setPassword("4440");
list.add(user);
user = new User();
user.setUsername("aaa");
user.setPassword("5550");
list.add(user);
try {
userService.insertUser(list);
} catch (Exception e) {
System.out.println("---------------------------------------------------sql出错");
e.printStackTrace();
}
// userService.updateUser(user);
modelMap.addAttribute("list_user", "en~~~");
return "success";
}
}
现在可以通过controller的访问路径在浏览器输入进行测试了。基于前面学习的事务问题,可以批量处理增、删、改来演示事务的自动管理,单条记录是没有事务可言的,因为sql出错,不能写入,但是批量处理的时候,如果前面的插入了,后面出错,就应该全部回滚。
- Spring IOC和MVC的启动顺序
对注入管理会出现问题



