`
一纸红颜岂值倾尽天下
  • 浏览: 29359 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

获取数据库信息表列名

    博客分类:
  • java
阅读更多
package org.data.jdbc;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;


public class Jdbc {

	//数据库连接地址
	private static final String url="jdbc:mysql://localhost:3306/data";
	//用户名密码
	private static final String user="root";
	private static final String pwd="123456";

	/***
	 * 数据库查询
	 * @throws ClassNotFoundException 
	 */
	public static void query() throws ClassNotFoundException{
		Connection conn=null;
		java.sql.PreparedStatement pst=null;
		ResultSet re=null;
		/*
		 * DBC提供了DatabaseMetaData来封装数据库连接对应的数据库信息,通过Connection的getMetaData方法来获取该对象。
		 * DatabaseMetaData接口通常数据库驱动提供商完成实现,其作用是让用户了解数据库的底层信息。
		 * 使用该接口可以了解数据库底层的实现,便于完成多个数据库的相互切换。
		 */
		 DatabaseMetaData metadata=null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn=DriverManager.getConnection(url, user, pwd);		
			
			metadata = conn.getMetaData();
			System.out.println("数据库已知的用户: "+ metadata.getUserName());   
	         System.out.println("数据库的系统函数的逗号分隔列表: "+ metadata.getSystemFunctions());   
	         System.out.println("数据库的时间和日期函数的逗号分隔列表: "+ metadata.getTimeDateFunctions());   
	         System.out.println("数据库的字符串函数的逗号分隔列表: "+ metadata.getStringFunctions());   
	         System.out.println("数据库供应商用于 'schema' 的首选术语: "+ metadata.getSchemaTerm());   
	         System.out.println("数据库URL: " + metadata.getURL());   
	         System.out.println("是否允许只读:" + metadata.isReadOnly());   
	         System.out.println("数据库的产品名称:" + metadata.getDatabaseProductName());   
	         System.out.println("数据库的版本:" + metadata.getDatabaseProductVersion());   
	         System.out.println("驱动程序的名称:" + metadata.getDriverName());   
	         System.out.println("驱动程序的版本:" + metadata.getDriverVersion());   
	         System.out.println("驱动程序的版本:" + metadata.getTableTypes());  
	         System.out.println("............................................");
	         pst= conn.prepareStatement("select * from customerinfo");
	         
	         //获取数据库列
	         re=pst.executeQuery();
	         //数据库列名
	         ResultSetMetaData data= re.getMetaData();
	         //getColumnCount 获取表列个数
	         for(int i=1;i<=data.getColumnCount();i++){
	        	 //获取列表 index 从1开始、列名、列类型、列的数据长度
	        	 System.out.println(data.getColumnName(i)+"\t"+data.getColumnTypeName(i)+"\t"+data.getColumnDisplaySize(i));
	         }
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			closeConnection(conn, pst, re);
		}   
	}
	

	/**
	 * 关闭数据库链接
	 * @param conn
	 * @param pst
	 * @param re
	 */
	public static void closeConnection(Connection conn,PreparedStatement pst,ResultSet re){
		
		if(conn!=null)
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		if(pst!=null)
			try {
				pst.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		if(re!=null)
			try {
				re.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	
	public static void main(String[] args) {
		try {
			query();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

0
0
分享到:
评论

相关推荐

    sql 数据库 得到表列名

    根据提供的文件信息,本文将详细解释如何通过 SQL 查询获取数据库表中的所有列名,并对代码进行解析。 ### 获取表列名的重要性 在处理 SQL 数据库时,了解如何快速且准确地获取表中的列名是非常重要的。这不仅能...

    java如何获得数据库表中各字段的字段名

    其中一项常见需求是获取数据库表中的所有字段名称。这通常在动态生成报表或者需要根据数据库结构动态创建Java对象时非常有用。 #### 基本原理 要实现这一功能,主要依靠`java.sql.ResultSetMetaData`类来获取元...

    java获取数据库主外键

    在Java开发中,有时我们需要动态地获取数据库的元数据信息,比如表结构、主键、外键等。本文将详细介绍如何使用Eclipse和JDBC API来获取MySQL数据库中的表结构以及主外键信息。 #### 一、准备工作 在开始之前,请...

    获取数据库中表结构信息

    ### 获取数据库中表结构信息 在数据库管理与应用开发过程中,了解特定表的结构是非常重要的。这不仅可以帮助我们更好地理解数据存储方式,还能够指导我们在应用程序中如何有效地使用这些数据。本文将详细介绍如何...

    数据库列名写入Excel

    2. **SQL查询**:获取数据库列名通常需要执行一个SQL的元查询,例如`SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table'`。这将返回指定表的所有列名。在C++ Builder中,你可以...

    Java获取数据库属性信息.rar

    本教程将深入探讨如何使用`DatabaseMetaData`对象来获取数据库的各种属性信息。 首先,你需要建立一个数据库连接,可以使用`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码。一旦连接成功,你...

    使用jdbc获取数据库基础信息(附源码)

    本教程将深入探讨如何使用JDBC获取数据库的基础信息,包括连接数据库、执行SQL查询以及处理结果集。我们将通过分析`TestJDBC.java`源代码来了解具体的实现过程。 首先,我们需要引入JDBC驱动,这通常是通过在Java...

    SQl查询数据库表名、表的列名

    根据给定的信息,本文将详细解释如何通过SQL查询获取数据库中的表名以及这些表的列名。这在数据库管理及开发工作中是常见的需求之一,掌握这些技能有助于更好地管理和操作数据库。 ### 一、获取数据库中的所有表名 ...

    读取数据库名,表名,列名的小程序

    在IT领域,数据库管理是...总之,这个"读取数据库名,表名,列名的小程序"是C#与SQL Server交互的一个实例,它展示了如何利用ADO.NET框架高效地获取数据库结构信息,对于数据库管理和开发人员来说,是一个实用的工具。

    delphi 获取数据库表名称及某表列称

    在Delphi编程中,获取数据库中的表名称以及特定表的列名称是常见的需求,这涉及到对数据库连接、SQL查询和数据访问对象(Data Access Objects, DAO)或组件的使用。以下将详细介绍如何实现这一功能。 首先,你需要...

    任意数据库连接、表、字段名获取

    3. **表名获取**:获取数据库中的表名通常涉及到执行SQL查询,如`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES`(对于SQL Server)。这将返回数据库中所有表的名称。不同的数据库系统可能有不同的信息模式视图...

    Python获取SQLite查询结果表列名的方法

    本文将详细介绍如何在Python中获取SQLite查询结果表的列名。 首先,要连接到SQLite数据库,我们需要使用`sqlite3`模块,它是Python标准库的一部分。以下是一个基本的连接示例: ```python import sqlite3 # 连接...

    SQLServer获取临时表所有列名或是否存在指定列名的方法

    在SQL Server中,数据库开发和管理经常涉及到对表格结构的操作,包括临时表的列名管理。临时表是一种在会话期间存储数据的特殊类型的表,分为本地临时表(以单个#开头)和全局临时表(以两个##开头)。本文将深入...

    PL/SQL实现获得所有表名及列名到表

    本文将详细探讨如何使用PL/SQL来实现获取数据库中所有表名及其列名,并存储到一个特定的表中。 ### 一、理解需求与设计思路 #### 1. 需求分析: 我们的目标是创建一个PL/SQL程序,该程序能够遍历当前用户拥有的...

    导出数据库的表结构到Excel

    7. 安全性:考虑到可能涉及敏感的数据库信息,程序应该有适当的安全措施,例如加密存储数据库凭据,避免明文传输。 综上所述,"导出数据库的表结构到Excel"涉及到的技术和知识广泛,包括数据库连接、SQL操作、文件...

    枚举数据库库表列.docx

    在SQL注入攻击中,攻击者尝试通过构造恶意SQL语句来获取数据库的信息,包括数据库名、表名以及列名等。以下是对各数据库管理系统(DBMS)进行枚举的一些方法: 对于SQL Server,可以使用以下查询来枚举数据库、表和...

    Sql Server获取SQL所有数据库名、所有表名、所有字段名.docx

    为了更好地管理和维护数据库,需要获取数据库中的各种信息,例如数据库名、表名、字段名等。本文将介绍如何使用 Sql Server 获取所有数据库名、所有表名、所有字段名。 一、获取所有数据库名 获取所有数据库名可以...

    qt TableView显示数据库表中的数据

    8. **表头设置**:对于有列名的数据库表,QTableView会自动显示列名。如果需要自定义列头,可以通过设置QHeaderView的显示和排序功能来实现。 9. **用户交互**:QTableView支持用户交互,如单击、双击和拖动选择行...

Global site tag (gtag.js) - Google Analytics