java获取数据库信息列名字_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java获取数据库信息列名字

java获取数据库信息列名字

 2014/11/29 13:00:53  lqi  程序员俱乐部  我要评论(0)
  • 摘要:packageorg.data.jdbc;importjava.sql.Connection;importjava.sql.DatabaseMetaData;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;publicclassJdbc
  • 标签:Java 数据库 数据
class="java" name="code">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();
		}
	}
}

?

上一篇: 索尼影业内网遭攻击:或与朝鲜黑客有关 下一篇: 没有下一篇了!
发表评论
用户名: 匿名