/**
     * Get a hashtable(key:field Name, value:field Type);
     * @param tableName
     * @return a hashtable(key:field Name, value:field Type);
     */
    public Hashtable getAllField(String tableName){
        try{
            Connection con = getConnection();
            String owner = ConfigurateFile.getDatabaseOwner();
            String selectStatement ="select * from "+tableName;
            PreparedStatement prepStmt = con.prepareStatement(selectStatement);
            ResultSet rs = prepStmt.executeQuery();
            java.sql.ResultSetMetaData rm = rs.getMetaData();
            int columNumber = rm.getColumnCount();
            Hashtable ht = new Hashtable();
            Debug.debug("get fields number is:"+columNumber);
            for(int i = 1; i <= columNumber; i ++){
                String name = rm.getColumnName(i);
                String type = rm.getColumnTypeName(i);
                ht.put(name,type);
            }
            return ht;
        }catch(Exception e){
            e.printStackTrace();
            return null;
        }
    }
这个方法是得到字段名称和字段类型。

解决方案 »

  1.   

    请问那个字段类型,可以这样表示吗: 
    if (type=='string' ) {
       name=name.substring(1,4)
              }
    还有如果这样能表示,那日期类型的怎么表示;
      

  2.   

    既然得到了type 就根据type 不同用不同的方法取
    getString()
    getInt()
    getDate
    很多啊
      

  3.   

    再问一下,我照“woowindice(黑山老妖)”的方法执行了,可假如我的字段类型是字符型的,可以这样表示吗:
    String type = rm.getColumnTypeName(i)
    if (type=="string")......
    或者是其它什么表示法?
    如果是日期类型的这样可以吗:
    if (type=="date")......
    谢谢!!!