批处理逻辑+sql语句+xls输出+bigDecimal

来源:互联网 发布:csi网络犯罪第一季 编辑:程序博客网 时间:2024/05/28 05:19

前几日在工作中听到,看到一些专业技术,比如批处理,报表,根本就不了解是什么,看到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了,结束


。。。貌似不懂得时候看起来很复杂,用起来其实很简单







0 0