「javapoi反射」JAVA 反射

博主:adminadmin 2023-01-01 22:48:05 682

今天给各位分享javapoi反射的知识,其中也会对JAVA 反射进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java程序员最常用的技术有哪些

Java的技术体系是非常庞大的,需要我们学习的技术非常多,往往很多初学的人,通过互联网查阅了一个庞大的学习列表,然后不知道如何下手。网上很多大牛列的技术不是不重要,但是掌握住企业应用的Java的核心技术,快速上手,是一种高效的学习手段。结合本人十余年的项目研发和带人经验,整理出如下方面。

首先JavaSE是核心,这是初学Java人员应最先接触学习的部分。Java的运行原理,jdk的配置,与jre的区别,基本数据类型,流程控制(顺序结构、选择结构、循环结构),数组、集合框架,异常处理等,这些都是比较容易学习的,需要多练习,在练习过程中加强理解。面向对象部分是Java初学者,尤其是没有任何编程语言基础的学起来有些难度,类、对象、继承、封装、多态等技术点需要多参照些现有的设计模型,学习设计的思路。诸如工厂模式、观察者模式、代理模式等重要的设计模式也是需要学习的,否则在将来应用框架时就会只知其然,不知其所以然。IO流、多线程也一定需要学习,尤其是XML、JSON等文件格式一定要掌握,这在数据交互时常用。

其次是数据库知识,作为初级Java程序员必须要掌握一种常用的关系型书库的应用,如MySQL或oracle等,数据库对象诸如表、视图等的创建、增删改查语句,尤其是查询,在企业中经常需要从十几张表、或几十张表中查询数据,所以对于如何进行内连接、外连接、以及联合查询等一定要掌握,另外对于索引、事务等也要掌握。

第三是Java Web部分,由于Java主要做web开发,一些前端技术HTML3、CSS5,javaScript,jQuery等这些不见得要学得有多深入,但是必须要掌握,tomcat、jsp,以及和数据库的交互这些都是必须要掌握的。

第四是框架部分,主流的ORM框架有Mybatis、hibernate,MVC框架有Spring MVC、Struts2等,可以优先掌握主流的SSM框架组合,框架的学习有人认为很简单,就按照规定、规范调用、使用呗,初学者可以先学习如何使用这些框架,然后慢慢的探究内部原理,因为框架是技术封装、简化的产物。

这里面有些同类型的技术比如hibernate,如果会使用Mybatis了,那么上手就会很容易,同理如果Spring MVC框架应用熟练了,那么Struts2框架其实就可以现学现卖了。

一个web程序包含的模块很多,不一定包括所有模块。

系统模块:Windows、Linux系统等。

存储模块:这里既包括关系型数据库MySQL、oracle等,也包括内存数据库redis、memcached等。

程序模块:还可以细化成持久化模块、业务逻辑模块、表现层模块,MVC框架的实现。

搜索模块:应用solr或Elasticsearch等。

服务器模块:tomcat、weblogic、Resion等

中间件模块:nginx、MQ消息队列技术等。

在这里额外说一下技术和技能的区别,初学者学一个技术可能很容易,但是这个技术如何在企业开发环境中应用这就是技能了,所以在学习的同时,要多应用,最好通过一些案例项目来学习,这样既高效,学习的还扎实。

补充一点,现在的应用级别越来越大,海量数据、高并发是处理的重点,单应用的程序已经无法满足要求,分布式是趋势,Dubbo、Zookeeper、Docker、SpringBoot、SpringCloud、MyCat等技术,包括上面系统模块里提到的一些技术都要学习的。

java用poi实现将数据库里面的数据导入已经存在的excel模板中。最好有实例参考,谢谢。

