idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)

首先看一张目录结构图:

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第1张图片

创建步骤:

1.创建maven  webapp工程,

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第2张图片

创建完后的目录结构为:

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第3张图片

2.添加项目依赖(添加jar包)

需要的jar包:

spring-webmvc,

spring-test,

spring-orm,

commons-dbcp,

mybatis,

mybatis-spring,

mysql-connector-java,

commons-fileupload,

jstl,jackson-core,

jackson-databind,

jackson-mapper-asl,

cors-fiflter,(这个包为跨域访问的,不是必须的,前后端分离,为了方便测试,所以加上了。)

log4j,

slf4j-log4j12

添加这些依赖到pom.xml中,可以去这个网站搜索添加到maven:http://mvnrepository.com(PS:最后会发项目链接,大家也可以去我项目的pom.xml里面拷贝)

3、创建数据库:

下面是我的建表语句:

CREATE TABLE USERINFO(

`id` int NOT NULL AUTO_INCREMENT,

`username` varchar(50) NOT NULL,

`password` varchar(50) NOT NULL,

`nickname` varchar(50),

`user_picture` varchar(100),

`islogin` int,

`isactive` int,

`last_modeify` timestamp NULL,

`create_date` timestamp NULL,

`create_ip` varchar(50), 

            KEY(id),

            PRIMARY KEY(username)

);

4.配置mybatis的generator插件:

这个插件可以自动生成mybatis的mapper,model,dao

在pom.xml的 build节点下添加如下:

复制代码

 
 
     
         org.mybatis.generator
         mybatis-generator-maven-plugin
         1.3.2
         
             true
             true
         
     
 

复制代码

 

如图所示:

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第4张图片

然后在目录结构下的src/main/resources中创建generatorConfig.xml:

此文件配置的是需要自动生成的文件的位置等信息,不懂得自行百度。

文件内容如下:

复制代码





    
    
    
    
    
        
            
            
        

        
        
        

        
        
            
        

        
        
            
            
            
            
            
            
            
            
        


        
        
            
        

        
        
            
        

        
        

复制代码

在resources目录下继续创建config.properties;
此文件是generator.xml中用到的数据库配置。内容如下:

复制代码

#jdbc 连接对象
#mysql jar文件位置
jdbc.driverClassLocation = /Users/apple/.m2/repository/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/ssmtest
jdbc.username = root
jdbc.password = 689571

复制代码

 

接下来,点击idea右上角的

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第5张图片

选择Edit Configurations,进入后,点击左上角的➕,选择maven

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第6张图片

选择后,在Name出输入名字,任意都可以

在command line 中输入:

mybatis-generator:generate -e

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第7张图片

然后点击Apply,OK.

接着,到src/main目录下,新建一个java目录,然后在此目录上点击右键把此目录作Sources Root,做完后,你会发现java目录变成了蓝色,如图:

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第8张图片

然后,点击右上角的绿色小三角

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第9张图片

在看看你的java目录下,

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第10张图片

发现,自动生成了,mapping,model,dao的interface,致此,mybatis的文件生成完成。

5.整合spring,mybatis:

在resources目录下创建beans.xml:

复制代码



    
    

    
    

    
    
        
        
        
        
        
        
        
        
        
        
        

    

    
    
        
        
        
        
    

    
    
        
    

    
    
        
            
            
            
            

            
            
        
    

复制代码

 

在创建spring-mybatis.xml,mybatis的配置文件为空,此处创建是为了留作以后扩展:

复制代码




复制代码

至此,spring,mybatis整合完毕。

6.在java目录下创建controller包,service包,bean包

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第11张图片

7.整合springmvc:
在resources目录下创建dispatcher-servlet.xml:

复制代码


    
    
    
    
    
        
        
        
    


    
    
        
            
                application/json;charset=UTF-8
                text/html;charset=UTF-8
            
        
    

    
        
            
                
            
        
    

    
    
    
        
        
    

复制代码

然后修改/WEB-INF/web.xml:

复制代码



  Archetype Created Web Application
  
    contextConfigLocation
    classpath:beans.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  

  
    dispatcher-servlet
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:dispatcher-servlet.xml
    
    1
  
  
    dispatcher-servlet
    *.do
  

  
  
    SpringEncoding
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      utf-8
    
  
  
    SpringEncoding
    /*
  


  
  
    CORS
    com.thetransactioncompany.cors.CORSFilter
    true
    
      cors.allowOrigin
      *
    
    
      cors.supportedMethods
      GET, POST, HEAD, PUT, DELETE
    
    
      cors.supportedHeaders
      Accept, Origin, X-Requested-With, Content-Type, Last-Modified
    
    
      cors.exposedHeaders
      Set-Cookie
    
    
      cors.supportsCredentials
      true
    
  
  
    CORS
    /*
  

复制代码

至此,springmvc,spring整合完毕。

8.在dao包下创建impl包。然后在impl包下创建UserinfoMapperImpl继承SqlSessionDaoSupport实现UserinfoMapper

复制代码

package com.ch.dao.impl;

import com.ch.dao.UserinfoMapper;
import com.ch.model.Userinfo;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

/**
 * Created by apple on 2017/4/25.
 */
