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

最近工作需要使用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);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值