zoukankan      html  css  js  c++  java
  • jdbc链接数据库,获取表名,字段名和数据

    [java] view plain copy
    1. import java.sql.Connection;  
    2. import java.sql.DatabaseMetaData;  
    3. import java.sql.DriverManager;  
    4. import java.sql.ResultSet;  
    5. import java.sql.ResultSetMetaData;  
    6. import java.sql.SQLException;  
    7. import java.sql.Statement;  
    8. import java.sql.Types;  
    9.   
    10. //jdbc链接数据库,获取表名,字段名和数据  
    11. public class TestMysql {  
    12.   
    13.     public static void main(String[] args) throws Exception {  
    14.   
    15.         String driver = "com.mysql.jdbc.Driver";  
    16.         String url = "jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true";  
    17.         String user = "root";  
    18.         String password = "mysql0774mysql";  
    19.   
    20.         Class.forName(driver);  
    21.         Connection conn = DriverManager.getConnection(url, user, password);  
    22.         if (!conn.isClosed())  
    23.             System.out.println("Succeeded connecting to the Database!");  
    24.         else  
    25.             System.err.println("connect filed");  
    26.         // 获取所有表名  
    27.         Statement statement = conn.createStatement();  
    28.   
    29.         getTables(conn);  
    30.   
    31.         ResultSet resultSet = statement  
    32.                 .executeQuery("select * from help_keyword");  
    33.         // 获取列名  
    34.         ResultSetMetaData metaData = resultSet.getMetaData();  
    35.         for (int i = 0; i < metaData.getColumnCount(); i++) {  
    36.             // resultSet数据下标从1开始  
    37.             String columnName = metaData.getColumnName(i + 1);  
    38.             int type = metaData.getColumnType(i + 1);  
    39.             if (Types.INTEGER == type) {  
    40.                 // int  
    41.             } else if (Types.VARCHAR == type) {  
    42.                 // String  
    43.             }  
    44.             System.out.print(columnName + " ");  
    45.         }  
    46.         System.out.println();  
    47.         // 获取数据  
    48.         while (resultSet.next()) {  
    49.             for (int i = 0; i < metaData.getColumnCount(); i++) {  
    50.                 // resultSet数据下标从1开始  
    51.                 System.out.print(resultSet.getString(i + 1) + " ");  
    52.             }  
    53.             System.out.println();  
    54.   
    55.         }  
    56.         statement.close();  
    57.         conn.close();  
    58.   
    59.     }  
    60.   
    61.     public static String convertDatabaseCharsetType(String in, String type) {  
    62.         String dbUser;  
    63.         if (in != null) {  
    64.             if (type.equals("oracle")) {  
    65.                 dbUser = in.toUpperCase();  
    66.             } else if (type.equals("postgresql")) {  
    67.                 dbUser = "public";  
    68.             } else if (type.equals("mysql")) {  
    69.                 dbUser = null;  
    70.             } else if (type.equals("mssqlserver")) {  
    71.                 dbUser = null;  
    72.             } else if (type.equals("db2")) {  
    73.                 dbUser = in.toUpperCase();  
    74.             } else {  
    75.                 dbUser = in;  
    76.             }  
    77.         } else {  
    78.             dbUser = "public";  
    79.         }  
    80.         return dbUser;  
    81.     }  
    82.   
    83.     private static void getTables(Connection conn) throws SQLException {  
    84.         DatabaseMetaData dbMetData = conn.getMetaData();  
    85.         // mysql convertDatabaseCharsetType null  
    86.         ResultSet rs = dbMetData.getTables(null,  
    87.                 convertDatabaseCharsetType("root", "mysql"), null,  
    88.                 new String[] { "TABLE", "VIEW" });  
    89.   
    90.         while (rs.next()) {  
    91.             if (rs.getString(4) != null  
    92.                     && (rs.getString(4).equalsIgnoreCase("TABLE") || rs  
    93.                             .getString(4).equalsIgnoreCase("VIEW"))) {  
    94.                 String tableName = rs.getString(3).toLowerCase();  
    95.                 System.out.print(tableName + " ");  
    96.                 // 根据表名提前表里面信息:  
    97.                 ResultSet colRet = dbMetData.getColumns(null, "%", tableName,  
    98.                         "%");  
    99.                 while (colRet.next()) {  
    100.                     String columnName = colRet.getString("COLUMN_NAME");  
    101.                     String columnType = colRet.getString("TYPE_NAME");  
    102.                     int datasize = colRet.getInt("COLUMN_SIZE");  
    103.                     int digits = colRet.getInt("DECIMAL_DIGITS");  
    104.                     int nullable = colRet.getInt("NULLABLE");  
    105.                     // System.out.println(columnName + " " + columnType + " "+  
    106.                     // datasize + " " + digits + " " + nullable);  
    107.                 }  
    108.   
    109.             }  
    110.         }  
    111.         System.out.println();  
    112.   
    113.         // resultSet数据下标从1开始 ResultSet tableRet =  
    114.         //conn.getMetaData().getTables(null, null, "%", new String[] { "TABLE" });  
    115.         //while (tableRet.next()) {  
    116.         //  System.out.print(tableRet.getString(3) + " ");  
    117.         //}  
    118.         //System.out.println();  
    119.   
    120.     }  
    121.   
  • 相关阅读:
    Javascript数组与字符串常用api
    javaScript入门(函数)
    javascript入门(1)
    微信小程序组件解读和分析:一、view(视图容器 )
    微信小程序组件解读和分析:十五、switch 开关选择器
    微信小程序组件解读和分析:十四、slider滑动选择器
    微信小程序组件解读和分析:十三、radio单选项目
    微信小程序组件解读和分析:十二、picker滚动选择器
    微信小程序组件解读和分析:十一、label标签
    微信小程序组件解读和分析:十、input输入框
  • 原文地址:https://www.cnblogs.com/shizhijie/p/7459016.html
Copyright © 2011-2022 走看看