`
lqi
  • 浏览: 10398 次
社区版块
存档分类
最新评论

java获取数据库信息列名字

    博客分类:
  • 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
分享到:
评论

相关推荐

    Java+RestltData获取数据库、数据库表、表字段、执行sql等数据源操作源码

    5. **数据库元数据**:`Connection`对象提供了获取数据库元数据的方法,如获取所有表名、列信息等。 ```java DatabaseMetaData dbmd = conn.getMetaData(); ResultSet tables = dbmd.getTables(null, null, "%", ...

    JAVA与SQLSEVER数据库连接总结

    8. **获取元数据信息**:通过`ResultSet`的`getMetaData`方法获取表结构信息,如列名和列数量。 9. **关闭数据库连接**:最后,按照反向顺序关闭`ResultSet`、`Statement`和`Connection`对象,释放资源。 #### 三...

    最新JAVA面试题总结之数据库.docx

    索引是对数据库中一对多个列值的排序,帮助数据库高效获取数据的数据结构。索引分为普通索引、唯一索引、主键索引、全文索引。优点包括加快检索速度、唯一索引确保每行数据的唯一性、在使用索引的过程可以优化隐藏器...

    各种数据库的驱动程序Driver

    5. **ResultSetMetaData**: ResultSetMetaData 是JDBC API中的一个接口,用于获取ResultSet对象列的信息,如列的数量、列的名字、列的数据类型等。这有助于程序动态地处理结果集,增强代码的灵活性。 6. **数据库...

    Java开发技术大全(500个源代码).

    getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields....

    JAVA与SQLServer数据库连接共有两种方式.doc

    ` 获得结果集 rs 的元信息,然后可以获取元数据中的列的数量和列名。 9. 关闭数据库各对象:按照建立顺序逆序关闭各对象,例如 `rs.close(); st.close(); conn.close();` 第二种方式:JDBC 直接连接 SQL Server ...

    labview 数据库的表格创建,数据更新,数据删除,数据查询,数据插入,数据显示。

    通常,LabVIEW通过ODBC(Open Database Connectivity)或JDBC(Java Database Connectivity)与各种类型的数据库进行通信。这两个接口允许LabVIEW与SQL(Structured Query Language)进行交互,从而执行数据库操作。...

    android studio 数据库的增删查改

    在Android开发中,数据库是应用存储数据的重要方式之一。Android Studio提供了SQLite数据库的支持,使得开发者可以方便地在移动设备上进行数据的管理。本工程示例主要展示了如何在Android Studio中进行数据库的增删...

    Java采用setAsciiStream方法检索数据库指定内容实例解析

    在示例代码中,`getString`用于获取学生的名字、年龄、住址和电话,而`getInt`用于获取班级编号。 需要注意的是,`ResultSet`对象的`next()`方法返回`true`时,表示还有更多记录可读;当返回`false`时,表示已经...

    一个用于分班的数据库格式

    标题中的“一个用于分班的数据库格式”揭示了这个数据库是为学校分班系统专门定制的,其目的是有效地管理和分配学生的班级信息。 描述中提到,这个数据库包含超过2000条数据,并基于专业来进行分班。这表明数据库...

    Android代码-连接SQLite数据库源码.zip

    在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储应用程序中的数据。本文将深入探讨如何在Android应用中连接并操作SQLite数据库,主要基于提供...

    Java Reflection (JAVA反射)

    比如运行`java DumpMethods java.util.Stack`会列出`Stack`类的所有方法。 2. **示例二:判断实例类型** ```java import java.lang.reflect.*; public class InstanceCheck { public static void main(String[] ...

    Android studio设计开发LitePal数据库操作源码

    这意味着我们只需要定义一个继承自`BaseModel`的Java类,该类的字段将对应数据库表的列。LitePal自动处理SQL语句的生成,大大简化了数据库操作。 **数据库创建与升级:** 在Android中,每个SQLite数据库都有一个...

    Ormlite数据库简单的使用

    在这里,`@DatabaseTable`注解定义了对应的数据库表名,而`@DatabaseField`注解用于标记每个字段为数据库列。`generatedId = true`表示`id`字段是自增主键。 接下来,配置数据库帮助类(Data Access Object,DAO)...

    使用JDBC-ODBC桥连接数据库

    在循环中,可以通过`getString()`, `getDate()`, `getFloat()`等方法获取列的数据。 #### 步骤五:关闭资源 ```java con.close(); ``` 在完成数据库操作后,必须关闭连接以释放资源。 ### 4. 注意事项 - **性能...

    java模糊查询方法

    在进行数据库查询时,如果需要更复杂的模糊匹配逻辑,可以先从数据库中获取数据,再使用Java中的正则表达式进行进一步的过滤处理。 ```java // 假设从数据库中获取了多个用户名 List&lt;String&gt; names = new ArrayList...

    android 对sqlite数据库的增删改查

    这里创建了一个包含ID、名字和年龄三列的表。 3. **插入数据**: 使用SQLiteDatabase的`insert()`方法来向表中插入数据。例如: ```java ContentValues values = new ContentValues(); values.put(COLUMN_NAME, ...

    ORACLE数据库学习笔记

    数据库连接工具有多种,如内置的SQL*Plus,以及Java的JDBC接口,它们允许开发者在本地或远程环境中与数据库进行交互。在不同操作系统中设置`ORACLE_SID`环境变量的方法也有所不同。 查询表结构可以使用`DESC`命令,...

    java父子资料(答案)

    - **知识点**: 使用 JDK 的 `javac` 编译器编译 Java 源程序时,如果一个源文件中定义了 4 个类,则会生成 4 个 `.class` 文件,每个文件的名字与对应的类名一致。 **4. Java Applet 源程序结构** - **知识点**: ...

Global site tag (gtag.js) - Google Analytics