/**

     * 通过EXCEL模板导入团队信息

     */

    @ResponseBody

    @RequestMapping("importTemp")

    public MapString,String importTemp(HttpServletRequest request,HttpSession session,

              @RequestParam(value="excel", required=false) MultipartFile file, HttpServletResponse response ) {

        Yhb yhb=(Yhb)session.getAttribute(WebConstants.CURRENT_USER);

        String zjr = yhb.getYhid();

        ListDrTdb tdxxList = new ArrayListDrTdb();

        MapString,String map = new HashMapString,String();

        String sfcg = "1";

        String bcghs = "";

        String bcgyy = "";

        HSSFWorkbook workbook = null;

        try {

            workbook = new HSSFWorkbook(file.getInputStream());

            HSSFSheet sheet = workbook.getSheetAt(0);  

            if (sheet != null)  

            { 

              int d= sheet.getPhysicalNumberOfRows();

               other: for (int i = 7; i  sheet.getPhysicalNumberOfRows(); i++)  

                {  

                    sfcg = "2";

                    HSSFRow row = sheet.getRow(i);  

                    DrTdb td = new DrTdb();

                    int rs = 1;

                    //td.setTdbm("T"+DateUtil.CurrentTime("MM-dd"));

                    td.setZjr(zjr);

                    for (int j = 0; j  8; j++)  

                    {  

                        HSSFCell cell = row.getCell(j);  

                        if(j == 0){

                            if(cell != null){

                                String cellStr = cell.toString();  

                                if(isDigit(cellStr) != ""){

                                    String NDID = (String) tdglService.queryForObject("tdExcel.queryNd",isDigit(cellStr));

                                    td.setNd(NDID);

                                }else{

                                    sfcg = "0";

                                    bcghs = String.valueOf(i+1);

                                    bcgyy = "请填写正确的年度";

                                    break other;

                                }

                            }else{

                                sfcg = "0";

                                bcghs = String.valueOf(i+1);

                                bcgyy = "年度不可为空";

                                break other;

                            }

                        }else if(j == 1){

                            if(cell != null){

                                String cellStr = cell.toString();

                                String YXID = (String) tdglService.queryForObject("tdExcel.queryIdByYx",cellStr);

                                String YXDM = (String) tdglService.queryForObject("tdExcel.queryDmByYx",cellStr);

                                if(YXDM==null || YXDM==""){

                                    sfcg = "0";

                                    bcghs = String.valueOf(i+1);

                                    bcgyy = "院系不存在";

                                    break other;

                                }

                                td.setSsyx(YXID);

                                //设置团队编码

                                String currentYear = DateUtil.CurrentTime("yyyy");//当前年份    

                                String  tdbm="";

                                String str=null;

                                str="T"+currentYear+YXDM;

                                String maxID = (String) tdglService.queryForObject("tdgl.queryMaxID", str);//当前团队最大ID

                                String str_q=   maxID.substring(1);

                                int  MAXID=Integer.parseInt(str_q); //将返回的字符串去掉T

                                tdbm="T"+(MAXID+1);

                                td.setTdbm(tdbm);

                            }else{

                                sfcg = "0";

                                bcghs = String.valueOf(i+1);

                                bcgyy = "院系不存在";

                                break other;

                            }

                        }else if(j == 3){

                            if(cell != null){

                                String cellStr = cell.toString();

                                String[] zdjs = cellStr.split(",");

                                for(int in = 0; in  zdjs.length; in ++){

                                    zdjs[in] = zdjs[in].substring(1,zdjs[in].length()-1);

                                    //zdjs[in]=isDigit(zdjs[in]);

                                    zdjs[in] = (String) tdglService.queryForObject("tdExcel.queryIdByZgh",zdjs[in]);

                                    if("".equals(zdjs[in]) || zdjs[in] == null){

                                        sfcg = "0";

                                        bcghs = String.valueOf(i+1);

                                        bcgyy = "教师编号有误";

                                        break other;

                                    }

                                }

                                td.setZdjs(zdjs);

                            }else{

                                sfcg = "0";

                                bcghs = String.valueOf(i+1);

                                bcgyy = "指导教师不可为空";

                                break other;

                            }

                        }else if(j == 5){

                            if(cell != null){

                                String cellStr = cell.toString();

                                cellStr = cellStr.substring(1,cellStr.length()-1);

                                // BigDecimal bg=new BigDecimal(cellStr);

                                 //cellStr=bg.toPlainString();

                                cellStr = (String) tdglService.queryForObject("tdExcel.queryIdByXh",cellStr);

                                

                                if("".equals(cellStr) || cellStr == null){

                                    sfcg = "0";

                                    bcghs = String.valueOf(i+1);

                                    bcgyy = "团队组长学号有误";

                                    break other;

                                }

                                else{

                                    String Tdid = (String) tdglService.queryForObject("tdExcel.queryryid",cellStr);

                                    String XM = (String) tdglService.queryForObject("tdExcel.queryXmBy",cellStr);

                                    if( Tdid!= null){

                                        sfcg = "0";

                                        bcghs = String.valueOf(i+1);

                                        bcgyy = "团队组长"+XM+"已存在";

                                        break other;

                                    }

                                }

                                td.setTdzz(cellStr);

                            }else{

                                sfcg = "0";

                                bcghs = String.valueOf(i+1);

                                bcgyy = "团队组长不可为空";

                                break other;

                            }

                        }else if(j == 7){

                            if(cell != null){

                                String cellStr = cell.toString();  

                                String[] tdzy = cellStr.split(",");

                                for(int k = 0; k  tdzy.length; k++){

                                    tdzy[k] = tdzy[k].substring(1,tdzy[k].length()-1);

                                    tdzy[k] = (String) tdglService.queryForObject("tdExcel.queryIdByXh",tdzy[k]);

                                    if("".equals(tdzy[k]) || tdzy[k] == null){

                                        sfcg = "0";

                                        bcghs = String.valueOf(i+1);

                                        bcgyy = "团队组员学号有误";

                                        break other;

                                    }

                                    rs++;

                                }

                                td.setTdzy(tdzy);

                            }else{

                                sfcg = "0";

                                bcghs = String.valueOf(i+1);

                                bcgyy = "团队组员不可为空";

                                break other;

                            }

                        }

                    }  

                        td.setRs(String.valueOf(rs));

                        tdxxList.add(td);

                }  

            }  

        }catch(IOException e){

            e.printStackTrace();

        }

        if("2".equals(sfcg)){

            

            

            for(DrTdb tdxx : tdxxList){

                tdglService.insert("tdExcel.addTdxx", tdxx);

                tdglService.insert("tdExcel.addTdzz", tdxx);

                tdglService.insert("tdExcel.addTdzy", tdxx);

                tdglService.insert("tdExcel.addZdjs", tdxx);

            }

            

        }

        map.put("sfcg",sfcg );

        map.put("bcghs",bcghs );

        map.put("bcgyy",bcgyy );

        return map;

    }

看不懂留言

Java用POI读Excel,读出的数据如何放在一个实体数组中,给个思路,不要说一个一个的set进去,简单点的,谢

实际上还真就得一个一个set进去

我现在做的程序就有这部分机能,思路就是excel→sheet→row

然后遍历所有row,取出所有的cell放到一个存储用结构体中。

无论如何,解析的过程都需要自己来写的。

=======================================================

你的想法我明白,其实就是想要一个java与poi的databinding,定义好的数据模块可以自动和excel的对应列进行匹配。但是这个东西确实就没有啊,人家只封装了读取excel内容,没有提供这样的模块,只有自己写啊。即使是60个列,事实上绑定的逻辑也就只用写一次,而且大部分的内容只要复制粘贴就好了。

如果像下面说的做循环,赋值简单了,可是用的时候就痛苦了,要取某一个字段的时候难道要用数组下标去取?

PS 鄙视5楼的,人家要的是数据导入,拷贝一段倒出的处理来。

javapoi反射的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JAVA 反射、javapoi反射的信息别忘了在本站进行查找喔。