JDBC 获取元数据DatabaseMetaData

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();
		}
	}
}

时间: 2024-11-09 02:37:39

JDBC 获取元数据DatabaseMetaData的相关文章

JDBC:元数据 &amp;&amp; 获取插入记录的主键值 &amp;&amp; _JDBC_处理 Blob

一.元数据 DatabaseMetaData类 DatabaseMetaData 类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以非常详细的了解数据库的信息: getURL():返回一个String类对象,代表数据库的URL. getUserName():返回连接当前数据库管理系统的用户名. isReadOnly():返回一个boolean值,指示数据库是否只允许读操作. getDatabaseProductName():返回数据库的产品名称. getDatabaseProductV

通过jdbc获取数据库中的表结构

通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等.MetaData中通过一系列getXXX函数,将这些信息存放到ResultSet里面,然后返回给用户.关于MetaData的说明网上也有不少,这里我只是从我自身学习的角度来记录一下简单使用JDBC以及获取数据表相关信息的方法. DatabaseMetaData dbmd = con.getMetaData()

使用JDBC获取各数据库的Meta信息——表以及对应的列

先贴代码,作为草稿: 第一个是工具类, MapUtil.java [java] view plain copy import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; import java.ut

JAVA jdbc获取数据库连接

JDBC获取数据库连接的帮助类 1 import java.io.InputStream; 2 import java.sql.Connection; 3 import java.sql.DriverManager; 4 import java.sql.ResultSet; 5 import java.sql.Statement; 6 import java.util.Properties; 7 8 public class jdbcUtil { 9 10 private static Stri

元数据--MySQL获取元数据的方法

元数据:数据的数据,用以描述数据的信息也是数据,被称为元数据 [MySQL]获取元数据的方法 MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表(information_schema是一个虚拟数据库,并不物理存在,它储存数据的信息的数据库) 3)命令行程序,如mysqlshow, mysqldump --用SHOW语句获取元数据 MySQL用show语句获取元数据是最常用的方法,下面提供了几种典型用法: [sq

mysql联查时为空补全和jdbc获取最后插入生成的id

如何在mysql里实现 oracle里的两表联查    cat.id=dog.id(+)这种 为空补全的方法left  或者right    outer  join想在哪个表补全 就放在 left或者 right in查询 可以用left semi join 来代替(注意join表不能在select字段中出现) jdbc获取最后插入生成的id       ps = conn.prepareStatement("insert into test(name) value(?)",State

JDBC进阶 元数据

1:resultSet 1.1最基本的ResultSet. 1.2 可滚动的ResultSet类型 1.3 可更新的ResultSet 1.4 可保持的ResultSet 2:PrepareStatement 2.1: 基本操作 2.2 复用pststemetn 2.3 性能分析 3:执行批量SQL 3.1: statemet 方式 3.2: preparedstatement 方式 4: 事物transaction 4.1 基本处理 4.2 断点事物处理 6 元数据类型 6.1 Databas

通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类

http://www.cnblogs.com/lbangel/p/3487796.html package cn.test; import java.io.File;import java.io.FileOutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.text.Si

使用JDBC获取Oracle连接时报错

The Network Adapter could not establish the connection       网络适配器不能创建连接 作为初学者的来说,这个问题让我找了好多次,每次重新开启电脑时就可以正常获取连接,过了一会儿,自己不知道做了什么就会又报错,使用pl/sql时也会登录用户半天登陆不上. 配置文件如下: 获取连接的语句如下 public static Connection getConnection(){ String className = SmbmsPropertie