根據mysql某一條記錄產生對應實體類的初始化

來源:互聯網
上載者:User

標籤:gpo   int   gen   檢查   static   imp   close   ble   fileread   

資料記錄必須如下格式(且最後一個逗號分隔字元的右邊不可為空)

OUB_SHIPMENT_HEADER_ID,SHIPMENT_NO,STATUS,STATUS_EXT,PRIORITY

12313412416491,GF1712262040050,100,0

 

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import com.test.data_provide.entity.OubShipmentHeader;public class Sql2Entity {        List<String> list= new ArrayList<String>();    List<String> listone= new ArrayList<String>();    List<String> listtwo= new ArrayList<String>();        public void toEntity(File rfile,File wfile,Class<?> obj,String entityInstance) throws IOException{        //讀取每一行到list        List<String> rlist=readTxt(rfile);        int count=0;        //迴圈讀取list的值        for(String l:rlist){            //"," split掉,有序的            String[] lArray=l.split(",");                        //再迴圈處理字串數組的每個值            for(int i=0;i<lArray.length;i++){                StringBuilder sb = new StringBuilder();                //處理第一行                if(count==0){                    //再"_"split掉,有序的                    String[] tArray= lArray[i].split("_");                    //再迴圈處理字串的每個值,首字母大寫,再拼接                                        for(int j=0;j<tArray.length;j++){                        sb.append(preWordCapital(tArray[j]));                    }                    listone.add(sb.toString());                }                //處理第二行value值                if(count==1){                                        listtwo.add(lArray[i]);                }                                                            }                                                                count++;            }        //拼接set方法        writeTxt(wfile,concatList(listone,listtwo,obj,entityInstance));            //writeTxt(wfile,listone);        //writeTxt(wfile,listtwo);    }        public void writeTxt(File file,List<String> list) throws IOException{                 FileWriter fw = new FileWriter(file,false);         BufferedWriter bw = new BufferedWriter(fw);                        for(String l:list){                    bw.write(l);                    bw.write("\r");            }            bw.close();            fw.close();                    }    public  static void main(String[] args) throws IOException {        File rfile = new File("D:/mytest1.txt");        File wfile = new File("D:/entity.txt");        Sql2Entity se= new Sql2Entity();        se.toEntity(rfile, wfile, OubShipmentHeader.class,"oubShipmentHeader");        /*se.readTxt(rfile);        List<String> list = new ArrayList<String>();        list.add("wode");        list.add("ren");        se.writeTxt(wfile,list);*/            }        public List<String> readTxt(File file){        List<String> list= new ArrayList<String>();         StringBuilder result = new StringBuilder();            try{                BufferedReader br = new BufferedReader(new FileReader(file));//構造一個BufferedReader類來讀取檔案                String s = null;                while((s = br.readLine())!=null){//使用readLine方法,一次讀一行                    //result.append(System.lineSeparator()+s);                    //System.out.println(s+"\n");                    list.add(s);                                    }                br.close();                }catch(Exception e){                e.printStackTrace();            }                                        return list;            }                public  String preWordCapital(String word){                String lowerWord = word.toLowerCase();                return  lowerWord.substring(0, 1).toUpperCase() + lowerWord.substring(1);            }        public List<String> concatList(List<String> listone,List<String> listtwo,Class<?> obj,String objInstance){                Field[] field = obj.getDeclaredFields();        System.out.println("listone.size() "+listone.size()+"  listtwo.size(): "+listtwo.size());        if(listone.size()!=listtwo.size()){            System.err.println("欄位與值的個數不對應,請檢查是否最後一個,分割符右邊為空白,必須保證最後一個,分割符右邊不為空白...");                    }        for(int i=0;i<listone.size();i++){                        int j=0;            for (j = 0; j < field.length; j++) {                field[j].setAccessible(true);                //System.out.println(field[j].getName());                if(field[j].getName().toString().equalsIgnoreCase(listone.get(i))){                    //System.out.println(listone.get(i));                    //System.out.println(field[j].getName().toString());                    break;                }            }                // 擷取屬性的類型                  String type = field[j].getGenericType().toString();                //String類型拼接                if(type.equals("class java.lang.String")){                    list.add(objInstance+".set"+listone.get(i)+"("+"\""+listtwo.get(i)+"\""+")");                }                //Int類型拼接                if(type.equals("class java.lang.Integer")){                    list.add(objInstance+".set"+listone.get(i)+"("+listtwo.get(i)+")");                }                //Long類型拼接                if(type.equals("class java.lang.Long")){                    list.add(objInstance+".set"+listone.get(i)+"("+listtwo.get(i)+"l"+")");                }                //BigDecimal類型拼接                if(type.equals("class java.math.BigDecimal")){                    list.add(objInstance+".set"+listone.get(i)+"("+"parames.getBigDecimalParams("+listtwo.get(i)+")"+")");                }                //Data類型拼接                if(type.equals("class java.util.data")){                    list.add(objInstance+".set"+listone.get(i)+"("+"parames.getDateParams()"+")");                }                //Byte類型拼接                if(type.equals("class java.lang.Byte")){                    list.add(objInstance+".set"+listone.get(i)+"("+"parames.getByteParams("+listtwo.get(i)+")"+")");                }                    }                        return list;            }}

 

根據mysql某一條記錄產生對應實體類的初始化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.