根据表名获得字段名

//开发工具Eclipse3.2,SQLServer2000
 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/*
 *@author 我为J狂 建立日期 2007-5-4
 *
 
*/


public class MetaDataTest
{
    
public static void main(String[] args)
    
{
        System.out.println(
" 表mytable中的字段: " + getAllFields(" mytable ")); // 取出数据库db中的表mytable中的所有字段名
    }


    
public static String getAllFields(String myTable)
    
{
        Connection con 
= null;
        Statement st 
= null;
        ResultSet rs 
= null;
        String allFields 
= " ";
        String str 
= " ";
        java.sql.ResultSetMetaData rsm 
= null;
        
try
        
{
            Class.forName(
"com.microsoft.jdbc.sqlserver.SQLServerDriver");
            con 
= DriverManager
                    .getConnection(
                            
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db",
                            
"sa""");
            st 
= con.createStatement();
            rs 
= st.executeQuery("select * from " + myTable);
            rsm 
= rs.getMetaData();
            
int num = rsm.getColumnCount();
            
for (int i = 1; i <= num; i++)
            
{
                allFields 
= str + rsm.getColumnName(i) + " ";
                str 
= allFields;
            }

        }
 catch (Exception ex)
        
{
            ex.printStackTrace();
            
return "";
        }
 finally
        
{
            
if (rs != null)
            
{

                
try
                
{
                    rs.close();
                }
 catch (SQLException e)
                
{
                    
// TODO Auto-generated catch block
                    e.printStackTrace();
                }

                rs 
= null;
            }

            
if (st != null)
            
{

                
try
                
{
                    st.close();
                }
 catch (SQLException e)
                
{
                    
// TODO Auto-generated catch block
                    e.printStackTrace();
                }

                st 
= null;
            }

            
if (con != null)
            
{

                
try
                
{
                    con.close();
                }
 catch (SQLException e)
                
{
                    
// TODO Auto-generated catch block
                    e.printStackTrace();
                }

                con 
= null;
            }

        }

        
return allFields;
    }

}



posted on 2007-03-03 14:41 我为J狂 阅读(856) 评论(0)  编辑  收藏 所属分类: 数据库编程


只有注册用户登录后才能发表评论。


网站导航:
 
<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

常用链接

留言簿(11)

随笔分类(48)

文章分类(29)

常去逛逛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