写sql语句的时候怎么能不把表名写死,而是采用预先定义好的呢~

解决方案 »

  1.   

    package com.test;
    import java.io.BufferedReader; 
    import java.io.BufferedWriter; 
    import java.io.File; 
    import java.io.FileNotFoundException; 
    import java.io.FileOutputStream;
    import java.io.FileReader; 
    import java.io.FileWriter; 
    import java.io.IOException; 
    import java.io.OutputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.StringTokenizer;
    import java.util.TreeSet;
    import java.util.Map.Entry;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class TextConvertor8 { 

    public static String convertingStr(String lineStr) { 
      String retVal = ""; 
      return retVal; 
    } public static String readPath = "C:\\Users\\zhangqi\\Downloads\\too9.com.txt\\too9.com.txt"; 
    public static String writePath = "D:\\hello.txt"; /** 
      * @param args 
      * @throws IOException 
      */ 
    public static void main(String[] args) throws IOException { 
     


    Map <String,Integer>  map = new HashMap<String,Integer>();  IPtest ipTest = new IPtest();
    String path = ipTest.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
    if (path.indexOf("WEB-INF") > 0) {
    path = path.substring(1, path.indexOf("/WEB-INF/"));
    }
    path+="/qqwry";
    // 指定纯真数据库的文件名,所在文件夹
    IPSeeker ip = new IPSeeker("QQWry.Dat", path);
    // 测试IP 58.20.43.13
    System.out.println(path); //String[] arr = new String[ip3.size()];
    //String[] ip3=new String[4100000];//result
      


    File dir = new File("D:\\文件夹");   
    //返回此抽象路径下的文件  
    File[] files = dir.listFiles();   
    if (files == null)   
      
    for (int i = 0; i < files.length; i++) {   
    //判断此文件是否是一个文件  
        if (!files[i].isDirectory()) {   
            System.out.println(files[i].getName());  
            
        String    filename2 = files[i].getName();

      
     
      
     // filename=file.getName();
      
      File file = new File(readPath);   int index=0;
     
      if (!file.exists()) { 
       System.out.println("File not exist!"); 
       System.exit(0); 
      } 
      BufferedReader br = new BufferedReader(new FileReader(dir+dir.separator+filename2));  
     
      
      String line = null;  while ((line = br.readLine()) != null){
      
       Pattern p = Pattern.compile(":\\s([^:]*):");//这个匹配还是有点取巧了。
          //可以这样":\\s*(\\d+\\.\\d+\\.\\d+\\.\\d+)\\s*:"安全一点            Matcher m = null;          if(!"".equals(line)){
              m = p.matcher(line);
                      while(m.find()){
      
       String    key1 = ip.getIPLocation(m.group(1).trim()).getCountry();
          
         
          
          //北京市、上海市、天津市、重庆市。
          
         // System.out.println(key);      if(key1.indexOf("省")!=-1^key1.indexOf("市")!=-1){
           
         
           key1=key1.substring(0, 2);
               
               
               
           
           }else if(key1.indexOf("香港")!=-1){
           key1=key1.substring(0, 2);
           }else if(key1.indexOf("澳门")!=-1){
           key1=key1.substring(0, 2);
           }else if(key1.indexOf("黑龙江")!=-1){
           key1=key1.substring(0, 2);}
           
           
           else{
           key1="其它";
           
           }
           
     String key2 = ip.getIPLocation(m.group(1).trim()).getArea();
     
     
     if(key2.indexOf("电信")!=-1){
      
         
     key2="电信";
         
     }else if(key2.indexOf("移动")!=-1){
      key2="移动";
     
     }else if(key2.indexOf("网通")!=-1^key2.indexOf("联通")!=-1){
      key2="联通/网通";
     
     }else if(key2.indexOf("学")!=-1^key2.indexOf("教")!=-1){
      key2="教务网";
     }else{
      key2="其它";
      
     }
     
           
          String key = key1+key2;
               
          if (map.containsKey(key)) {
              Integer temp2 = map.get(key);
              map.put(key, ++temp2);
          } else {
              map.put(key, new Integer(1));
          }
      }
    // end of while;
              
              }
      }
       
       
      br.close();
      
    }}     try {
    Class.forName("com.mysql.jdbc.Driver");
    //定义所要用到的三个数据库应用对象
     //  Connection con=null; //连接对象
      // Statement  sql=null; //Statement对象(SQL语句)
       ResultSet   rs=null; //结果集对象
    //进行数据源的连接
     
       Connection con;
    try {
    con = DriverManager.getConnection ("jdbc:mysql://183.60.46.162/cdn_web_user_stats?user=root&password=rjkj@rjkj&useUnicode=true&characterEncoding=utf8");
    //连接数据库的url  用户名和密码


    String n = "22kk.too9.com";
    String sql="insert into  `cdn_web_user_stats`.`"+n+"`(date,zone,nettype,cnt) values(?,?,?,?)";
    System.out.println(sql);
     PreparedStatement pstmt = con.prepareStatement(sql);
      //根据所定义的Statement执行生成相应的结果集并存在RS中
     
     List<Map.Entry<String, Integer>> list = new LinkedList<Map.Entry<String, Integer>>();
       list.addAll(map.entrySet());
     Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
          public int compare(Map.Entry obj1, Map.Entry obj2) {//从高往低排序
              
              if(Integer.parseInt(obj1.getValue().toString())<Integer.parseInt(obj2.getValue().toString()))
                  return 1;
              if(Integer.parseInt(obj1.getValue().toString())==Integer.parseInt(obj2.getValue().toString()))
                  return 0;
              else
                 return -1;
          }
       });
       for(Iterator<Map.Entry<String, Integer>> ite = list.iterator(); ite.hasNext();) {
            Map.Entry<String, Integer> map2 = ite.next();
         String zone1 = map2.getKey().substring(0, 2);
         String net = map2.getKey().substring(2, 4);
        int value = map2.getValue();
     
         
    //      System.out.println(zone1);
    //      System.out.println(net);
    //      System.out.println(value);

     pstmt.setString(1, "2012-05-18");
     pstmt.setString(2,zone1);
     pstmt.setString(3, net);
     pstmt.setInt(4, value);
     

     
      if(pstmt.executeUpdate()>0) //判断结果集是否为空,如果不为空则表示有记录
    {
     System.out.println("添加成功!");
    }
         else {
          System.out.println("添加失败!");
         }
       }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

      
      
     
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
        
     
       }
      
    // end of main}