项目中的一些问题


1:Java写csv文件时关于逗号的问题

       最近有个报表存在效率问题,客户又不愿意缩短统计时间,便尝试将报表由excel转换为csv,转换过程中发现了逗号的问题。

       CSV文件由任意数目的记录组成,记录间以某种换行符分隔(一般为逗号)。那么很显然,一条记录中出现逗号时,csv会将该信息解析为两条信息。势必要对逗号进行特殊处理,处理方法如下:列内容如存在半角逗号(即,)则用半角双引号(即"")将该字段值包含起来。而字段内部的引号必须在其前面增加一个引号来实现文字引号的转码.

在Java中"有要用\"来转义,写入常量时格式为:"\"XXXXX ,XXXXXXX\"",写入变量时格式为:"\""+XXXXX+"\"",java示例代码如下:(如果插入的值都是数字,逗号前/后要加个空格,要不然在excel中打开时会有格式问题,即逗号会被解析为千位分隔符)

        try {
			File csv = new File("C:\\writers.csv"); // CSV文件 List写C:\\test.csv
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csv), "GBK"));
			List list=new ArrayList();
			list.add("qqq");
			list.add("www");
			bw.write("\"333333333 ,3333333333333"+\"");
			bw.write("\""+list.get(0) +","+list.get(1)+"\"");
			bw.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}


2:oracle  not  in问题

     做一个简单的查询

select distinct b.code from asset_sys_cost_center b where b.code not in (select a.code from hr_users a),


但是查询结果为空,完全不符合预期,查不到原因,无奈之后又写了个替代语句

select distinct b.code from asset_sys_cost_center b where not exists (select 1 from hr_users a where a.code=b.code),

查询出的结果符合预期,更是不解,经百度,才知道,原来not in  中的结果集,如果存在空的话,那么查出的结果集就是空。

唉,孤陋寡闻了。


3:sql注入

  sql注入的原理和危害什么的,就不说了,简单记一下我自己感觉各异防止sql注入的方法

     1:使用ajax,不显示实际URL
     2:加密所有参数,后台再解密。
     3:将所有参数加密成一个新的参数,同时传递给后台。
     4: 使用PreparedStatement



4:装饰器模式
     简单总结就是:一个被装饰接口,一个简单实现该结构的被装饰类,一个装饰接口,一群实现了装饰接口的装饰类。Java  中i/o便是这中模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值