欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java導(dǎo)出csv方法實(shí)現(xiàn)講解

 更新時(shí)間:2013年12月02日 11:46:51   作者:  
這篇文章主要介紹了java導(dǎo)出csv的方法,客戶要求在項(xiàng)目中有導(dǎo)出CSV文件的功能,并且給出了如何在不知道如何在不知道對象類型(沒有應(yīng)用泛型)的List中如何得到對象的屬性值,下面就詳細(xì)說下這個(gè)功能是如何實(shí)現(xiàn)的

首先,通過ibatis中的sql語句查詢出所要得到的記錄,并將其存放在List中:

復(fù)制代碼 代碼如下:

List<?> results = this.reportService.getArrayBeanReportDataSource(super.getQuery_sql_csv(), query_obj);

這樣的情況下,因?yàn)槲覀兪且獙懝卜椒?,所以使用?而沒有使用一個(gè)確定的類型來標(biāo)注。

所以才需要使用反射從List里取出的對象的屬性值。

復(fù)制代碼 代碼如下:

String[] Column = super.getReport_data_column().split(",");

這句得到需要得到的屬性,通過spring的注入實(shí)現(xiàn)。

復(fù)制代碼 代碼如下:

StringBuffer sb = new StringBuffer();
Field[] fields = query_obj.getClass().getDeclaredFields();

通過getDeclaredFields();方法來獲取對象中聲明的屬性。

然后,首先將需要的屬性和所有的屬性進(jìn)行比較,因?yàn)楹竺娴牟僮魇窃谛枰膶傩韵庐a(chǎn)生的,如果沒有比較的話,導(dǎo)出的CSV文件中出現(xiàn)很多的空列,這個(gè)道理很容易想明白。
另外,還要注意,聲明的屬性在聲明為private的時(shí)候,必須利用setAccessible()方法來設(shè)置其值可以取出。

最后,利用循環(huán)將各列的值用逗號分隔開寫入文件就OK了。

復(fù)制代碼 代碼如下:

for(Object object : results) {
    try{
        Field.setAccessible(fields, true);
        for(int i=0;i<Column.length;i++){
            for(int j=0;j<fields.length;j++){
                if(fields[j].getName().equals(Column[i])){
                    if(i!=(Column.length-1)){
                                sb.append((fields[j].get(object)==null?"":fields[j].get(object))+",");
                                break;
                    }else{
                                sb.append((fields[j].get(object)==null?"":fields[j].get(object))+"\r\n");
                                break;
                    }
                    }
                    }
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }  

相關(guān)文章

  • java實(shí)現(xiàn)停車場系統(tǒng)

    java實(shí)現(xiàn)停車場系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)停車場系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • JDK環(huán)境變量配置教程分享

    JDK環(huán)境變量配置教程分享

    這篇文章主要為大家分享了JDK環(huán)境變量配置教程,JDK環(huán)境變量的配置,是java開發(fā)中必備的配置
    2016-05-05
  • 你知道將Bean交給Spring容器管理有幾種方式(推薦)

    你知道將Bean交給Spring容器管理有幾種方式(推薦)

    Spring核心是?IOC?和?AOP?,我們在Spring項(xiàng)目中,我們需要將Bean交給Spring容器,也就是IOC管理,這樣你才可以使用注解來進(jìn)行依賴注入,這篇文章主要介紹了你知道將Bean交給Spring容器管理有幾種方式,需要的朋友可以參考下
    2022-10-10
  • Java 實(shí)現(xiàn)限流器處理Rest接口請求詳解流程

    Java 實(shí)現(xiàn)限流器處理Rest接口請求詳解流程

    在工作中是否會碰到這樣的場景,高并發(fā)的請求但是無法全部執(zhí)行,需要一定的限流。如果你是使用的微服務(wù)框架,比如SpringCloud,可以使用Gateway增加限流策略來解決。本篇文章是在沒有框架的情況實(shí)現(xiàn)限流器
    2021-11-11
  • Java實(shí)現(xiàn)Redis延時(shí)消息隊(duì)列

    Java實(shí)現(xiàn)Redis延時(shí)消息隊(duì)列

    本文主要介紹了Java實(shí)現(xiàn)Redis延時(shí)消息隊(duì)列,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MyBatis攔截器分表實(shí)踐分享

    MyBatis攔截器分表實(shí)踐分享

    部門內(nèi)有一些億級別核心業(yè)務(wù)表增速非???增量日均100W,但線上業(yè)務(wù)只依賴近一周的數(shù)據(jù),隨著數(shù)據(jù)量的迅速增長,慢SQL頻發(fā),數(shù)據(jù)庫性能下降,系統(tǒng)穩(wěn)定性受到嚴(yán)重影響,本篇文章,將分享如何使用MyBatis攔截器低成本的提升數(shù)據(jù)庫穩(wěn)定性,需要的朋友可以參考下
    2024-01-01
  • Intellij?IDEA如何修改配置文件位置

    Intellij?IDEA如何修改配置文件位置

    這篇文章主要介紹了Intellij?IDEA--修改配置文件位置,文章末尾給大家介紹了Intellij?IDEA--宏的用法記錄操作過程,對此文感興趣的朋友跟隨小編一起看看吧
    2022-08-08
  • Spring?boot整合jsp和tiles模板示例

    Spring?boot整合jsp和tiles模板示例

    這篇文章主要介紹了Spring?boot整合jsp模板和tiles模板的示例演示過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值

    Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值

    這篇文章主要介紹了Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • idea中如何創(chuàng)建scala項(xiàng)目

    idea中如何創(chuàng)建scala項(xiàng)目

    idea中創(chuàng)建scala項(xiàng)目有三種方式1.通過maven;2.通過idea;3.通過sbt的方式;本文就每種方法通過圖文并茂的形式給大家詳細(xì)介紹,需要的朋友參考下吧
    2021-07-07

最新評論