@Repository
public class UserinfoMapperImpl extends SqlSessionDaoSupport implements UserinfoMapper {
    @Autowired
    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
        super.setSqlSessionFactory(sqlSessionFactory);
    }
    public int deleteByPrimaryKey(String username) {
        return 0;
    }

    public int insert(Userinfo record) {
        return 0;
    }

    public int insertSelective(Userinfo record) {
        return 0;
    }

    public Userinfo selectByPrimaryKey(String username) {
        return this.getSqlSession().selectOne("com.ch.dao.UserinfoMapper.selectByPrimaryKey",username);
    }

    public int updateByPrimaryKeySelective(Userinfo record) {
        return 0;
    }

    public int updateByPrimaryKey(Userinfo record) {
        return 0;
    }
}

复制代码

 

千万别忘了在类上加上@Repository注解

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第12张图片

9.新建service:
在service包下新建UserinfoService,因为处理的业务简单,这里直接拷贝UserinfoMapper的内容:

复制代码

package com.ch.service;

import com.ch.model.Userinfo;

/**
 * Created by apple on 2017/4/25.
 */
public interface UserinfoService {
    int deleteByPrimaryKey(String username);

    int insert(Userinfo record);

    int insertSelective(Userinfo record);

    Userinfo selectByPrimaryKey(String username);

    int updateByPrimaryKeySelective(Userinfo record);

    int updateByPrimaryKey(Userinfo record);
}

复制代码

继续在service包下新建impl包,在impl包中新建UserinfoServiceImpl实现UserinfoSerice:

复制代码

package com.ch.service.impl;

import com.ch.dao.UserinfoMapper;
import com.ch.model.Userinfo;
import com.ch.service.UserinfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * Created by apple on 2017/4/25.
 */
@Service
public class UserinfoServiceImpl implements UserinfoService {
    @Autowired
    UserinfoMapper userinfoMapper;
    public int deleteByPrimaryKey(String username) {
        return 0;
    }

    public int insert(Userinfo record) {
        return 0;
    }

    public int insertSelective(Userinfo record) {
        return 0;
    }

    public Userinfo selectByPrimaryKey(String username) {
        return userinfoMapper.selectByPrimaryKey(username);
    }

    public int updateByPrimaryKeySelective(Userinfo record) {
        return 0;
    }

    public int updateByPrimaryKey(Userinfo record) {
        return 0;
    }
}

复制代码

 

千万别忘了在类上加上@Service注解


10.创建bean:
在bean包下新建类OBeanBase,此类为返回json数据的载体:

复制代码

package com.ch.bean;

/**
 * Created by apple on 2017/4/25.
 */
public class OBeanBase {
    private String code;
    private String message;
    private Object contents;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getContents() {
        return contents;
    }

    public void setContents(Object contents) {
        this.contents = contents;
    }

    public void setInfo(String code,String message){
        this.message = message;
        this.code = code;
    }

    public OBeanBase(){}
}

复制代码

 

继续在该包下创建类UserLoginIBean,此类为请求json数据自动转换的类

复制代码

package com.ch.bean;

/**
 * Created by apple on 2017/4/25.
 */
public class UserLoginIBean {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

复制代码

 

11.创建controller:

复制代码

package com.ch.controller;

import com.ch.bean.OBeanBase;
import com.ch.bean.UserLoginIBean;
import com.ch.model.Userinfo;
import com.ch.service.UserinfoService;
import org.apache.log4j.Logger;
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.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;


/**
 * Created by apple on 2017/4/25.
 */
@Controller
@RequestMapping(value = "/user")
public class UserinfoController {
    @Autowired
    UserinfoService userinfoService;

    @ResponseBody
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public OBeanBase doLogin(@RequestBody UserLoginIBean userLoginIBean) {
        Logger logger = Logger.getLogger("DAO");
        OBeanBase carrier = new OBeanBase();
        Userinfo userinfo = userinfoService.selectByPrimaryKey(userLoginIBean.getUsername());
        if (userinfo != null) {
            if (userinfo.getPassword().equals(userLoginIBean.getPassword())) {
                System.out.println(userinfo.getNickname());
                carrier.setInfo("S01", "登录成功");
                logger.debug("登录成功");
                carrier.setContents(userinfo);
            } else {
                carrier.setInfo("E01", "密码错误");
            }
        } else {
            carrier.setInfo("E03", "无此账号");
        }
        return carrier;
    }
}

复制代码

12.发布:
点击右上角的

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第13张图片

选择Edit,添加tomcat:

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第14张图片

填写Name,在ApplicationServer中选择自己的Tomcat,

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第15张图片

接着点击Deployment,点击下角的➕,选择Artifacts
选择下面的war exploded

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第16张图片

然后点击OK,APPLY,OK

12.在pom.xml中的build节点下加入:
       
       
           
               src/main/java
               
                   **/*.xml
               
               true
           
       

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第17张图片

然后点击启动Tomcat。

13,打开postman(谷歌的软件,要FQ去谷歌商店下载)测试API成功。发布。

idea+springmvc+spring+mybatis+maven整合返回json数据web api-(转)_第18张图片

再次附上地址:https://github.com/qq571831158/Springmvc-spring-mybatisDemo

你可能感兴趣的:(IEDA,java)