阿郎的技術搏客

          成長軌跡

          根據手機查詢歸屬地的批處理程序

          import java.sql.*;
          import java.io.*;
          import java.util.logging.Logger;
          class Mobile_area
          {
           public static void main(String[] args)
           {
               try
            {
            String address = "jdbc:odbc:mobile_area";
             //驅動類型+目標數據庫ip+數據庫端口
            
            try {
               Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
               System.out.println("已經成功連接手機歸屬地數據庫。");}
            catch (ClassNotFoundException cnfe) {
               System.out.println("連接手機歸屬地數據庫失敗!請參考‘readme.txt’文件的描述進行配置!");}
            String user="sa";//數據庫用戶密碼
            String passwd="";//口令
            String database = "mobilezip";//目標數據庫
            Logger log = Logger.getLogger("Mobile_area");
            //if (log==null) log= Logger("Mobile_area","mobile_area.log");
            Connection con = DriverManager.getConnection(address,user,passwd);//建立鏈接
            con.setCatalog(database);//確定目標數據庫
            Statement smt =con.createStatement();
            Statement insert_smt =con.createStatement();
            Statement insert_smt_pre =con.createStatement();

            String selCode = "";//查詢語句
            String import_file="mobile.txt";
            String mobile_pre="";
            String mobile_area="";
            String city="";
            String privince="";
            String mobile_num;
            ResultSet res,rs;

            System.out.println("提示:您需要處理的文件必須放在應用程序所在的目錄中,否則無法處理");
            System.out.println("      進度狀態的含義: '.'代表當前的手機號碼已經處理過;'0'代表成功查找并插入該手機號碼的歸屬地信息;'x'代表處理失敗");
            System.out.println("請您輸入需要處理的文件名稱:");
               DataInputStream inputFilename =
                new DataInputStream(
                  new BufferedInputStream(System.in));
               try {
            String tmp="";
                  if((tmp = inputFilename.readLine()).length()>0) import_file =tmp ;
                  System.out.println("您需要處理的文件名為:"+import_file+",處理即將進行......");
               } catch(IOException e) {
                  System.out.println("您輸入的文件異常!請檢查您指定的文件是否當前的目錄存在。");
               }
           
            System.out.println("如您沒有輸入需要處理的文件,默認的處理文件名稱為:"+import_file);

               DataInputStream in =
                  new DataInputStream(
                    new BufferedInputStream(
                      new FileInputStream(import_file)));
                String s, s2 = new String();

             System.out.println("|手機號碼\t|手機區段\t|手機區號\t|城市\t|省市|");//輸出此條記錄的查詢結果
             int i=0;
             String insert_sql="";
                while((s = in.readLine())!= null)
              {  
               mobile_num=s;
               if(s==null) s="";
               if(s.length()>10)
                 s=s.substring(0,7);
               else
              s="88888888888";
                  selCode="SELECT Mobile_area.mobile, Mobile_area.zip, Mobile_area.city, Mobile_area.state FROM Mobile_area WHERE ((Mobile_area.mobile)="+ s +")";
                     //System.out.println(selCode);
               res = smt.executeQuery(selCode);//結果集
                     if(res.next())
                    {    //從第一條往后依次取結果集中的記錄

                          mobile_pre =  res.getString(1);//等同rs.getString("userId"),即第一個字段數據
                          mobile_area = res.getString(2);//同上,第二個字段,全部取其為String類型
                          city =  res.getString(3);//等同rs.getString("userId"),即第一個字段數據
                          privince = res.getString(4);//同上,第二個字段,全部取其為String類型
                          //若是中文字段,一般需要轉碼
                          //userName = new String(userName.getBytes("ISO-8859-1"),"gb2312");
                          if(i<=100)
                          System.out.println("|"+mobile_num+"\t|"+mobile_pre+"\t|"+mobile_area+"\t|"+city+"\t|"+privince+"|");//輸出此條記錄的查詢結果
              //log.info("|"+mobile_num+"\t|"+mobile_pre+"\t|"+mobile_area+"\t|"+city+"\t|"+privince+"|") ;

              String insert_sql_pre="select count(mobile_num)  from mobile_area_insert where mobile_num='"+mobile_num+"'";
                          rs=insert_smt_pre.executeQuery(insert_sql_pre);
              int rcount=0;
              if(rs.next()){
                           rcount=rs.getInt(1);}
                          rs.close();//釋放資源
              if(rcount==0)
              {
              insert_sql="insert into mobile_area_insert(mobile_num,mobile,zip,city,state) values('"+mobile_num+"','"+mobile_pre+"','"+mobile_area+"','"+city+"','"+privince+"')";
                          int j=insert_smt_pre.executeUpdate(insert_sql);
              if(i>100)
               {
                if(j>0) System.out.print("0");
                else System.out.print("x");
                if(i%50==0) System.out.println(i);
               }
              }
              else
              {        if(i>100){
                    System.out.print(".");
                 if(i%50==0) System.out.println(i); }
              }
              i++;
                       }
              res.close();//釋放資源
                 }
              
            System.out.println("\t" + i +"行已經處理!"); System.out.println("=========================end=========================");//輸出此條記錄的查詢結果
             in.close();
             smt.close();
             insert_smt.close();
             insert_smt_pre.close();
             con.close();
            }
            catch (Exception e)
            {e.printStackTrace();}
           }
          }

          posted on 2007-05-11 18:02 alone 閱讀(750) 評論(1)  編輯  收藏

          Feedback

          # re: 根據手機查詢歸屬地的批處理程序 2007-07-06 16:34 ijat

          gfhgfhgh  回復  更多評論   



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 扬州市| 上思县| 林甸县| 米林县| 师宗县| 封丘县| 弥勒县| 高碑店市| 泗阳县| 平江县| 马公市| 密云县| 景宁| 沁水县| 长泰县| 陈巴尔虎旗| 错那县| 霸州市| 吉隆县| 万安县| 苏尼特右旗| 大同市| 吴川市| 宁德市| 蓝田县| 泌阳县| 客服| 长沙县| 大厂| 东至县| 罗甸县| 静海县| 双桥区| 米泉市| 峡江县| 金昌市| 贺兰县| 申扎县| 思南县| 浦县| 东兰县|