java程序以表格导入数据时的考虑

一、前端

    1. 对选择导入的文件做最基本的文件格式判断,判断是否符合要求。

    2. 点击导入,向后端请求前,页面给出友好提示“数据正在导入中,请等待。。。”等

二、后端

    1. 虽然前端对文件格式已经做过判断,但是安全性考虑(防止通过url直接请求接口),因此代码中还要进行一次文件格式判断。

    2. 对文件的大小进行判断,如果是空文件或者文件超出了最大限制(这里的限制包含两个方面【①文件本身大小,比如不能超过3M ② 文件内容的长度,比如不能超过1万条数据】),直接向前端返回错误提示。

    3. 对文件进行解析(java常用XSSFWorkbook),解析包含,对文件字段的解析【导入的文件是否为模板要求的格式,例如,必填字段是否缺失,内容是否符合要求,某些行列该有的内容是否为空,丢失,文件中是否存在重复数据,哪些数据解析失败等等】。

    4. 如果成功的解析完毕,则对文件进行一个批处理(针对文件数据较多的情况下,为了提高插入数据库的效率以及稳定),一般将文件中数据以500到1000条为分割,一次向数据库插入500条左右,不要一次性将所有数据都插入数据库。

    5. 最后将插入过程中,插入失败的数据以及解析失败的数据返回给前端显示。

转载于:https://www.cnblogs.com/woniufei/p/11532842.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Java窗体显示MySQL数据,可以使用Java Swing提供的JTable组件来实现。以下是实现步骤: 1. 导入MySQL数据库驱动包 在项目中引入MySQL数据库的驱动包,可以使用JDBC连接MySQL数据库。 2. 连接MySQL数据库 使用JDBC连接MySQL数据库,创建一个Connection对象。 3. 查询MySQL数据数据 使用JDBC执行SQL语句,查询需要显示的数据,并将结果保存在ResultSet对象中。 4. 将查询结果转换为二维数组 遍历ResultSet对象,将查询结果转换为一个二维数组。 5. 创建JTable组件 使用JTable组件显示查询结果,创建一个JTable对象并将二维数组作为参数传入。 6. 将JTable组件添加到窗体中 使用Java Swing提供的容器组件,如JFrame、JPanel等,将JTable组件添加到窗体中。 以下是示例代码: ```java import java.sql.*; import javax.swing.*; import java.awt.*; public class DisplayTable extends JFrame { private JTable table; public DisplayTable() { setTitle("Display Table"); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 连接MySQL数据库 try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password"); // 查询MySQL数据数据 Statement stmt = con.createStatement(); String query = "SELECT * FROM mytable"; ResultSet rs = stmt.executeQuery(query); // 将查询结果转换为二维数组 int rowCount = 0; while (rs.next()) { rowCount++; } rs.beforeFirst(); ResultSetMetaData rsmd = rs.getMetaData(); int columnCount = rsmd.getColumnCount(); Object[][] data = new Object[rowCount][columnCount]; int i = 0; while (rs.next()) { for (int j = 0; j < columnCount; j++) { data[i][j] = rs.getObject(j + 1); } i++; } // 创建JTable组件 table = new JTable(data, getColumnNames(rsmd)); // 将JTable组件添加到窗体中 JScrollPane scrollPane = new JScrollPane(table); getContentPane().add(scrollPane, BorderLayout.CENTER); // 关闭MySQL数据库连接 rs.close(); stmt.close(); con.close(); } catch (Exception ex) { ex.printStackTrace(); } } // 获取查询结果的列名 private String[] getColumnNames(ResultSetMetaData rsmd) throws SQLException { int columnCount = rsmd.getColumnCount(); String[] columnNames = new String[columnCount]; for (int i = 1; i <= columnCount; i++) { columnNames[i - 1] = rsmd.getColumnName(i); } return columnNames; } public static void main(String[] args) { DisplayTable frame = new DisplayTable(); frame.setVisible(true); } } ``` 在以上示例代码中,需要将“mydatabase”和“mytable”替换为实际使用的数据库和表名,将“root”和“password”替换为实际的MySQL数据库用户名和密码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值