使用SpringMVC和MyBatis框架如何搭建一个开发环境

本篇文章给大家分享的是有关使用SpringMVC和MyBatis框架如何搭建一个开发环境,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、湘潭县ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的湘潭县网站制作公司

1、下载SpringMVC框架架包,

点击打开地址如图所示,点击下载即可
使用SpringMVC和MyBatis框架如何搭建一个开发环境 

然后把相关的jar复制到lib下导入

2、MyBatis(3.4.2)下载

点击下载

MyBatis中文文档地址

点击查看

下载解压之后把jar复制到lib下导入,大概是这样子的

使用SpringMVC和MyBatis框架如何搭建一个开发环境 

3、jdbc连接库还没有下载。。。这个是5.1.41版本的。。。

点击下载

使用SpringMVC和MyBatis框架如何搭建一个开发环境 

解压之后这样子。。。

4、fastjson 阿里巴巴的json解析库

点击下载

版本是1.2.24 这个是托管到了github上面的,地址是:点击进入

5、创建WebProject

使用SpringMVC和MyBatis框架如何搭建一个开发环境 

注意下一步有个选项,如果不勾选,默认是不会生成web.xml的

使用SpringMVC和MyBatis框架如何搭建一个开发环境 

6、项目创建完毕,把之前的包都弄进来。。

web.xml

<?xml version="1.0" encoding="UTF-8"?>

 CoolWeb
 
  index.html
  index.htm
  index.jsp
  default.html
  default.htm
  default.jsp
 


 
   CoolWeb
   org.springframework.web.servlet.DispatcherServlet
   
      contextConfigLocation
      
      classpath:CoolWeb-servlet.xml 
   
   1
 

  
 
    CoolWeb
    /
 

7、在src下创建CoolWeb-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>



  
  
  


8、在src下编写ApplicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>



  
  

  
  

    
  
    
    
      
   

User实体类要在这里注册

9、在src下编写mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>


  
    
      
      
      
        
        
        
        
        
      
    
  
  
    
  

10、log4j.xml配置

<?xml version="1.0" encoding="UTF-8"?>

  
    
      
      
    
    
      
      
    
  
  
    
      
      
    
  

   
   
     
   

   
     
   

   
     
   

   
     
   

   
     
   

   
     
     
 
 
   

这个配置貌似有点问题,虽然不影响使用,不过我也没有去深入研究还,最近还要准备面试Android哎。。。

现在差不多是这样子咯

使用SpringMVC和MyBatis框架如何搭建一个开发环境 

11、环境搭建差不多了,现在开始撸代码,写一个注册的动能吧

简历一个实体类User.Java

package com.vincent.lwx.bean;

import java.io.Serializable;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;

/**  
* @Title: User.java 
* @Package com.vincent.lwx.bean 
* @Description: TODO(用一句话描述该文件做什么) 
* @author Vincent  
* @date 2017年3月3日 下午6:36:58 
* @version V1.0  
*/
public class User implements Serializable{

  /**
   * 序列化id
   */
  private static final long serialVersionUID = -6375697395831845246L;

  /**
   * 用户id
   */
  private @Getter String user_id;

  /**
   * 用户手机号码
   */
  private @Setter@Getter String phone;

  /**
   * 密码
   */
  private @Setter@Getter String password;

  /**
   * 用户名
   */
  private @Setter@Getter String nickname;

  /**
   * 用户头像地址
   */
  private @Setter@Getter String head;

  /**
   * 性别
   */
  private @Setter@Getter String sex;

  /**
   * 生日
   */
  private @Setter@Getter String birthday;

  /**
   * 生活状态(发表的说说)
   */
  private @Setter@Getter String live_status;


}

编写MyBatis的实体类映射xml文件,就写个UserMapping.xml好了,表示为用户相关的操作

<?xml version="1.0" encoding="UTF-8"?>




  
  

我这里只写了一个,别的还没写,注册之前先查询一下手机号码是否已注册。。

注意这里的id 不能重复,要具有唯一性。parameterType是传入的参数类型,这里是String类型的phone,如果要传入多个参数可以使用User对象,或者Map,resultType返回结果类型,我这里是直接返回一个User对象,之前用jdbc直接连接数据库,返回的东西还要手动封装,这个快多了。。。

创建MyBatisUtils.java类,用来从数据库获取SqlSession对象的,SqlSession执行sql语句,和jdbc的Statement对象差不多感觉。。。也可能我的感觉是错的,哈哈,还没看源码。。。

package com.vincent.lwx.db;

import java.io.IOException;
import java.io.Reader;
import java.util.Timer;
import java.util.TimerTask;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.vincent.lwx.util.EatTimerTask;


