导出数据库表信息到Excel

导出数据库表信息到excel

当涉及到数据导出以及 Excel 文件处理时,经常会涉及到对数据进行整理、处理,并将其导出到 Excel 文件中。

在 Java 开发中,使用 Apache POI 库可以方便地处理 Excel 文件的读写操作。

今天我将向大家介绍如何通过 Java 代码实现从数据库表中提取数据,整理输出到 Excel 文件的过程。我们将使用 Spring 框架和 Apache POI 库来实现这个过程。

步骤一:

首先,我们需要创建一个实体类 TableSch,用于映射数据库表结构信息。

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

@Data
public class TableSch implements Serializable{
   
   

    @ApiModelProperty(value = "源表名")
    @TableField("TABLE_NAME")
    private String tableName;

    @ApiModelProperty(value = "源表中文名")
    @TableField("TABLE_COMMENT")
    private String tableComment;

    @ApiModelProperty(value = "字段序号")
    @TableField("ORDINAL_POSITION")
    private Integer ordinalPosition;

    @ApiModelProperty(value = "字段中文名称")
    @TableField("COLUMN_COMMENT")
    private String columnComment;

    @ApiModelProperty(value = "字段英文名称")
    @TableField("COLUMN_NAME")
    private String columnName;

    @ApiModelProperty(value = "字段类型")
    @TableField("COLUMN_TYPE")
    private String columnType;

    @ApiModelProperty(value = "是否允许为空")
    @TableField("IS_NULLABLE")
    private String isNullable;

    @ApiModelProperty(value = "是否主键")
    @TableField("COLUMN_KEY")
    private String columnKey;
}

步骤二:

然后,再编写一个数据访问层接口 TableSchMapper,用于数据库操作。


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.myspace.entity.TableSch;

import java.util.List;

public interface TableSchMapper extends BaseMapper<TableSch> {
   
   

    List<TableSch> findTableSch();
}
步骤三:

在mapper.xml中编写sql:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.myspace.mapper.TableSchMapper">

    <select id="findTableSch" resultType="com.myspace.entity.TableSch">
        SELECT
            t1.table_name,
            t2.table_comment,
            t1.ordinal_position,
            t1.column_comment,
            t1.column_name,
            t1.column_type,
        IF
            ( t1.IS_NULLABLE = 'NO', 'N', 'Y' ) IS_NULLABLE,
        IF
            ( t1.COLUMN_KEY = 'PRI', 'Y', 'N' ) COLUMN_KEY
        FROM
            (
            SELECT
                *
            FROM
                information_schema.COLUMNS
            WHERE
                table_schema = '数据库实例名'
        		and table_name in ('sys_user', 'sys_role', 'sys_region')
            ) t1
            INNER JOIN ( SELECT * FROM information_schema.TABLES WHERE table_schema = '数据库实例名' AND table_type = 'BASE TABLE' ) t2
                ON t1.table_name = t2.table_name
    </select>
</mapper>
步骤四:

接着,编写一个测试类 ExcelRW

方式一: 使用 Apache POI 库的方式。

引入需要的依赖包。

<properties>
	<poi.version>3.17</poi.version>
	<poi.ooxml.version>3.17</poi.ooxml.version>
	<poi.schemas.version>3.17</poi.schemas.version>
</properties>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>${
   
   poi.ooxml.version}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值