手机科技政策一点通后端
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();
}
}

浙公网安备 33010602011771号