Java工商信息查询与存储系统:从后端到Web的实现
2025.09.18 16:00浏览量:1简介:本文详细阐述如何使用Java实现工商信息查询并存储到数据库,以及通过JavaWeb技术构建查询功能,覆盖数据获取、存储及Web查询全流程。
一、引言
工商信息查询是企业管理、市场分析、风险控制等场景中的重要环节。传统方式依赖人工查询或第三方API,存在效率低、成本高、数据更新不及时等问题。本文将介绍如何使用Java实现工商信息的自动化查询与存储,并通过JavaWeb技术构建查询功能,提升数据获取效率与可操作性。
二、Java实现工商信息查询与存储
1. 数据获取:调用工商信息API
工商信息通常通过政府公开平台或第三方数据服务商获取。以某工商信息API为例,需先注册账号并获取API Key,然后通过HTTP请求获取数据。
示例代码:使用HttpClient调用API
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class BusinessInfoFetcher {
private static final String API_KEY = "your_api_key";
private static final String API_URL = "https://api.example.com/business/info?keyword=";
public String fetchBusinessInfo(String keyword) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet request = new HttpGet(API_URL + keyword + "&apiKey=" + API_KEY);
HttpResponse response = httpClient.execute(request);
String result = EntityUtils.toString(response.getEntity());
httpClient.close();
return result;
}
}
说明:
- API Key:需替换为实际API Key。
- 请求参数:
keyword
为查询关键词(如企业名称)。 - 响应处理:
EntityUtils.toString
将响应体转为字符串,后续需解析为结构化数据。
2. 数据解析:JSON转Java对象
API返回的工商信息通常为JSON格式,需解析为Java对象以便存储。
示例代码:使用Jackson解析JSON
import com.fasterxml.jackson.databind.ObjectMapper;
public class BusinessInfo {
private String name;
private String creditCode;
private String legalPerson;
// 其他字段...
// Getter & Setter...
public static BusinessInfo fromJson(String json) throws Exception {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(json, BusinessInfo.class);
}
}
说明:
- ObjectMapper:Jackson库的核心类,用于JSON与Java对象互转。
- 字段映射:JSON字段需与Java类属性名一致,或通过注解配置映射关系。
3. 数据存储:JDBC操作数据库
解析后的工商信息需存储到数据库(如MySQL)。使用JDBC实现数据插入。
示例代码:JDBC存储数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class BusinessInfoStorage {
private static final String DB_URL = "jdbc:mysql://localhost:3306/business_db";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "password";
public void storeBusinessInfo(BusinessInfo info) throws Exception {
Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
String sql = "INSERT INTO business_info (name, credit_code, legal_person) VALUES (?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, info.getName());
stmt.setString(2, info.getCreditCode());
stmt.setString(3, info.getLegalPerson());
stmt.executeUpdate();
stmt.close();
conn.close();
}
}
说明:
- 数据库配置:需替换为实际数据库URL、用户名和密码。
- SQL注入防护:使用
PreparedStatement
防止SQL注入。 - 异常处理:实际开发中需添加
try-catch
块处理异常。
三、JavaWeb实现查询功能
1. 前端页面:HTML+JSP
构建查询页面,用户输入关键词后提交至后端。
示例代码:query.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>工商信息查询</title>
</head>
<body>
<form action="query" method="post">
<input type="text" name="keyword" placeholder="输入企业名称">
<button type="submit">查询</button>
</form>
</body>
</html>
2. 后端处理:Servlet
接收前端请求,查询数据库并返回结果。
示例代码:QueryServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/query")
public class QueryServlet extends HttpServlet {
private static final String DB_URL = "jdbc:mysql://localhost:3306/business_db";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "password";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String keyword = request.getParameter("keyword");
List<BusinessInfo> results = queryBusinessInfo(keyword);
request.setAttribute("results", results);
request.getRequestDispatcher("/result.jsp").forward(request, response);
}
private List<BusinessInfo> queryBusinessInfo(String keyword) throws SQLException {
List<BusinessInfo> list = new ArrayList<>();
Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
String sql = "SELECT * FROM business_info WHERE name LIKE ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, "%" + keyword + "%");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
BusinessInfo info = new BusinessInfo();
info.setName(rs.getString("name"));
info.setCreditCode(rs.getString("credit_code"));
info.setLegalPerson(rs.getString("legal_person"));
list.add(info);
}
rs.close();
stmt.close();
conn.close();
return list;
}
}
说明:
- 模糊查询:使用
LIKE
和%
实现关键词模糊匹配。 - 结果转发:将查询结果转发至
result.jsp
显示。
3. 结果展示:JSP页面
动态生成查询结果表格。
示例代码:result.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>查询结果</title>
</head>
<body>
<table border="1">
<tr>
<th>企业名称</th>
<th>信用代码</th>
<th>法人</th>
</tr>
<c:forEach items="${results}" var="info">
<tr>
<td>${info.name}</td>
<td>${info.creditCode}</td>
<td>${info.legalPerson}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
四、优化与扩展
五、总结
本文介绍了从Java调用工商信息API、解析数据、存储到数据库,到通过JavaWeb实现查询功能的完整流程。实际开发中需根据业务需求调整API选择、数据库设计及前端交互方式。
发表评论
登录后可评论,请前往 登录 或 注册