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选择、数据库设计及前端交互方式。

发表评论
登录后可评论,请前往 登录 或 注册