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();
}
}
}
package org.data.jdbc;
import java.sql.Connection