jdbc之MetaData_获取数据库信息
2014-07-09 16:06
459 查看
package jdbc; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class MetaData { /** * @Title: main * @Description: * @param: * @return void * @user: wangzg * @Date:2014-6-27 * @throws */ public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = null; Statement st = null; ResultSet rs = null; ResultSet rsTwo = null; try { conn = getConnection(); System.out.println("++++++++++++++++++++++++++++++++++++++"); //数据库源数据 DatabaseMetaData dbmd = conn.getMetaData(); System.out.println("URL:"+dbmd.getURL()); System.out.println("UserName:"+dbmd.getUserName()); rs = dbmd.getTables(conn.getCatalog(), dbmd.getUserName(), null,new String[]{"TABLE"}); //ResultSet源数据 ResultSetMetaData rsmd=rs.getMetaData(); System.out.println("该数据库中所有表及其表信息:"+"共:"+rsmd.getColumnCount()+"列:"); while(rs.next()){ System.out.println("++++++++++++++++++++++++++++++++++++++"); for(int i = 1 ; i<= rsmd.getColumnCount(); i++){ if("VARCHAR2".equals(rsmd.getColumnTypeName(i))){ System.out.print(rsmd.getColumnName(i)+":"+rs.getString(rsmd.getColumnName(i))+","); } } System.out.println(); System.out.println("++++++++++++++++++++++++++++++++++++++"); st = conn.createStatement(); String sql = "select * from "+rs.getString("TABLE_NAME"); // boolean flg = st.execute(sql); // if(flg){ // rsTwo = st.getResultSet(); // }else{ // int count = st.getUpdateCount(); // } // rsTwo = st.executeQuery(sql); while(rsTwo.next()){ //ResultSet源数据 ResultSetMetaData rsmdTwo=rsTwo.getMetaData(); System.out.println("表"+rs.getString("TABLE_NAME")+"共:"+rsmdTwo.getColumnCount()+"列:"); for(int j = 1 ; j<= rsmdTwo.getColumnCount(); j++){ if("VARCHAR2".equals(rsmdTwo.getColumnTypeName(j))){ System.out.print(rsmdTwo.getColumnName(j)+":"+rsmdTwo.getCatalogName(j)+":"+rsTwo.getString(rsmdTwo.getColumnName(j))+","); }else if("DATE".equals(rsmdTwo.getColumnTypeName(j))){ System.out.print(rsmdTwo.getColumnName(j)+":"+rsTwo.getDate(rsmdTwo.getColumnName(j))+","); } } System.out.println(); } System.out.println("++++++++++++++++++++++++++++++++++++++"); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(rs != null){ rs.close(); } if(rsTwo != null){ rsTwo.close(); } if(st != null){ st.close(); } if(conn != null && !conn.isClosed()){ conn.close(); } System.out.println(" Connection is closed ?"+conn.isClosed()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 获得数据库连接 * @Title: getConnection * @Description: 获得数据库连接 * @param: * @return Connection * @user: wangzg * @Date:2014-6-27 * @throws ClassNotFoundException, SQLException */ public static Connection getConnection() throws ClassNotFoundException, SQLException{ Connection conn = null; //加载oracle驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //连接数据库 String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; String user ="wzg"; String password = "wzg"; conn = DriverManager.getConnection(url, user, password); // url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL?user=wzg&password=wzg"; // conn = DriverManager.getConnection(url); // // Properties info = new Properties(); // info.setProperty("user", "wzg"); // info.setProperty("password", "wzg"); // conn = DriverManager.getConnection(url, info); return conn; } /** * * @Title: getConnection2 * @Description: * @param: * @return Connection * @user: wangzg * @Date:2014-6-27 * @throws */ public static Connection getConnection2() throws ClassNotFoundException, SQLException{ Connection conn = null; //加载oracle驱动 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //连接数据库 String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; String user ="wzg"; String password = "wzg"; conn = DriverManager.getConnection(url, user, password); return conn; } public static Connection getConnection3() throws SQLException{ Connection conn = null; //加载oracle驱动 System.setProperty("jdbc.drivers","oracle.jdbc.driver.OracleDriver"); //连接数据库 String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; String user ="wzg"; String password = "wzg"; conn = DriverManager.getConnection(url, user, password); return conn; } }
相关文章推荐
- JDBC利用DatabaseMetaData,ResultSetMetaData获取数据库连接信息,数据库信息,表信息
- JDBC通过DatabaseMetaData对象了解数据库信息
- JDBC获取数据库及表信息
- DatabaseMetaData 动态获取数据库表信息
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- JDBC通过DatabaseMetaData对象了解数据库信息
- JDBC获取数据库各种信息
- JDBC的那点事之DatabaseMetaData之获取数据库所有表
- 使用JDBC获取各数据库的Meta信息——表以及对应的列
- DatabaseMetaData获取数据库信息
- 使用JDBC获取各数据库的Meta信息——表以及对应的列
- DatabaseMetaData获取数据库信息 .
- JDBC 通过从properties配置文件获取信息得到orcale数据库接口
- JDBC获取数据库表字段信息
- JDBC获取数据库表字段信息
- DatabaseMetaData获取数据库信息和表信息(表的列名,类型,主键等)SQL java
- JDBC获取数据库信息
- JDBC的那点事之DatabaseMetaData之获取数据库所有表
- JDBC获取数据库的元数据信息
- JDBC获取数据库表中字段详细信息