精华内容
下载资源
问答
  • 导出
    千次阅读
    2022-05-25 09:31:51

    背景信息

    gs_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。

    gs_dump工具由操作系统用户omm执行。

    gs_dump工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。

    gs_dump工具支持导出完整一致的数据。例如,T1时刻启动gs_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出。

    gs_dump时生成列不会被转储。

    gs_dump支持导出兼容v1版本数据库的文本格式文件。

    gs_dump支持将数据库信息导出至纯文本格式的SQL脚本文件或其他归档文件中。

    • 纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过gsql运行该SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。
    • 归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见表1。该导出结果必须与gs_restore配合使用来恢复数据库,gs_restore工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序。

    主要功能

    gs_dump可以创建四种不同的导出文件格式,通过[-F或者–format=]选项指定,具体如表1所示。

    表 1 导出文件格式

    格式名称

    -F的参数值

    说明

    建议

    对应导入工具

    纯文本格式

    p

    纯文本脚本文件包含SQL语句和命令。命令可以由gsql命令行终端程序执行,用于重新创建数据库对象并加载表数据。

    小型数据库,一般推荐纯文本格式。

    使用gsql工具恢复数据库对象前,可根据需要使用文本编辑器编辑纯文本导出文件。

    自定义归档格式

    c

    一种二进制文件。支持从导出文件中恢复所有或所选数据库对象。

    中型或大型数据库,推荐自定义归档格式。

    使用gs_restore可以选择要从自定义归档导出文件中导入相应的数据库对象。

    目录归档格式

    d

    该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。

    -

    tar归档格式

    t

    tar归档文件支持从导出文件中恢复所有或所选数据库对象。tar归档格式不支持压缩且对于单独表大小应小于8GB。

    -

    说明: 可以使用gs_dump程序将文件压缩为目录归档或自定义归档导出文件,减少导出文件的大小。生成目录归档或自定义归档导出文件时,默认进行中等级别的压缩。gs_dump程序无法压缩已归档导出文件。

    注意事项

    • 禁止修改导出的文件和内容,否则可能无法恢复成功。

    • 为了保证数据一致性和完整性,gs_dump会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁,gs_dump会等待锁释放后锁定表。如果无法在指定时间内锁定某个表,转储会失败。用户可以通过指定–lock-wait-timeout选项,自定义等待锁超时时间。

    • 不支持加密导出存储过程和函数。

    语法

    gs_dump [OPTION]... [DBNAME]

     说明:  “DBNAME”前面不需要加短或长选项。“DBNAME”指定要连接的数据库。 例如: 不需要-d,直接指定“DBNAME”。

    gs_dump -p port_number  postgres -f dump1.sql
    或者
    
    
    export PGDATABASE=postgres 
    gs_dump -p port_number -f dump1.sql

    环境变量: PGDATABASE 
     

    常用参数说明

    表 1 常用参数说明

    参数

    参数说明

    举例

    -U

    连接数据库的用户名。

    说明:

    不指定连接数据库的用户名时,默认以安装时创建的初始系统管理员连接。

    -U jack

    -W

    指定用户连接的密码。

    • 如果主机的认证策略是trust,则不会对数据库管理员进行密码验证,即无需输入-W选项;
    • 如果没有-W选项,并且不是数据库管理员,会提示用户输入密码。

    -W abcd@123

    -f

    将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。

    -f /home/omm/backup/postgres_backup.tar

    -p

    指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。

    -p 8000

    dbname

    需要导出的数据库名称。

    postgres

    -F

    选择导出文件格式。-F参数值如下:

    • p:纯文本格式
    • c:自定义归档
    • d:目录归档格式
    • t:tar归档格式

    -F t

    -T

    不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符制定多个表对象。

    当同时输入-t和-T时,会转储在-t列表中,而不在-T列表中的表对象。

    -T table1

    示例

    使用gs_dump转储数据库为SQL文本文件或其它格式的操作,如下所示。

    示例中“Bigdata@123”表示数据库用户密码;“backup/MPPDB_backup.sql”表示导出的文件,其中backup表示相对于当前目录的相对目录;“37300”表示数据库服务器端口;“postgres”表示要访问的数据库名。

    说明: 导出操作时,请确保该目录存在并且当前的操作系统用户对其具有读写权限。

    示例1:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup.sql文件格式为纯文本格式。

    gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.sql -p 37300 postgres -F p
    gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: The total objects number is 356.
    gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: [100.00%] 356 objects have been dumped.
    gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: dump database postgres successfully
    gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: total time: 1274  ms
    

    使用gsql程序从纯文本导出文件中导入数据。

    示例2:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup.tar文件格式为tar格式。

    gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.tar -p 37300 postgres -F t
    gs_dump[port='37300'][postgres][2018-06-27 10:02:24]: The total objects number is 1369.
    gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: [100.00%] 1369 objects have been dumped.
    gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: dump database postgres successfully
    gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: total time: 50086  ms
    

    示例3:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup.dmp文件格式为自定义归档格式。

    gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.dmp -p 37300 postgres -F c
    gs_dump[port='37300'][postgres][2018-06-27 10:05:40]: The total objects number is 1369.
    gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: [100.00%] 1369 objects have been dumped.
    gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: dump database postgres successfully
    gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: total time: 36620  ms
    

    示例4:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup文件格式为目录格式。

    gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup -p 37300  postgres -F d
    gs_dump[port='37300'][postgres][2018-06-27 10:16:04]: The total objects number is 1369.
    gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: [100.00%] 1369 objects have been dumped.
    gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: dump database postgres successfully
    gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: total time: 33977  ms 
    

    示例5:执行gs_dump,导出postgres数据库信息,但不导出/home/MPPDB_temp.sql中指定的表信息。导出的MPPDB_backup.sql文件格式为纯文本格式。

    gs_dump -U omm -W Bigdata@123 -p 37300 postgres --exclude-table-file=/home/MPPDB_temp.sql -f backup/MPPDB_backup.sql
    gs_dump[port='37300'][postgres][2018-06-27 10:37:01]: The total objects number is 1367.
    gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: [100.00%] 1367 objects have been dumped.
    gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: dump database postgres successfully
    gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: total time: 37017  ms
    

    示例6:执行gs_dump,仅导出依赖于指定表testtable的视图信息。然后创建新的testtable表,再恢复依赖其上的视图。

    • 备份仅依赖于testtable的视图。

      gs_dump -s -p 37300 postgres -t PUBLIC.testtable --include-depend-objs --exclude-self -f backup/MPPDB_backup.sql -F p
      gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: The total objects number is 331.
      gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: [100.00%] 331 objects have been dumped.
      gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: dump database postgres successfully
      gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: total time: 327  ms
      
    • 修改testtable名称。

      gsql -p 37300 postgres -r -c "ALTER TABLE PUBLIC.testtable RENAME TO testtable_bak;"
      
    • 创建新的testtable表。

      CREATE TABLE PUBLIC.testtable(a int, b int, c int);
      
    • 还原依赖于testtable的视图。

      gsql -p 37300 postgres -r -f backup/MPPDB_backup.sql
    更多相关内容
  • jquery导出excel(解决中文导出

    千次下载 热门讨论 2015-06-08 01:28:13
    网上下载的tableexport可以实现table的客户段导出功能,但由于所提供的base64无法实现中文导出,所以修改了base64编码,并修改了tableexport中使用base64部分,实现了对中文表格的导出功能
  • Java POI 导入导出Excel简单实例源代码

    千次下载 热门讨论 2014-08-28 16:25:39
    Java POI 导入导出Excel简单实例源代码 该源代码的jar包,参见以下博文附录截图 Java POI导出EXCEL经典实现 Java导出Excel弹出下载框 http://blog.csdn.net/evangel_z/article/details/7332535 web页面导出Excel...
  • PowerDesigner导出word模版

    千次下载 热门讨论 2013-05-20 00:05:11
    PowerDesigner导出word通用模版,导出表清单和表列清单
  • C# Excel导入导出

    千次下载 热门讨论 2015-08-07 16:26:52
    C#调用NPOI进行Excel导入、导出。 文件为一个解决方案,包含了所有开发源码。 文章为:http://www.cnblogs.com/polk6/p/4425620.html
  • sqluldr2导出工具

    热门讨论 2016-04-05 16:58:21
    oracle sqluldr2导出文本工具 包含多种版本,win,linu32,64位,aix64,请放心使用
  • Android数据库导出到Excel

    千次下载 热门讨论 2015-05-04 10:53:17
    自己写的一个小小的记帐工具,用到了Sqlite及导出到Excel文件
  • Echarts导出图片到Excel中

    热门讨论 2015-07-15 18:37:09
    使用Echarts通过Servlet导出图片,并将图片保存到Excel中
  • 在DM管理工具中以模式方式导出 (1)选中对应模式右键导出 选中导出目录及给要导出的文件起名,按自己需求配置好导出选项,确认没问题点确认即可导出 2.dexp命令导出 (1)dexp 详细命令参数 help命令即可查看参数 ...

    目录

    导入

    1.在DM管理工具中以模式方式导入

    (1)新建用户

     (2)刷新模式,找到对应的模式右键导入

    2.dimp命令导入

    (1)dimp 详细命令参数

    (2)导入命令实例

    导出

    1.在DM管理工具中以模式方式导出

    (1)选中对应模式右键导出

    2.dexp命令导出

    (1)dexp 详细命令参数

    (2)导出命令实例

    3.总结


    导入

    1.在DM管理工具中以模式方式导入

    (1)新建用户

            在用户-管理用户右键新建用户,输入用户及其密码,然后配置相应的角色及权限

     (2)刷新模式,找到对应的模式右键导入

     选择你dmp文件所在的目录及选中要导入的dmp文件,选中后你可以按你的需求修改导入选项,记住输入要导入的dmp文件的模式与现在模式,确定都没问题后点击确定即可导入

     

     

    2.dimp命令导入

    (1)dimp 详细命令参数

    help命令即可查看参数

    关键字                 说明(默认值)
    --------------------------------------------------------------------------------
    USERID                 用户名/口令 格式:USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD
    FILE                   导入文件名称 (dexp.dmp)
    DIRECTORY              导入文件所在目录
    FULL                   整库导入 (N)
    OWNER                  以用户方式导入 格式 (user1,user2,...)
    SCHEMAS                以模式方式导入 格式 (schema1,schema2,...)
    TABLES                 以表名方式导入 格式(table1,table2,...)
    PARALLEL               用于指定导入的过程中所使用的线程数目
    TABLE_PARALLEL         用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效
    IGNORE                 忽略创建错误 (N)
    TABLE_EXISTS_ACTION    需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE]
    FAST_LOAD              是否使用dmfldr来导数据(N)
    FLDR_ORDER             使用dmfldr是否需要严格按顺序来导数据(Y)
    COMMIT_ROWS            批量提交的行数(5000)
    EXCLUDE                忽略指定的对象 格式
                               格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)
    GRANTS                 导入权限 (Y)
    CONSTRAINTS            导入约束 (Y)
    INDEXES                导入索引 (Y)
    TRIGGERS               导入触发器 (Y)
    ROWS                   导入数据行 (Y)
    LOG                    指定日志文件
    NOLOGFILE              不使用日志文件(N)
    NOLOG                  屏幕上不显示日志信息(N)
    LOG_WRITE              日志信息实时写入文件(N): 是(Y),否(N)
    DUMMY                  交互信息处理(P): 打印(P), 所有交互都按YES处理(Y),NO(N)
    PARFILE                参数文件名
    FEEDBACK               每 x 行显示进度 (0)
    COMPILE                编译过程, 程序包和函数... (Y)
    INDEXFILE              将表的索引/约束信息写入指定的文件
    INDEXFIRST             导入时先建索引(N)
    REMAP_SCHEMA           格式(SOURCE_SCHEMA:TARGET_SCHEMA)
                           将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中
    ENCRYPT_PASSWORD       数据的加密密钥
    ENCRYPT_NAME           加密算法的名称
    SHOW/DESCRIBE          打印出指定文件的信息(N)
    LOCAL                  MPP模式下登录使用MPP_LOCAL方式(N)
    TASK_THREAD_NUMBER     用于设置dmfldr处理用户数据的线程数目
    BUFFER_NODE_SIZE       用于设置dmfldr读入文件缓冲区大小
    TASK_SEND_NODE_NUMBER  用于设置dmfldr发送节点个数[16,65535]
    LOB_NOT_FAST_LOAD      如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的
    PRIMARY_CONFLICT       主键冲突的处理方式[IGNORE|OVERWRITE],默认报错
    TABLE_FIRST            是否先导入表(N):是(Y),否(N)
    HELP                   打印帮助信息
    ————————————————

    (2)导入命令实例

    导入 SYSDBA、OTHER、PERSON 模式中的数(SCHEMAS=SYSDBA,OTHER,PERSON),导入文件就是上一步导出的文件 dexp01.dmp,导入日志 dimp02.log 放入/emc_2/data/dimp 目录中。

    ./dimp SYSDBA/SYSDBA\@192.168.0.248:8888 FILE=/emc_2/data/dexp/dexp01.dmp LOG=dimp02.log DIRECTORY=/emc_2/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON

    导出

    1.在DM管理工具中以模式方式导出

    (1)选中对应模式右键导出

     选中导出目录及给要导出的文件起名,按自己需求配置好导出选项,确认没问题点确认即可导出

    2.dexp命令导出

    (1)dexp 详细命令参数

    help命令即可查看参数

    关键字              说明(默认值)
    --------------------------------------------------------------------------------
    USERID              用户名/口令 格式:USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD
    FILE                导出文件 (dexp.dmp)
    DIRECTORY           导出文件所在目录
    FULL                整库导出 (N)
    OWNER               以用户方式导出 格式 (user1,user2,...)
    SCHEMAS             以模式方式导出 格式 (schema1,schema2,...)
    TABLES              以表方式导出 格式 (table1,table2,...)
    FUZZY_MATCH         TABLES选项是否支持模糊匹配 (N)
    QUERY               用于导出表的子集的select 子句
    PARALLEL            用于指定导出的过程中所使用的线程数目
    TABLE_PARALLEL      用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程
    TABLE_POOL          用于指定表的缓冲区个数
    EXCLUDE             忽略指定的对象
                           格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
                                EXCLUDE=TABLES:table1,table2 or
                                EXCLUDE=SCHEMAS:sch1,sch2
    INCLUDE             包含指定的对象
                           格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
                                INCLUDE=TABLES:table1,table2
    CONSTRAINTS         导出约束 (Y)
    TABLESPACE          导出对象带有表空间 (N)
    GRANTS              导出权限 (Y)
    INDEXES             导出索引 (Y)
    TRIGGERS            导出触发器 (Y)
    ROWS                导出数据行 (Y)
    LOG                 屏幕输出的日志文件
    NOLOGFILE           不使用日志文件(N)
    NOLOG               屏幕上不显示日志信息(N)
    LOG_WRITE           日志信息实时写入文件: 是(Y),否(N)
    DUMMY               交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N)
    PARFILE             参数文件名
    FEEDBACK            每 x 行显示进度 (0)
    COMPRESS            导出数据是否压缩 (N)
    ENCRYPT             导出数据是否加密 (N)
    ENCRYPT_PASSWORD    导出数据的加密密钥
    ENCRYPT_NAME        加密算法的名称
    FILESIZE            每个转储文件的最大大小
    FILENUM             一个模板可以生成的文件数
    DROP                导出后删除原表,但不级联删除 (N)
    DESCRIBE            导出数据文件的描述信息,记录在数据文件中
    LOCAL               MPP模式下登录使用MPP_LOCAL方式(N)
    HELP                打印帮助信息

    (2)导出命令实例

    导出数据库的所有对象(FULL=Y),导出文件为 dexp01.dmp,导出日志为 dexp01.log,导出文件和日志文件都存放在/emc_2/data/dexp 目录中。

    ./dexp SYSDBA/SYSDBA\@192.168.0.248:5236 FILE=dexp01.dmp LOG=dexp01.log DIRECTORY=/emc_2/data/dexp FULL=Y

    3.总结

    达梦官网:达梦数据库-国产数据库-掌握全部源代码-拥有完全自主知识产权-大数据-云平台-DCA认证培训-数据库培训-柔性替代方案武汉达梦数据库股份有限公司,是专业提供集大数据平台架构咨询,数据技术方案规划,产品部署与实施于一体的大数据平台公司。40年来始终坚持原始创新、独立研发,掌握核心技术和前沿技术,掌握全部源代码,拥有完全自主知识产权。公司是国家规划布局内重点软件企业,获得国家“双软”认证的高新技术企业,获得国家自主原创产品认证的数据库企业,拥有国内数据库研发精英团队,多次与国际数据库巨头同台竞技并夺标。拥有稳定有效的市场营销渠道和技术服务网络,可为用户提供定制产品和本地化原厂服务,满足用户个性化要求。达梦公司产品已覆盖公安、电力、铁路、航空、审计、通信、金融、海关、国土资源、电子政务、应急救援等50多个行业领域。https://www.dameng.com/

    达梦文档:

    DM 数据库快速上手指南 | 达梦技术文档本指南为武汉达梦数据库股份有限公司(以下简称“达梦”)DM 数据库快速安装部署使用提供了一套指南规范。具体而言,本指南在 DM 数据库版本、安装部署、数据库工具、数据迁移、应用开发、集群等方面进行详细介绍并给出参考建议。 目的 帮助用户了解 DM 数据库不同版本区别。 快速、规范化从零开始搭建本地测试环境。 帮助 DBA 熟悉 DM 数据库基本操作。 协助应用快速连接 DM 数据库。 推荐阅读本https://eco.dameng.com/docs/zh-cn/start/index.html达梦数据库导入导出的官方参考文档:

    数据导入导出 | 达梦技术文档DM 只导出表结构不导出数据针对导出数据库表结构通常有3种方法: 使用 DTS 导出打开 DTS 迁移工具,选择【DM–>SQL】并链接到数据库中,如下图所示: 添加定义脚本,并选择【迁移范围】(仅迁移对象定义),如下图所示: 选择需要导出结构的表,如下图所示: 迁移完成,表结构已经导出,如下图所示: DTS 同样可以将表结构迁移至其他数据库中或者从其他数据库迁移至 DM 数据库中。https://eco.dameng.com/docs/zh-cn/faq/faq-import-export.html

    展开全文
  • easyui datagrid 数据导出到Excel

    热门讨论 2014-03-25 15:48:06
    两种方法将easyui datagrid 中的数据导出到Excel中,均以验证可以正常使用
  • 日常工作中,曾遇到过导出数据为 Excel 的需求,这里做个简单总结。 相对于导出文件为 PDF 或者 Word ,导出 Excel 相对更常用。 在实际中,遇到有的项目中使用前端插件导出 Excel 的方式,当数据量比较大时,对...

    背景

    日常工作中,曾遇到过导出数据为 Excel 的需求,这里做个简单总结。

    相对于导出文件为 PDF 或者 Word ,导出 Excel 相对更常用。

    在实际中,遇到有的项目中使用前端插件导出 Excel 的方式,当数据量比较大时,对客户端要求比较高,导出很慢,影响用户体验。另外一种是今天这里介绍的后端直接查询、封装、导出为 Excel 文件。

    涉及的技术有: SpringBootMyBatishutool ,使用 hutool 工具导出数据为 Excel

    依赖

    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.5.6</version>
    </dependency>
    
    <!--Export as Excel-->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.1</version>
    </dependency>
    

    核心导出接口

    /**
     * @Author Heartsuit
     * @Date 2021-08-09
     */
    @RestController
    @RequestMapping("employee")
    public class EmployeeController {
        private final EmployeeService employeeService;
    
        public EmployeeController(EmployeeService employeeService) {
            this.employeeService = employeeService;
        }
    
        /**
         * 导出全量数据,实际一般为条件检索后导出
         * @param response
         * @throws IOException
         */
        @GetMapping("export-xls")
        public void exportExcel(HttpServletResponse response) throws IOException, ClassNotFoundException {
            ExcelWriter writer = ExcelUtil.getWriter();
            List<Employee> employees = employeeService.findAll();
    
            List<Map<String, Object>> rows = employees.stream().map(item -> {
                Map<String, Object> maps = new HashMap<>();
                maps.put("id", item.getId().toString());
                maps.put("name", item.getName());
                maps.put("age", item.getAge());
                maps.put("phone", item.getPhone());
                maps.put("createTime", item.getCreateTime().toString());
                return maps;
            }).collect(Collectors.toList());
    
            // Title
            int columns = Class.forName("com.heartsuit.springbootmybatis.oa.entity.Employee").getDeclaredFields().length;
            writer.merge(columns - 1, "员工信息");
    
            // Header
            writer.addHeaderAlias("id", "ID");
            writer.addHeaderAlias("name", "姓名");
            writer.addHeaderAlias("age", "年龄");
            writer.addHeaderAlias("phone", "电话");
            writer.addHeaderAlias("createTime", "时间");
    
            // Body
            writer.setColumnWidth(0, 30);
            writer.setColumnWidth(1, 30);
            writer.setColumnWidth(2, 30);
            writer.setColumnWidth(3, 30);
            writer.setColumnWidth(4, 30);
            writer.write(rows, true);
    
            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode("员工信息表-" + DateUtil.today() + ".xls", "utf-8"));
    
            ServletOutputStream out = response.getOutputStream();
            writer.flush(out, true);
            writer.close();
            IoUtil.close(out);
        }
    }
    

    测试接口:全量导出

    GET http://localhost:8000/employee/export-xls

    Note: 这里使用 GET 方式,方便测试,实际建议 POST

    测试1万条数据导出效率

    • 批量向数据表插入数万条数据,再次测试导出效率;
    • 其实,导出时间取决于查效率以及查出的总数据量(涉及写入Excel以及Excel传输两部分时间);

    批量写入数据接口:

    @Test
    void insertBatch() {
        SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();
    
        //可以执行批量操作的sqlSession, try...with...
        try (SqlSession openSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
            long start = System.currentTimeMillis();
            EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
            for (int i = 0; i < 10000; i++) {
                Employee employee = new Employee();
                employee.setName(UUID.randomUUID().toString().substring(0, 6));
                employee.setAge(new Random().nextInt(100));
                employee.setPhone(MobileNumber.generate(0));
                mapper.save(employee);
            }
            openSession.commit();
            long end = System.currentTimeMillis();
            System.out.println("执行时长" + (end - start));
        }
    }
    

    从数万条记录中导出1万条数据,秒级。

    导出效果

    2022-01-03-ExportExcel.jpg

    Source Code

    完整源码见 GitHubhttps://github.com/heartsuit/demo-spring-boot/tree/master/springboot-mybatis


    If you have any questions or any bugs are found, please feel free to contact me.

    Your comments and suggestions are welcome!

    展开全文
  • js导出excel插件

    热门讨论 2013-07-26 08:58:32
    js导出excel插件,需要配置为网站
  • unity导出XCode工程

    千次阅读 多人点赞 2022-02-17 11:53:10
    导出xcode工程 xcode工程目录结构如下: mac打开刚导出的xcode工程:双击Unity-iPhone.xcodeproj 设置自动签名 打包设置 info.plist中添加,以允许http访问 导入文件夹 导入文件 移除文件或文件夹 ...

    1.切换到ios平台

    在这里插入图片描述

    2.修改unity的PlayerSetting

    打开PlayerSetting,修改部分设置。其中BundelIdentifier和Version根据实际情况填写即可。
    在这里插入图片描述

    3.导出xcode工程

    点击Build,选择保存路径,导出XCode工程。

    展开全文
  • Java用freemarker导出word例子

    千次下载 热门讨论 2014-05-20 11:26:54
    Java用freemarker导出word例子详见我的博客
  • 数据导出流程设计

    千次阅读 2022-04-12 23:37:53
    导出流程设计
  • oracle11g数据库导入导出: ①:传统方式——exp(导出)和(imp)导入: ②:数据泵方式——expdp导出和(impdp)导入; ③:第三方工具——PL/sql Develpoer; 一、什么是数据库导入导出? oracle11g数据库的导入/导出,...
  • C#创建Excel文件并将数据导出到Excel文件

    千次下载 热门讨论 2014-05-11 00:30:41
    C#创建Excel文件并将数据导出到Excel文件,实现效果及细节参考: http://blog.csdn.net/testcs_dn/article/details/25509249
  • 前面我们介绍了 SpringBoot 中使用 JeecgBoot 的 Autopoi 导出 Excel,其实 Autopoi 的底层也是 EasyPoi,对于 Excel 的导入/导出也是非常方便的。那 EasyPoi 也是基于 POI 的,如果对这方面想要深究的,可以先看看...
  • 使用easyexcel导出

    千次阅读 2021-12-01 15:42:26
    easyexcel导出demo
  • vue导出Excel——elementUI表格导出功能

    千次阅读 2021-10-27 19:33:36
    elementUI表格导出功能
  • 实现一个配置简单功能强大的excel工具类搞定大多数导入导出. http://blog.csdn.net/lk_blog/article/details/8007777 http://blog.csdn.net/lk_blog/article/details/8007837 对于J2EE项目导入导出Excel是最普通和...
  • 说到导出 Excel,我们首先会想到 poi、jsxl 等,使用这些工具会显得笨重,学习难度大。今天学习使用 JeecgBoot 中的 Autopoi 导出 Excel,底层基于 easypoi,使用简单,还支持数据字典方式 一、开发前戏 1、引入 ...
  • sp导出贴图步骤_sp导出贴图

    万次阅读 2020-12-30 21:54:06
    翼狐网致力于推动CG艺术发展,为用户提供海量的CG视频教程,本节内容主要介绍次世代游戏模型《肩甲》从建模到成品教学之课时8:sp导出贴图注意事项. 零基础从入门到精因为一开始没注意修改预设,导致做完了才发现输出...
  • 轻松上手使用gs_dump和gs_dumpall命令导出数据

    千次阅读 多人点赞 2022-03-23 09:31:32
    openGauss提供的gs_dump和gs_dumpall工具,能够帮助用户导出需要的数据库对象或其相关信息。通过导入工具将导出的数据信息导入至需要的数据库,可以完成数据库信息的迁移。
  • 原标题:Sketch导入、导出使用方法和技巧介绍Sketch for mac是应用在Mac上的矢量绘图软件,Sketch Mac版以简约的设计是基于无限的规模和层次的绘图空间,调色板,面板,菜单,窗口和控件,虽然使用简单,它提供了...
  • Java实现Excel导入导出

    千次下载 热门讨论 2010-05-05 13:41:55
    Excel源代码,导入导出各种工具类 <groupId>org.apache.poi <artifactId>poi <groupId>org.apache.poi <artifactId>poi-scratchpad 代码实例: String path = ""; byte[] bytes; vo.setCurrentPage(0); vo....
  • oracle数据导出导入(exp/imp)

    千次阅读 2021-05-04 10:04:25
    1.本地数据库导入导出1.导出(运行---cmd中操作)exp 用户名/密码@数据库实例名file=本地存放路径eg: exp jnjp/jnjp@ORCL file=C:/jnjp.dmp2.导入imp 用户名/密码@数据库实例名file=本地数据库文件存放路径full=y ...
  • 使用pl/sql developer导出oracle数据库的表结构和表数据时,有一些勾选项供用户选择,需要用户根据实际情况进行勾选或取消。导出方法如下:一、只导出表结构1.使用pl/sql developer登陆数据库;2.选择Tools-》...
  • ORACLE dump文件导出或导入

    千次阅读 2022-03-31 22:11:06
    一、导出A服务器中表数据为dump文件 1.1.可以通过命令来导出指定表为dump文件,但是我是通过pl/sql来导出的,所以这种命令的方式也就没有深究。 1.2.通过pl/sql导出指定表dump文件 1.2.1.使用pl/sql远程连接A服务器...
  • MySQL 数据导入与导出

    万次阅读 2021-12-26 20:20:22
    MySQL 数据导入与导出 搜索(检索)路径 查看搜索路径 修改搜索路径 数据导入 什么是数据导出 命令格式 注意事项 例子 数据导出 什么是数据导出 命令格式 例子 MySQL 数据导入与导出 搜索(检索)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,237,637
精华内容 495,054
关键字:

导出