前言:总体流程来说数据库数据导出到pgc其实并不复杂,只需要导出mdb格式最终修改文件的后缀pgc格式可以,下面是jdk8导出mdb格式流程:(如果有相似之处,那纯粹是意外,我也在csdn看了很多文章总结 属于自己的一套工具)
public class AccessUtil{ ///这条路径是需要定义的导出路径和文件名称, //不知道能不能用默认的,自己写方便自己后续搜索 String dbPath = "F:/NewDB.mdb" //我使用的方法是先创建Access链接,然后在里面编辑表信息 public void buiderAccess()throw Exception{ //DatabaseBuilder.create 顾名思义,这种方法是创造的, 里面还有一个open下面将详细说明 //创建Database链接 Database db = DatabaseBuilder.create(Database.FileFormat.V2000, New File(dbPath); { ///这是定义表和表中的字段并创建最终字段.toTable才是创建 Table table = new TableBuilder("表名") .addColumn(new ColumnBuilder("字段名") .setSQLType(Types.VARCHAR"这是字段类型") .tocolumn()) .toTable(db); ////这里最基本的创造mdb文件和创建表已经完成 //table.addRow(); 这种方便只能添加字符串和字段对应的值 , 隔开 table.addRow("字段值1,字段值2,字段值3"); } //close; db.close; } }
这里最基本的创作mdb它已经完成了,但它不能满足公司的要求。毕竟,我们不仅要导出一张手表,还要导出一张手表中的字段和值。手写很麻烦。以下是我带来的高级版本。代码不一定是最好的性能,但它可以完成多表创建和字段赋值。
事实上,创建多表并不是很麻烦。总体思路是根据创建链接找到DatabaseBuilder里另有一个open方法,create是创建,open它是打开的,我们按照创建文件的路径打开文件,然后编辑,代码如下:
/** * tableName 表名 * columnName 字段名 * columnValue 字段值 * dbpath 文件路径 */ public void openMDB (String tableName,List<String> columnNames,List<String> columnNames)throw Excpetion{ ///先打开mdb文件 //注意open() 方法中的参数和create()不同 Database db = DatabaseBuilder.open(new File(dbPath));{ //创建tableBuilder TableBuilder tableBuilder = new TableBuilder(tableName); ///创建字段名 ///我在这里多次创建循环,但有一个漏洞,所有字段类型都是一样的varChar if(columnName!=null && columnName.size>0){ for(int i = 0; i<columnNames.size();i ) tableBuilder.addColunmn(new ColumnBuilder(columnNames.get(i)).setSQLType(Types.VARCHAR).toColumn); ///创建字段后开始赋值 //table 里面有addRow("") 传String字符串可以,也有addRows传List就行 //当然也有addRowFromMap 传map Table table = tableBuilder.toTable(db); if(columnNames!=null && columnNames.size>0){ table.addRows(columnNames); } } 最后一定要记住close; db.close(); } }
基本的想法可能是这样的,先到这里。如果有优化,将继续更新,个人观点仅供参考