您的位置:首页 > 其它

H2 dataBase Csv 使用(新手日志,仅用于记录,不建议参考)

2014-08-19 14:16 417 查看
最近工作需要使用H2 database,发现里面H2 database 里面Csv 挺好用的。使用时候遇到的问题,在这里记录一下,也算有个归档总结,以后便于参考

Csv里面提供了读和写两种基本方法,读取时候是也字符串类型向外读取。写的时候可以定义数据类型。

1、写

SimpleResultSet rs = new SimpleResultSet();
rs.addColumn("DEVICEID", Types.VARCHAR, 512, 0);

rs.addColumn("STARTTIME", Types.VARCHAR, 32, 0);
rs.addColumn("COL_NUMBER_1", Types.VARCHAR, 32, 6);
rs.addColumn("COL_NUMBER_2", Types.VARCHAR, 32, 6);
String de =null ;
String st ="";
Object [] objects ={ "de" ,new Timestamp(new Date().getTime()) ,de ,st };
rs.addRow(objects);
try {
new Csv().write("./result/test.csv", rs, null);
} catch (SQLException e) {

}


字符串 null 和 “”(空) 在csv里面存储是一样的 null 默认 ,, ; ""(空) 默认存储 ,"" 。

2、读取

第二个参数 String [] Column 传递参数 ,得到结果是不一样的, 当String [] Column 为空的时候,结果显示里面不会包含里面头的显示, 在重新组装Row时候可以根据 自己需要重新, 里面的colNames[] 是之前定义的重新排 列的顺序 ; 当String [] Column 不为空的时候,结果显示里面会有读取csv 里面头的显示,重新排序貌似也没有生效

ResultSet rs = new Csv().read(fileTemp.getAbsolutePath(), null, null);
while(rs.next()){
Object [] objects   = new Object [colNames.length] ;
for(int i =0;i<colNames.length;i++){
objects[i] = rs.getObject(colNames[i]);
//	System.out.print(objects[i]+"\t");
}
//System.out.println();
resultAll.addRow(objects);
}


h2 database里面读取数据文件,打算使用sql进行处理数据,必须连到内存数据上

由于读取出来都是字符串,可以使用cast 转换为自己需要的数据,或者直接将读取出来的数据 使用insert 插入到内存数据库里面

select    id  ,cast( col1 as number) as   col1    from csvread('{csvFileName}')
<span style="white-space:pre">			</span>conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
//ps.execute();
ResultSet rs = ps.executeQuery();
new Csv().write(filePath+".finally",rs,null);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: