手机科技政策一点通后端

package com.example.profit;

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

public class Database {
public Database() {
}

public static Connection getConnection() throws SQLException, ClassNotFoundException {
    String driver = "com.mysql.cj.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/profit";
    String user = "root";
    String password = "aA13284617906";
    Class.forName(driver);
    Connection connection = DriverManager.getConnection(url, user, password);
    return connection;
}

}
package com.example.profit;

public class policy {
private String name;
private String type;
private String category;
private String range;
private String document;
private String form;
private String organ;
private String viadata;
private String pubdata;
private String perdata;
private String field;
private String theme;
private String keyword;
private String superior;
private String precursor;
private String succeed;
private String state;
private String text;
private String pdf;
private String redundancy;
private String rank;
private String policykey;
private String newrank;
private String year;
private String newkey;
private String secondtheme;
private String allsum;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public String getCategory() {
    return category;
}

public void setCategory(String category) {
    this.category = category;
}

public String getRange() {
    return range;
}

public void setRange(String range) {
    this.range = range;
}

public String getDocument() {
    return document;
}

public void setDocument(String document) {
    this.document = document;
}

public String getForm() {
    return form;
}

public void setForm(String form) {
    this.form = form;
}

public String getOrgan() {
    return organ;
}

public void setOrgan(String organ) {
    this.organ = organ;
}

public String getViadata() {
    return viadata;
}

public void setViadata(String viadata) {
    this.viadata = viadata;
}

public String getPubdata() {
    return pubdata;
}

public void setPubdata(String pubdata) {
    this.pubdata = pubdata;
}

public String getPerdata() {
    return perdata;
}

public void setPerdata(String perdata) {
    this.perdata = perdata;
}

public String getField() {
    return field;
}

public void setField(String field) {
    this.field = field;
}

public String getTheme() {
    return theme;
}

public void setTheme(String theme) {
    this.theme = theme;
}

public String getKeyword() {
    return keyword;
}

public void setKeyword(String keyword) {
    this.keyword = keyword;
}

public String getSuperior() {
    return superior;
}

public void setSuperior(String superior) {
    this.superior = superior;
}

public String getPrecursor() {
    return precursor;
}

public void setPrecursor(String precursor) {
    this.precursor = precursor;
}

public String getSucceed() {
    return succeed;
}

public void setSucceed(String succeed) {
    this.succeed = succeed;
}

public String getState() {
    return state;
}

public void setState(String state) {
    this.state = state;
}

public String getText() {
    return text;
}

public void setText(String text) {
    this.text = text;
}

public String getPdf() {
    return pdf;
}

public void setPdf(String pdf) {
    this.pdf = pdf;
}

public String getRedundancy() {
    return redundancy;
}

public void setRedundancy(String redundancy) {
    this.redundancy = redundancy;
}

public String getRank() {
    return rank;
}

public void setRank(String rank) {
    this.rank = rank;
}

public String getPolicykey() {
    return policykey;
}

public void setPolicykey(String policykey) {
    this.policykey = policykey;
}

public String getNewrank() {
    return newrank;
}

public void setNewrank(String newrank) {
    this.newrank = newrank;
}

public String getYear() {
    return year;
}

public void setYear(String year) {
    this.year = year;
}

public String getNewkey() {
    return newkey;
}

public void setNewkey(String newkey) {
    this.newkey = newkey;
}

public String getSecondtheme() {
    return secondtheme;
}

public void setSecondtheme(String secondtheme) {
    this.secondtheme = secondtheme;
}

public String getAllsum() {
    return allsum;
}

public void setAllsum(String allsum) {
    this.allsum = allsum;
}

@Override
public String toString() {
    return "policy{" +
            "name='" + name + '\'' +
            ", type='" + type + '\'' +
            ", category='" + category + '\'' +
            ", range='" + range + '\'' +
            ", document='" + document + '\'' +
            ", form='" + form + '\'' +
            ", organ='" + organ + '\'' +
            ", viadata='" + viadata + '\'' +
            ", pubdata='" + pubdata + '\'' +
            ", perdata='" + perdata + '\'' +
            ", field='" + field + '\'' +
            ", theme='" + theme + '\'' +
            ", keyword='" + keyword + '\'' +
            ", superior='" + superior + '\'' +
            ", precursor='" + precursor + '\'' +
            ", succeed='" + succeed + '\'' +
            ", state='" + state + '\'' +
            ", text='" + text + '\'' +
            ", pdf='" + pdf + '\'' +
            ", redundancy='" + redundancy + '\'' +
            ", rank='" + rank + '\'' +
            ", policykey='" + policykey + '\'' +
            ", newrank='" + newrank + '\'' +
            ", year='" + year + '\'' +
            ", newkey='" + newkey + '\'' +
            ", secondtheme='" + secondtheme + '\'' +
            ", allsum='" + allsum + '\'' +
            '}';
}

}
package com.example.profit;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.example.profit.Database;
import com.example.profit.policy;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/searchPolicy")
public class SearchPolicyServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取请求参数
    String keyword = request.getParameter("keyword");
    System.out.println("Received keyword: " + keyword); // 打印关键字

    // 初始化政策列表
    List<policy> policies = new ArrayList<>();

    // 检查关键字是否为空
    if (keyword == null || keyword.isEmpty()) {
        System.out.println("Keyword is null or empty");
        // 返回空JSON数组
        sendJsonResponse(response, policies);
        return;
    }

    // 查询数据库
    try (Connection conn = Database.getConnection();
         PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM policy WHERE text LIKE ?")) {
        pstmt.setString(1, "%" + keyword + "%"); // 设置查询参数
        System.out.println("Executing SQL query: " + pstmt.toString()); // 打印SQL语句

        try (ResultSet rs = pstmt.executeQuery()) {
            while (rs.next()) {
                // 创建政策对象并设置属性
                policy p = new policy();
                p.setName(rs.getString("name"));
                p.setType(rs.getString("type"));
                p.setCategory(rs.getString("category"));
                p.setRange(rs.getString("range"));
                p.setDocument(rs.getString("document"));
                p.setForm(rs.getString("form"));
                p.setOrgan(rs.getString("organ"));
                p.setViadata(rs.getString("viadata"));
                p.setPubdata(rs.getString("pubdata"));
                p.setPerdata(rs.getString("perdata"));
                p.setField(rs.getString("field"));
                p.setTheme(rs.getString("theme"));
                p.setKeyword(rs.getString("keyword"));
                p.setSuperior(rs.getString("superior"));
                p.setPrecursor(rs.getString("precursor"));
                p.setSucceed(rs.getString("succeed"));
                p.setState(rs.getString("state"));
                p.setText(rs.getString("text"));
                p.setPdf(rs.getString("pdf"));
                p.setRedundancy(rs.getString("redundancy"));
                p.setRank(rs.getString("rank"));
                p.setPolicykey(rs.getString("policykey"));
                p.setNewrank(rs.getString("newrank"));
                p.setYear(rs.getString("year"));
                p.setNewkey(rs.getString("newkey"));
                p.setSecondtheme(rs.getString("secondtheme"));
                p.setAllsum(rs.getString("allsum"));

                // 将政策对象添加到列表
                policies.add(p);
            }
        }
    } catch (SQLException e) {
        // 记录SQL异常
        System.err.println("SQL error: " + e.getMessage());
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // 记录数据库驱动未找到异常
        System.err.println("Database driver not found: " + e.getMessage());
        e.printStackTrace();
    }

    // 打印查询结果数量
    System.out.println("Number of policies found: " + policies.size());

    // 返回JSON响应
    sendJsonResponse(response, policies);
}


/**
 * 发送JSON响应
 *
 * @param response HttpServletResponse对象
 * @param policies 政策列表
 * @throws IOException 如果写入响应时发生错误
 */
private void sendJsonResponse(HttpServletResponse response, List<policy> policies) throws IOException {
    // 设置响应内容类型为JSON
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");

    // 将政策列表转换为JSON字符串
    ObjectMapper objectMapper = new ObjectMapper();
    String jsonResponse = objectMapper.writeValueAsString(policies);
    System.out.println("JSON Response: " + jsonResponse); // 打印JSON数据

    // 将JSON字符串写入响应
    PrintWriter out = response.getWriter();
    out.print(jsonResponse);
    out.flush();
}

}

posted @ 2025-05-30 11:11  ytr123  阅读(6)  评论(0)    收藏  举报