web project根据request连接数据库 返回json数据

首先建一个web project,

然后建一个db package,建链接数据库的class,添加对应的jdbc.jar到library中,

package com.dai.db;

import java.sql.Connection;
import java.sql.DriverManager;


public class DBConnection {
    final String url="jdbc:mysql://localhost:3306/research_fonts";
    final String username="root";
    final String password="000000";
    final String driver="com.mysql.jdbc.Driver";
    
    public Connection getConnection(){
        Connection conn=null;
        try {
            Class.forName(driver);
            conn=DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }
}

 


然后建object package, 建对应数据库中表的 对象和查询方法。

package com.dai.search;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import com.dai.db.DBConnection;

public class Paper {
    public String getDatasById(String id){
        String data=null;
        String sql="SELECT * FROM papers WHERE id ="+id;
        CreateJson c=new CreateJson();
        try {
            DBConnection db=new DBConnection();
            Connection conn=db.getConnection();
            Statement st=conn.createStatement();
            ResultSet rs=st.executeQuery(sql);
            while (rs.next()) {
                c.add("id", rs.getString("id"));
                c.add("author", rs.getString("author"));
                c.add("title", rs.getString("title"));
                c.add("so", rs.getString("so"));
                c.add("keywords", rs.getString("keywords"));
                c.add("abstract", rs.getString("abstract"));
                c.add("timescited", rs.getString("timescited"));
                c.add("publishyes", rs.getString("publishyear"));
                c.add("J9", rs.getString("J9"));
                c.cat();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return c.toJsonArray();
    }
    
    public String getDatasByKeywords(String keyword){
        String sql="SELECT * FROM papers WHERE Keywords like '%"+keyword+"%'";
        String data=null;
        CreateJson c=new CreateJson();
        try {
            DBConnection db=new DBConnection();
            Connection conn=db.getConnection();
            Statement st=conn.createStatement();
            ResultSet rs=st.executeQuery(sql);
            while (rs.next()) {
                c.add("id", rs.getString("id"));
                c.add("author", rs.getString("author"));
                c.add("title", rs.getString("title"));
                c.add("so", rs.getString("so"));
                c.add("keywords", rs.getString("keywords"));
                c.add("abstract", rs.getString("abstract"));
                c.add("timescited", rs.getString("timescited"));
                c.add("publishyes", rs.getString("publishyear"));
                c.add("J9", rs.getString("J9"));
                c.cat();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return c.toJsonArray();
    }
}

 


然后建servlet package, 建对应servlet的

package com.dai.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

import com.dai.search.Paper;

public class DaiServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        String option=request.getParameter("option");
        System.out.println("enter...");
        String data=null;
        Paper paper=new Paper();
        if(option.equals("1")){
            data=paper.getDatasById(request.getParameter("id"));
            System.out.println("id:"+data);
        }else if(option.equals("2")){
            data=paper.getDatasByKeywords(request.getParameter("keyword"));
            System.out.println("keyword:"+data);
        }
        out.write(data);
        out.flush();
        out.close();
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

            doGet(request, response);
    }
}

目录:

createJson.java用来使用json类,来方便生成json。

package com.dai.search;

public class CreateJson {
    private String json="";
    private String jsonArray="";
    
    public CreateJson(){
        this.jsonArray="";
    }
    
    public void add(String key,String value){
        json+=("\""+key+"\":\""+value+"\",");
    }
    
    public String toString(){
        return "{"+json.substring(0, json.length()-1)+"}";
    }
    
    public String toJsonArray(){
        if(jsonArray.length()<1){
            return "[]";
        }
        return "["+jsonArray.substring(0, jsonArray.length()-1)+"]";
    }
    
    public void cat(){
        jsonArray+=("{"+(json.substring(0, json.length()-1))+"},");
        clear();
    }
    
    public void clear(){
        json="";
    }
}

 

posted @ 2016-11-29 17:35  keeps_you_warm  阅读(188)  评论(0)    收藏  举报