/**
 * @Title: MyBatisUtils.java
 * @Package com.vincent.julie.config
 * @Description: TODO(��һ�仰�������ļ���ʲô)
 * @author Vincent
 * @date 2017��2��18�� ����12:05:35
 * @version V1.0
 */

public class MyBatisUtils {
  private static SqlSessionFactory sqlSessionFactory;
  private static SqlSession sqlSession;
  private static long timeInterval;//上一次运行的时间
  private static TimerTask task =null;

  static {
    String resource = "mybatis.xml";
    Reader reader = null;
    try {
      reader = Resources.getResourceAsReader(resource);
    } catch (IOException e) {
      System.out.println(e.getMessage());

    }
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  }
  /**
   * 
   * @return
   */
  public static SqlSessionFactory getSqlSessionFactory() {
    return sqlSessionFactory;
  }

  /**
   * ��ȡsqlSession����
   * @return
   */
  public static SqlSession getSqlSession(){
    if (task != null){
       task.cancel(); //将原任务从队列中移除
     }
    task = new EatTimerTask();
    timeInterval = System.currentTimeMillis();
     //间隔�?1小时
     long period = 1000 * 60 * 60;  
     //测试时间每分钟一�?
     //period = 1000 * 60;    
     Timer timer = new Timer(); 
     timer.schedule(task, timeInterval, period);

    if(sqlSessionFactory == null){
      sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();
    }
    sqlSession = sqlSessionFactory.openSession();
    return sqlSession;
  }


}

这里有个计时器,我发现Tomcat运行一段时间之后(听说是10小时)如果没有连接数据库,会出现异常。。
好,现在来写UserController.java类,处理客户端的请求

package com.vincent.lwx.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.vincent.lwx.bean.ServiceStatus;
import com.vincent.lwx.bean.User;
import com.vincent.lwx.db.MyBatisUtils;
import com.vincent.lwx.util.ResponseUtils;

/**  
* @Title: UserControl.java 
* @Package com.vincent.lwx.mapping 
* @Description: TODO(��һ�仰�������ļ���ʲô) 
* @author Vincent  
* @date 2017��3��3�� ����6:28:37 
* @version V1.0  
*/
@Controller
public class UserController {

  private static final Logger logger = LogManager.getLogger(UserController.class);

  /**
   * 注册
   * @param phone
   * @param password
   * @param request
   * @param response
   */
  @RequestMapping(value = "register", method = RequestMethod.POST)
  public void registerUser(@RequestParam("phone")String phone,@RequestParam("password")String password,HttpServletRequest request,HttpServletResponse response){
    if(hasUserPhone(phone)){
      //用户已存在,无须再次注册
      ResponseUtils.renderJsonDataFail(response, ServiceStatus.RUNTIME_EXCEPTION, "该号码已被注册");
      return;
    }
  }


  /**
   * 根据手机号码查询用户是否存在
   * @param phone
   * @return
   */
  public boolean hasUserPhone(String phone){
    /**sql 语句 完整的包名类名和方法id,*/
    String sql = "com.vincent.lwx.mapping.UserMapping.selectUser";
    SqlSession session = MyBatisUtils.getSqlSession();
    /**返回一个User对象*/
    User user = session.selectOne(sql, phone);
    if(user!=null){
      //用户已存在
      return true;
    }else{
      //用户不存在
      return false;
    }
  }
}

10、最后一步,让Tomcat跑起来,好吧,下载Tomcat、点击下载

这个版本是Tomcat9.0的

如果不会部署的话可以看这里的 部署Tomcat

使用SpringMVC和MyBatis框架如何搭建一个开发环境 

11、东西写完了不叫最后一步,最后一步应该自己测试一下,google浏览器自带Postman检查一下接口的正确性

使用SpringMVC和MyBatis框架如何搭建一个开发环境 

因为我的数据库我已经自己注册了,所以提示是正确的,另外附上user表的sql语句:

CREATE DETABASE cool;
//创建数据库并指定字符编码集
CREATE DATABASE cool DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

//创建表
create table user(
user_id int(10) not null primary key auto_increment,
phone varchar(11) not null,
password varchar(16) not null,
nickname varchar(36),
head varchar(50),
sex varchar(3),
birthday varchar(10) default '1992-01-01',
live_status varchar(255)
)engine = InnoDB default charset=utf8;

//限制最小id=10000
 alter table user AUTO_INCREMENT=10000;设置已经存在的表的默认值
//限制手机号码唯一性
alter table user add unique(phone); 字段值唯一性约束

insert into user(phone,password) values(
'18696855784',
'555555');

以上就是使用SpringMVC和MyBatis框架如何搭建一个开发环境,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


标题名称:使用SpringMVC和MyBatis框架如何搭建一个开发环境
URL网址:http://pwwzsj.com/article/jcidcd.html