批处理逻辑+sql语句+xls输出+bigDecimal
2015-11-22 20:18
375 查看
前几日在工作中听到,看到一些专业技术,比如批处理,报表,根本就不了解是什么,看到xls下载觉得很神奇,不知为何,还有bigDecimal不知如何使用的,苦于公司无网络。
今日对这些知识点进行了初步的学习,好便于工作中学习公司框架时好上手,在此复习今日成果。
1.批处理逻辑 : 借鉴的对象是spring batch 只看了入门篇(也就是HelloWorld) ,理解后,原理其实很简单:
首先创建一个对象为 Employee {
private string id;
private string name;
private string job;
private string gender;
private string age;
} //省略get ,set
(1) 定义配置文件以说明,给 job一个id ,也就是可以在spring内调这个(job也就是这个批处理的统称)。
(2) 文件比如说 row.csv (这货也就是原始数据),也是在(1)的配置文件内定义的(定义路径)。
(3) 定义ItemReader 也是在一个 read.xml 内定义的。(主要定义内容为,字段以什么分隔,还有字段名字,读好后存到哪个对象 PS:
1, 赵云,武将,男,25
2, 张飞,武将,男,27
这个就是用 逗号 分隔 对应names 的字段为 : id , name , job ,gender ,age (会变成List<Employee>)
)
(4) 刚才第三步时候我们得到了 List<Employee> employees 对象了。
当然,以下代码的 employeeProcessor 也必须在 xml 内定义(spring,凡是用到的功能都要定义,你懂的)
此时定义 public class EmployeeProcessor implements ItemProcessor<Employee,Employee>{
public Employee process (Employee employee ) thorws Excepition {
System.out.println(employee.toString);
return employee; //这里就打印一下 ,这个类似aop 你可以对employee随便干嘛
}
}
(5) 定义ItemWriter
就是写,把这堆处理好的 employee 对象通通写进csv文件里,刚才就是从csv文件里拿的,现在写回去 ,定义和ItemReader相似 ,用什么分隔比如逗号,写入行的顺序,按配置顺序 <bean:value>job</bean:value>
<bean:value>name</bean:value>
就是: 武将,赵云
武将,张飞
(6) 执行test ( junit4 )方法后,程序执行就ok了
2. sql语句 ,今日自学了 case的sql语句 ,之前老师没教。。。
举个例子 select
sum (case when price>=50 then 1 else 0 end ) as highprice ,
sum (case when price between 11 and 49 then 1 else 0 end ) as middleprice ,
sum (case when price <=10 then 1 else 0 end ) as lowprice ,
from shop;
3. xls 输出
这个就是用工具,自己写估计要蛋疼死。
用JXL 或 POI 这个用法基本相似,主要流程就是
(1) 用WritableWorkBook book= WorkBook.createWorkBook 方法 传入 文件路径 ,文件名 ,创建 XXX.xls
(2) 用WritableSheet sheet= book.createSheet 方法传入第几个表,和表名字 ,就是用wps打开xxx.xls 文件后,左下角内可以在xxx.xls文件内创建多个页面,也就是多个表。这里比如说传入(0,“ 第一页”),就是创建了第一页了。
(3) 然后就是创建Label label =new (0,0,"我是0,0格");
sheet.addCell(label);
就完成创建了,只是目前还在缓存里。
(4) book.write();
book.close();
好结束收工。
4. 通过baidu学习了一下bigDecimal (其实我个人喜欢 google 只是和 google 总是异地恋,压根上不去,只好找百度了)
new一个bigDecimal对象 ,BigDecimal a =new BigDecimal(22);
BigDecimal b = new BigDecimal(33);
BigDecimal c = a.substract(b);
这样 c 就是 -11了,结束
。。。貌似不懂得时候看起来很复杂,用起来其实很简单
今日对这些知识点进行了初步的学习,好便于工作中学习公司框架时好上手,在此复习今日成果。
1.批处理逻辑 : 借鉴的对象是spring batch 只看了入门篇(也就是HelloWorld) ,理解后,原理其实很简单:
首先创建一个对象为 Employee {
private string id;
private string name;
private string job;
private string gender;
private string age;
} //省略get ,set
(1) 定义配置文件以说明,给 job一个id ,也就是可以在spring内调这个(job也就是这个批处理的统称)。
(2) 文件比如说 row.csv (这货也就是原始数据),也是在(1)的配置文件内定义的(定义路径)。
(3) 定义ItemReader 也是在一个 read.xml 内定义的。(主要定义内容为,字段以什么分隔,还有字段名字,读好后存到哪个对象 PS:
1, 赵云,武将,男,25
2, 张飞,武将,男,27
这个就是用 逗号 分隔 对应names 的字段为 : id , name , job ,gender ,age (会变成List<Employee>)
)
(4) 刚才第三步时候我们得到了 List<Employee> employees 对象了。
当然,以下代码的 employeeProcessor 也必须在 xml 内定义(spring,凡是用到的功能都要定义,你懂的)
此时定义 public class EmployeeProcessor implements ItemProcessor<Employee,Employee>{
public Employee process (Employee employee ) thorws Excepition {
System.out.println(employee.toString);
return employee; //这里就打印一下 ,这个类似aop 你可以对employee随便干嘛
}
}
(5) 定义ItemWriter
就是写,把这堆处理好的 employee 对象通通写进csv文件里,刚才就是从csv文件里拿的,现在写回去 ,定义和ItemReader相似 ,用什么分隔比如逗号,写入行的顺序,按配置顺序 <bean:value>job</bean:value>
<bean:value>name</bean:value>
就是: 武将,赵云
武将,张飞
(6) 执行test ( junit4 )方法后,程序执行就ok了
2. sql语句 ,今日自学了 case的sql语句 ,之前老师没教。。。
举个例子 select
sum (case when price>=50 then 1 else 0 end ) as highprice ,
sum (case when price between 11 and 49 then 1 else 0 end ) as middleprice ,
sum (case when price <=10 then 1 else 0 end ) as lowprice ,
from shop;
3. xls 输出
这个就是用工具,自己写估计要蛋疼死。
用JXL 或 POI 这个用法基本相似,主要流程就是
(1) 用WritableWorkBook book= WorkBook.createWorkBook 方法 传入 文件路径 ,文件名 ,创建 XXX.xls
(2) 用WritableSheet sheet= book.createSheet 方法传入第几个表,和表名字 ,就是用wps打开xxx.xls 文件后,左下角内可以在xxx.xls文件内创建多个页面,也就是多个表。这里比如说传入(0,“ 第一页”),就是创建了第一页了。
(3) 然后就是创建Label label =new (0,0,"我是0,0格");
sheet.addCell(label);
就完成创建了,只是目前还在缓存里。
(4) book.write();
book.close();
好结束收工。
4. 通过baidu学习了一下bigDecimal (其实我个人喜欢 google 只是和 google 总是异地恋,压根上不去,只好找百度了)
new一个bigDecimal对象 ,BigDecimal a =new BigDecimal(22);
BigDecimal b = new BigDecimal(33);
BigDecimal c = a.substract(b);
这样 c 就是 -11了,结束
。。。貌似不懂得时候看起来很复杂,用起来其实很简单
相关文章推荐
- 怎么提高ArcSDE 写入地理数据库的效率
- SQL server 时间日期函数、类型转换
- Oracle 中Merge into 的用法
- 将VF的dbf文件导入到oracle数据库的方法
- mysql性能优化学习笔记(6)数据库配置优化&硬件优化
- mysql性能优化学习笔记(5)数据库结构优化
- SQL server聚合函数、数学函数、字符串函数
- mysql性能优化学习笔记(4)索引的优化
- mysql性能优化学习笔记(3)常见sql语句优化
- MySQL命令大全
- SQL Server中drop、truncate和delete语句的用法
- 数据库表如何插入数据?
- wamp环境PHP安装mongodb扩展
- Oracle函数列表速查
- 在基于Mybatis持久层框架,使用数据库事务时,插入一条数据后,无法返回主键ID的问题研究
- Django 数据库键值处理
- 非链接方式访问数据库--查询的数据集用Dataset来存储。
- 利用TOAD实现EXCEL数据在oracle的导入导出
- openstack用bosh部署cloudfoundry(六)---添加mysql服务
- Oracle 常用SQL技巧收藏