通过java查询数据库表结构

原创 2007年09月13日 16:38:00


//获取数据表结构
 public static void getConnAndTableStruct(){
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSetMetaData rsmd = null;
        try {
            //mysql连接
            Class.forName("org.gjt.mm.mysql.Driver");
            connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test", "root", "root");
            //oracle连接
//            Class.forName("oracle.jdbc.driver.OracleDriver");
//            String url="jdbc:oracle:thin:@173.10.2.11:1521:test";
//             connection=DriverManager.getConnection(url,"root","root");

            pstmt = (PreparedStatement) connection.prepareStatement("select * from user");
            pstmt.execute();  //这点特别要注意:如果是Oracle而对于mysql可以不用加.
            rsmd = (ResultSetMetaData) pstmt.getMetaData();
           className="User";
           tableName="user";
            for (int i = 1; i < rsmd.getColumnCount() + 1; i++) {
                Table table=new Table();
                table.setColumnName(rsmd.getColumnName(i));
                table.setColumnType(rsmd.getColumnClassName(i).substring(rsmd.getColumnClassName

(i).lastIndexOf(".")+1));
                tables.add(table);
                System.out.println(rsmd.getColumnName(i)+ "  " +rsmd.getColumnTypeName(i)
                        +"  " +rsmd.getColumnClassName(i)+ "  "+rsmd.getTableName(i));
            }
        }
        catch (ClassNotFoundException cnfex) {
            cnfex.printStackTrace();
        }
        catch (SQLException sqlex) {
            sqlex.printStackTrace();
        }

    }
注意:
ResultSetMetaData 对象可以用于查找 ResultSet 中的列的类型和特性。
方法索引
getCatalogName(int)
获得列的表的目录名。
getColumnCount()
获得 ResultSet 中的列数。
getColumnDisplaySize(int)
获得列的正常的最大字符宽度。
getColumnLabel(int)
获得打印输出和显示的建议列标题。
getColumnName(int)
获得列名。
getColumnType(int)
获得一个列的 SQL 类型。
getColumnTypeName(int)
获得一个列的数据源特定的类型名。
getPrecision(int)
获得一个列的十进制数字的位数。
getScale(int)
获得一个列的十进制小数点右面数字的位数。
getSchemaName(int)
获得一个列的表的模式。
getTableName(int)
获得列的表名。
isAutoIncrement(int)
列是否自动计数,因此它是只读的。
isCaseSensitive(int)
列是否区分大小写。
isCurrency(int)
列是否是通用的。
isDefinitelyWritable(int)
对列的写操作是否一定成功。
isNullable(int)
在该列中是否可以放一个 NULL 值。
isReadOnly(int)
列是否是不可写的。
isSearchable(int)
该列是否是可以查询的。
isSigned(int)
该列是否是有符号数。
isWritable(int)
对该列的写操作是否会成功。
 

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

我们如何知道,我们访问的数据库的表,有哪些字段,字段的类型是什么,长度限制是什么? 在实际工作中,我就遇到过,要做动态sql,比如insert,如果是数字就不要加引号,如果是字符就要加引号,还比如做...

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

我们如何知道,我们访问的数据库的表,有哪些字段,字段的类型是什么,长度限制是什么? 在实际工作中,我就遇到过,要做动态sql,比如insert,如果是数字就不要加引号,如果是字符就要加引号,还比...
  • road_16
  • road_16
  • 2013年11月10日 23:59
  • 4156

通过java查询数据库表结构

public static void getConnAndTableStruct() {   Connection connection = null;   PreparedStatement p...

利用Excel的vba脚本根据数据库表结构自动生成java的action,bean,dao,mode,service,xml,sql,jsp等

利用Excel的vba脚本根据数据库表结构自动生成java的action,bean,dao,mode,service,xml,sql,jsp等 源代码下载地址:http://www.zuidaima....

java 代码初始化数据库表结构,存储过程和函数的方法

public class JdbcUtils { private final static Logger logger = LoggerFactory.getLogger(JdbcUtils....
  • boenwan
  • boenwan
  • 2017年06月17日 09:38
  • 498

查询数据库 表 结构 信息

SELECT ColId=C.column_id, ColName=C.name, ...

java查询数据库表卡死,解决方法

五一回来上班,像往常一样打开电脑启动eclipse运行项目,一切都很正常……         言归正传,先说说发生的现象,项目启动一直卡死,设置的tomcat启动超时时间120,不会是因为这个启动失败...
  • ldc0612
  • ldc0612
  • 2017年05月03日 16:06
  • 988

java多线程查询数据库

  • 2017年12月04日 13:38
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过java查询数据库表结构
举报原因:
原因补充:

(最多只允许输入30个字)