java jdk8 导出pgc格式/mdb格式

前言:总体流程来说数据库数据导出到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();
        }
    }

        基本上的思路大概就是这个样子,就先到这里了。如有优化会继续更新,个人观点仅供参考

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值