SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分页)

前言

说起整合自然离不开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查。

开发环境

idea2016、SpringMVC4、Mybatis3

项目结构

SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分页)_第1张图片

SSM整合

1、pom.xml


 4.0.0
 com.autohome
 SpringMVC3
 war
 1.0-SNAPSHOT
 SpringMVC3
 http://maven.apache.org
 
 
  junit
  junit
  4.10
 
 
  org.springframework
  spring-core
  4.3.6.RELEASE
 
 
  org.springframework
  spring-beans
  4.3.6.RELEASE
 
 
  org.springframework
  spring-context
  4.3.6.RELEASE
 
 
  org.springframework
  spring-web
  4.3.6.RELEASE
 
 
  org.springframework
  spring-context-support
  4.3.6.RELEASE
 
 
  org.springframework
  spring-webmvc
  4.3.6.RELEASE
 
 
  org.springframework
  spring-jdbc
  4.3.6.RELEASE
 
 
  org.apache.velocity
  velocity
  1.6.2
 
 
  org.apache.velocity
  velocity-tools
  2.0
 
 
  org.mybatis
  mybatis
  3.4.2
 
 
  org.mybatis
  mybatis-spring
  1.3.0
 
 
  com.microsoft.sqlserver
  sqljdbc4
  4.0
 
 
  commons-dbcp
  commons-dbcp
  1.4
 
 
 
 SpringMVC3
 

2、web.xml




 Archetype Created Web Application
 
 
 contextConfigLocation
 classpath:applicationContext.xml
 
 
 org.springframework.web.context.ContextLoaderListener
 
 
 
 SpringMVC
 org.springframework.web.servlet.DispatcherServlet
 
  contextConfigLocation
  classpath:springmvc-servlet.xml
 
 
 
 SpringMVC
 /
 

3、applicationContext.xml无配置内容所以忽略

4、springmvc-servlet.xml




 
 
  
  
 

 
 
  
  
  
  
 

 
 
  

 

 
 
  
  
 

 
 

 
 
 
 

 
 
  
  
 

5、springmvc-mybatis.xml





 
 
  
 


 
  
 

6、dao接口层、mapper(dao接口实现层)、Biz层、 model层忽略不计(id,name,address3个测试字段)。 mapper文件让我踩了坑,后恍然大悟,mapper.xml要放在resources包下。

public interface UserMapper {

 List listAllUser();

 List listPagedUser(@Param("pageIndex") int pageIndex,@Param("pageSize") int pageSize);

 int count();

 int updateUser(User user);

 int deleteUser(int id);

 int insertUser(User user);

 User getUserById(int id);

 

} 




 

 

 

 
  insert into t_userinfo VALUES (#{name},#{address})
 

 
  UPDATE t_userinfo set name=#{name},address=#{address} where id=#{id}
 

 
  DELETE FROM t_userinfo where id=#{id}
 

 

public interface IUserBiz {

 List listAllUser();

 List listPagedUser(@Param("pageIndex") int pageIndex, @Param("pageSize") int pageSize);

 int count();

 int updateUser(User user);

 int deleteUser(int id);

 int insertUser(User user);

 User getUserById(int id);

}
package com.autohome.service;

 

import com.autohome.model.User;

import com.autohome.mapper.UserMapper;

import org.apache.ibatis.annotations.Param;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

 

import java.util.List;

import java.util.Map;

 

 

@Service

public class UserBizImpl implements IUserBiz {

 

 @Autowired

 private UserMapper userMapper;

 

 public List listAllUser() {

  return userMapper.listAllUser();

 }

 

 public List listPagedUser(@Param("pageIndex") int pageIndex,@Param("pageSize") int pageSize) {

  return userMapper.listPagedUser(pageIndex,pageSize);

 }

 

 public int count() {

  return userMapper.count();

 }

 

 public int updateUser(User user) {

  return userMapper.updateUser(user);

 }

 

 public int deleteUser(int id) {

  return userMapper.deleteUser(id);

 }

 

 public int insertUser(User user) {

  return userMapper.insertUser(user);

 }

 

 public User getUserById(int id) {

  return userMapper.getUserById(id);

 }

}

7、Controller。 我新建了一个UserController,在这里调用了增删改查分页的操作

package com.autohome.controller;

 

import com.autohome.service.IUserBiz;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

 

import com.autohome.model.User;

 

 

@Controller

@RequestMapping("/User")

public class UserController {

 

 @Autowired

 private IUserBiz userBiz;

 

 @RequestMapping("/index")

 public ModelAndView index(){

  //System.out.println("size:"+userBiz.listAllUser().size());

 

  System.out.println("size:"+userBiz.count());

//

//  User user =new User();

//  user.setName("张三");

//  user.setAddress("shanxi");

//

//  int result = userBiz.insertUser(user);

//  if(result>0)

//  {

//   System.out.println("insert success");

//  }else{

//   System.out.println("insert err");

//  }

 

  int result = userBiz.deleteUser(39);

  if(result>0)

  {

   System.out.println("delete success");

  }else{

   System.out.println("delete err");

  }

 

//  User user =new User();

//  user.setId(35);

//  user.setName("张三11111");

//  user.setAddress("china");

//

//  int result = userBiz.updateUser(user);

//  if(result>0)

//  {

//   System.out.println("update success");

//  }else{

//   System.out.println("update err");

//  }

 

 

  //System.out.println("size:"+userBiz.listPagedUser(1,10).size());

 

 

 

  ModelAndView mav=new ModelAndView("index");

 

  return mav;

 }

}

总结

做这个demo前我看的ssm整合教程全部是基于myeclipse开发的,而且教程把dao接口和dao实现是全部放在src java目录下的,也就是mapper目录包括了mapper接口和mapper.xml。 我做第一个demo时在idea里也是这么做的,demo运行始终不成功,一直提示找不 到mapper.xml里的方法,后来编译的时候我发现target/classes里确实找不到mapper.xml。 不知道用myeclipse整合开发时是否遇到这个问题,后我把mapper.xml文件放到resources目录中,编译后target文件总就能找到mapper.xml。 方法运行也搞定了。写demo写了半个小时,debug这个问题花了2个小时,好在demo跑起来了,也算是有收获的。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

你可能感兴趣的:(SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分页))