将数据库数据导出成excel文件 基于达梦数据库

您所在的位置:网站首页 将数据库表导出excel 将数据库数据导出成excel文件 基于达梦数据库

将数据库数据导出成excel文件 基于达梦数据库

2023-06-17 20:21| 来源: 网络整理| 查看: 265

场景:现在就是有个需求,需要按照文本文件里面的表名 去查询这些表的一些相应字段,以及字段类型、字段长度、和字段的中文描述,然后将这些数据导出成excel文件。

1.首先创建maven文件,导入pom文件(注意!该代码基于达梦数据库以及jdk1.8) org.apache.poi poi 4.1.2 org.apache.poi poi-ooxml 4.1.2 com.dameng Dm7JdbcDriver18 7.6.0.165 com.dameng DmDialect-for-hibernate5.3 8.1.1.49 2.用poi类库 import java.io.BufferedReader; import java.io.FileReader; import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * desc * date 2023/6/14 * @author houhou * @param * @return null **/ public class DatabaseMetadataExporter { public static void main(String[] args) { String jdbcUrl = "你自己的数据库地址"; // 替换为实际的数据库连接URL String username = "你自己的数据库名称"; // 替换为实际的数据库用户名 String password = "你自己的数据库密码"; // 替换为实际的数据库密码 String filePath = "/Users/houhou/kettle-1/test2/1.txt"; // 替换为实际的文本文件路径 String excelFilePath = "/Users/houhou/kettle-1/test2/table_fields4.xlsx"; // 替换为实际的Excel文件路径 try { // 连接到数据库 Connection connection = DriverManager.getConnection(jdbcUrl, username, password); // 创建工作簿和工作表 XSSFWorkbook workbook = new XSSFWorkbook(); org.apache.poi.ss.usermodel.Sheet sheet = workbook.createSheet("Table Metadata"); // 读取文本文件中的表名 BufferedReader reader = new BufferedReader(new FileReader(filePath)); String line; int rowNumber = 0; while ((line = reader.readLine()) != null) { // 查询表的字段列表、字段类型、主键和字段中文描述 String tableName = line.trim(); String query = "SELECT utc.COLUMN_NAME, utc.DATA_TYPE, utc.COLUMN_NAME, ucc.COMMENTS FROM USER_TAB_COLUMNS utc LEFT JOIN USER_COL_COMMENTS ucc ON utc.TABLE_NAME = ucc.TABLE_NAME AND utc.COLUMN_NAME = ucc.COLUMN_NAME WHERE utc.TABLE_NAME = '" + tableName + "'"; Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query); // 创建表头行 if (rowNumber == 0) { Row headerRow = sheet.createRow(rowNumber); headerRow.createCell(0).setCellValue("表名"); headerRow.createCell(1).setCellValue("字段名"); headerRow.createCell(2).setCellValue("字段类型"); headerRow.createCell(3).setCellValue("主键"); headerRow.createCell(4).setCellValue("字段中文描述"); rowNumber++; } // 填充数据行 while (resultSet.next()) { Row dataRow = sheet.createRow(rowNumber); dataRow.createCell(0).setCellValue(tableName); dataRow.createCell(1).setCellValue(resultSet.getString(1)); dataRow.createCell(2).setCellValue(resultSet.getString(2)); dataRow.createCell(3).setCellValue(resultSet.getString(3)); dataRow.createCell(4).setCellValue(resultSet.getString(4)); rowNumber++; } resultSet.close(); statement.close(); } reader.close(); // 保存Excel文件 FileOutputStream outputStream = new FileOutputStream(excelFilePath); workbook.write(outputStream); workbook.close(); outputStream.close(); System.out.println("数据导出成功!"); } catch (Exception e) { e.printStackTrace(); } } }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3