通过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,如果是数字就不要加引号,如果是字符就要加引号,还比...

利用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....

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

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

开源网站分析软件Piwik的数据库表结构

文章引用:【http://www.biaodianfu.com/piwik-database-schema.html】 Piwik是一套基于Php+MySQL技术构建,能够与Google...

用户和角色:通用权限管理系统数据库表结构如何设计?

一,前言 权限管理系统的应用者应该有三种不同性质上的使用, A,使用权限 B,分配权限 C,授权权限  本文只从《使用权限》和《分配权限》这两种应用层面分析,暂时不考虑《授权权限》这种。 二...

Activiti-5.2工作流引擎-数据库表结构

一、数据库建表:       建表说明目前省略 二、数据库表结构说明:  1、用建模工具反向出来的数据库表结构图如下:      2、数据库表结构说明: ...

Android的通讯录数据库表结构

最近在做一个项目,里面涉及到系统通讯录的问题,就做了一天多的尝试,也查看了一些网上的文章,做了简单的总结。             android的通讯录数据库存放在/data/dat...

将oracle数据库表结构导出chm帮助文档

总体分两步: 1、通过powerdesigner将数据库导出html文件。 2、使用一个小工具(htm2chm)将htm转换成chm。 下面详细说明:   1、打开powerdesigner,点击da...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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