IDEA Maven项目通过http请求获取数据库信息


1、创建Maven项目

 2、创建包

 3、登录数据库

 

 4、生成entity、Mapper、mapper、mappers

 

 添加Lombok依赖

    
        
            org.projectlombok
            lombok
            1.16.10
        
    

5、配置sql连接

 1.创建jdbc.properties配置文件

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/pig_farm?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false&zeroDateTimeBehavior=convertToNull
user=root
pwd=123

2.创建mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

    "jdbc.properties" />
    default="development">
        "development">
            "JDBC"/>
            "POOLED">
                "driver" value="${driver}"/>
                "url" value="${url}"/>
                "username" value="${user}"/>
                "password" value="${pwd}"/>
            
        
    

    
        "mappers/TabBoarMapper.xml" />

    

添加mybatis依赖


         org.mybatis
         mybatis
         3.5.1

3.创建连接数据库工具类SqlSessionUtil

package util;

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 java.io.IOException;
import java.io.InputStream;

/**
 * @description SqlSessionFactory 工厂构建,获取SqlSession对象
 * @auther: CDHONG.IT
 * @date: 2019/10/18-9:46
 **/
public class SqlSessionUtil {

    private static SqlSessionFactory sqlSessionFactory;

    static{
        try {
            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }


    public static void main(String[] args) {
        System.out.println(SqlSessionUtil.getSqlSession());
    }


}

添加mysql

        
            mysql
            mysql-connector-java
            8.0.18
        

6、创建测试类测试

package test;
import entity.TabBoar;
import mapper.TabBoarMapper;
import org.apache.ibatis.session.SqlSession;
import util.SqlSessionUtil;

/**
 * @Auther: Administrator
 * @Date: 2020/6/29 15:23
 * @Description:
 */
public class Test {
    TabBoar tabBoar = new TabBoar();
    static TabBoar find(int a) {
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        TabBoarMapper tabBoarMapper=sqlSession.getMapper(TabBoarMapper.class);
        return tabBoarMapper.selectByPrimaryKey(a);
    }
    public static void main(String[] args) {
        System.out.println(find(1));
    }
}

 打印结果:

7、创建GsonUtil工具类

package entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @description
 * @auther: Lily
 * @date: 2019/10/17-10:57
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ResponseEntity {
    private int code;
    private String msg;
    private Long count;
    private Object data;

    public static ResponseEntity isAdim(Object obj){
        return new   ResponseEntity(2,null,null,obj);
    }
    public static ResponseEntity ok(){
        return new ResponseEntity(0,null,null,null);
    }
    public static ResponseEntity ok(String msg){
        return new ResponseEntity(0,msg,null,null);
    }
    public static ResponseEntity error(String msg){
        return new ResponseEntity(1,msg,null,null);
    }

    public static ResponseEntity data(Object obj){
        return new ResponseEntity(0,null,null,obj);
    }

    public static ResponseEntity page(long count,Object obj){
        return new ResponseEntity(0,null,count,obj);
    }

    public static boolean isSuccess(ResponseEntity responseEntity){
        return responseEntity.getCode() == 2;
    }
    public static boolean isSucce(ResponseEntity responseEntity){
        return responseEntity.getCode() == 0;
    }

}
package util;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializer;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @description
 * @auther: CDHONG.IT
 * @date: 2019/10/18-14:31
 **/
public class GsonUtil {
    private static Gson gson = new GsonBuilder()
            .registerTypeAdapter(LocalDate.class, (JsonSerializer) (localDate, type, jsonSerializationContext) -> new JsonPrimitive(localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))))
            .registerTypeAdapter(LocalDateTime.class, (JsonSerializer) (localDateTime, type, jsonSerializationContext) ->  new JsonPrimitive(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))
            .create();

    public static String toJson(Object object){
        return gson.toJson(object);
    }

    public static  T fromJson(String json,Class clazz){
        return gson.fromJson(json,clazz);
    }


}

添加json


      com.google.code.gson
      gson
      2.8.5

8、创建service

package service;

import entity.ResponseEntity;
import entity.TabBoar;
import mapper.TabBoarMapper;
import org.apache.ibatis.session.SqlSession;
import util.SqlSessionUtil;

/**
* @Auther: Administrator
* @Date: 2020/6/29 22:54
* @Description:
*/
public class TabBoarService {
private SqlSession sqlSession = SqlSessionUtil.getSqlSession();
private TabBoarMapper tabBoarMapper = sqlSession.getMapper(TabBoarMapper.class);

public ResponseEntity findById(int id) {
TabBoar tabBoar = tabBoarMapper.selectByPrimaryKey(id);
return ResponseEntity.data(tabBoar);
}
}

9、创建BaseServlet

package servlet;

import entity.ResponseEntity;
import util.GsonUtil;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Objects;

/**
 * @description
 * @auther: Lily
 * @date: 2019/10/17-10:55
 **/
public class BaseServlet extends HttpServlet {

    protected HttpServletRequest request;
    protected HttpServletResponse response;
    protected HttpSession session;
    protected final String REDIRECT = "redirect:";

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        request = req;
        response = resp;
        session = req.getSession();
        //student/add   ,  student/add?name=aa
        String uri = req.getRequestURI();
        //StringBuffer url = req.getRequestURL();
        //System.out.println(uri);
        //System.out.println(url);
        //通过请求地址获取到对应的方法名称
        String methodName = uri.substring(uri.lastIndexOf("/") + 1);
        try {
            //使用反射获取指定方法名称的方法对象  Class
            Class<? extends BaseServlet> clazz = this.getClass();
            Method method = clazz.getDeclaredMethod(methodName);
            //打破规则,调用私有方法
            method.setAccessible(true);
            //执行方法,获取结果
            Object result = method.invoke(this);
            if(Objects.nonNull(result)){
                if(result instanceof ResponseEntity){
                    //JSON转换
                    String jsonStr = GsonUtil.toJson(result);
                    //设置返回格式
                    resp.setContentType("application/json;charset=utf-8");
                    //out输出
                    PrintWriter out = resp.getWriter();
                    out.write(jsonStr);
                    out.close();
                }else if(result instanceof String){
                    String path = result + ".jsp";
                    //重定向
                    if(path.startsWith(REDIRECT)){
                        path = path.substring(path.indexOf("/"));
                        resp.sendRedirect(path);
                        return;
                    }
                    req.getRequestDispatcher(path).forward(req,resp);
                }else{
                    throw new RuntimeException("数据格式不匹配,想清楚。。");
                }
            }
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

    }
}
TabBoarServlet
package servlet;

import entity.ResponseEntity;
import entity.TabBoar;
import service.TabBoarService;

import javax.servlet.annotation.WebServlet;

/**
 * @Auther: Administrator
 * @Date: 2020/6/29 22:49
 * @Description:
 */
@WebServlet("/tabBoar/*")
public class TabBoarServlet extends BaseServlet {
    private TabBoarService tabBoarService = new TabBoarService();

    //根据id查询
    public ResponseEntity list(){
        ResponseEntity tabBoar = tabBoarService.findById(1);
        System.out.println(tabBoar);
        return tabBoar;
    }
}

添加servlet


            javax.servlet
            javax.servlet-api
            4.0.1
            provided

添加Tomcat


        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    80
                    /
                    utf-8
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    8
                    8
                
            
        
    

结果