`
scholers
  • 浏览: 620316 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JDBC中获取数据表的信息(转载)

    博客分类:
  • DB
阅读更多
JDBC中通过MetaData来获取具体的表的相关信息。可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等。MetaData中通过一系列getXXX函数,将这些信息存放到ResultSet里面,然后返回给用户。关于MetaData的说明网上也有不少,这里我只是从我自身学习的角度来记录一下简单使用JDBC以及获取数据表相关信息的方法。

首先,http://hometown.aol.com/kgb1001001/Articles/JDBCMetadata/JDBC_Metadata.htm这里有篇名字叫做《Understanding JDBC MetaData》的文章,讲解得不错。

下面就是我的JDBC下的获取表信息的代码了。我是以MySQL 5.0作为测试平台的。 1. JDBC连接MYSQL的代码很标准,很简单。

class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conn = DriverManager

.getConnection("jdbc:mysql://localhost/test?user=root&password=123456"); 2. 下面就是获取表的信息。

m_DBMetaData = m_Connection.getMetaData();

ResultSet tableRet = m_DBMetaData.getTables(null, "%",m_TableName,new String[]{"TABLE"});

其中"%"就是表示*的意思,也就是任意所有的意思。其中m_TableName就是要获取的数据表的名字,如果想获取所有的表的名字,就可以使用"%"来作为参数了。 3. 提取表的名字。

while(tableRet.next) System.out.println(tableRet.getString("TABLE_NAME"));

通过getString("TABLE_NAME"),就可以获取表的名字了。

从这里可以看出,前面通过getTables的接口的返回,JDBC是将其所有的结果,保存在一个类似table的内存结构中,而其中TABLE_NAME这个名字的字段就是每个表的名字。 4. 提取表内的字段的名字和类型

String columnName;

String columnType;

ResultSet colRet = m_DBMetaData.getColumns(null,"%", m_TableName,"%");

while(colRet.next()) {

columnName = colRet.getString("COLUMN_NAME");

columnType = colRet.getString("TYPE_NAME");

int datasize = colRet.getInt("COLUMN_SIZE");

int digits = colRet.getInt("DECIMAL_DIGITS");

int nullable = colRet.getInt("NULLABLE");

System.out.println(columnName+" "+columnType+" "+datasize+" "+digits+" "+

nullable);

}

JDBC里面通过getColumns的接口,实现对字段的查询。跟getTables一样,"%"表示所有任意的(字段),而m_TableName就是数据表的名字。

getColumns的返回也是将所有的字段放到一个类似的内存中的表,而COLUMN_NAME就是字段的名字,TYPE_NAME就是数据类型,比如"int","int unsigned"等等,COLUMN_SIZE返回整数,就是字段的长度,比如定义的int(8)的字段,返回就是8,最后NULLABLE,返回1就表示可以是Null,而0就表示Not Null。
分享到:
评论

相关推荐

    jdbc连接数据库的方式2

     如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个...

    [转载] JDBC+Servlet+JSP整合开发之-JSP项目实战

    在Servlet中,我们通常使用`doGet`和`doPost`方法来处理HTTP GET和POST请求,通过`request`和`response`对象来获取和设置HTTP头信息以及发送响应。 **JSP** 是一种动态网页技术,它将Java代码嵌入到HTML中,使...

    java连接HighGo DB

    如果在建立连接的过程中发生异常,它将被捕获并打印堆栈跟踪信息。在finally块中确保数据库连接会被关闭,避免资源泄漏。在实际应用中,对资源的管理是十分重要的,这不仅关系到应用的稳定性,也与性能密切相关。 4...

    JAVA数据库连接大全-转载

    这篇博客"JAVA数据库连接大全-转载"可能详细介绍了在Java中如何管理和使用数据库连接,包括使用JDBC API,数据库连接池以及相关的工具。这里我们将深入探讨JDBC、数据库连接池的重要性和配置方法。 1. **JDBC基础**...

    birt经验之谈转载

    5. **数据源**:数据源多样,包括XML、JDBC、脚本化和文本文件数据源,满足不同数据获取需求。 6. **报表参数**:报表参数允许用户根据需要定制查询条件,实现更灵活的报表生成。 7. **XML报表格式**:所有报表...

    不需要应用服务器的J2EE【转载】

    它使用JDBC(Java Database Connectivity)与数据库交互,并通过DataSource获取连接。DataSource是一个接口,用于管理和提供数据库连接,通常由应用服务器提供,但在Spring框架中,可以独立配置。 3. **事务管理**...

    JAVA计算机管理系统

    描述中的“还是很不错的大家互相转载哈 多谢谢了哈哈可以用起我们继续努力”表达了开发者对于系统质量的自信,鼓励用户分享与使用,并表示团队会持续改进和努力。这表明该系统不仅在功能上得到了认可,而且开发者有...

    (转载)自己动手写一个spring

    5. **数据访问/集成**: 包括JDBC、ORM(Object-Relational Mapping,如Hibernate)、OXM(Object-XML Mapping,如JAXB)等支持,方便数据库和XML的交互。 6. **Web模块**: 提供了MVC框架、WebSocket支持、Servlet...

    转载,若依快速开发框架很不错,详情请看https://www.ruoyi.vip/

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它将SQL语句与Java代码分离,使得SQL与Java代码更易于维护和调试。 4. **Vue.js**:Vue.js 是一个轻量级的前端JavaScript框架,用于构建用户界面。...

    java事例集合1

    【描述】中的"事例集合1(转载)"表明这些内容可能来源于网络,可能是某个开发者或教育者收集并整理的Java编程实例,目的是帮助学习者通过实际操作来理解Java编程。而"看韩剧www.pigkrtv.com"这部分看起来像是无关的...

    如何学习Java(转载某位经过锤炼而成为高手的同行)

    3. **参与社区**:加入像CSDN论坛、Java研究组等技术社区,不仅可以获取最新的Java资讯,还能在遇到问题时得到及时的帮助。 4. **项目实战**:理论结合实践,寻找Java相关的项目实习或兼职,通过实际项目锻炼自己的...

    springmybatis

    查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...

    二十三种设计模式【PDF版】

    主要是介绍各种格式流行的软件设计模式,对于程序员的进一步提升起推进作用,有时间可以随便翻翻~~ ...付所有这些变化,首推信息技术中的软件,只有软件能够帮助人类去应付各种变化.而这点正好与建筑想反,...

    word源码java-csdn-blogs:这是一个存储我的csdn博客的存储库

    标题中的“word源码java-csdn-blogs”表明这个压缩包内容可能包含了与Java编程相关的Word文档源代码,可能是为了在CSDN博客平台上分享技术文章而编写的。CSDN(China Software Developer Network)是中国的一个知名...

Global site tag (gtag.js) - Google Analytics