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. //jdbc链接数据库,获取表名,字段名和数据
  10. public class TestMysql {
  11. public static void main(String[] args) throws Exception {
  12. String driver = "com.mysql.jdbc.Driver";
  13. String url = "jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true";
  14. String user = "root";
  15. String password = "mysql0774mysql";
  16. Class.forName(driver);
  17. Connection conn = DriverManager.getConnection(url, user, password);
  18. if (!conn.isClosed())
  19. System.out.println("Succeeded connecting to the Database!");
  20. else
  21. System.err.println("connect filed");
  22. // 获取所有表名
  23. Statement statement = conn.createStatement();
  24. getTables(conn);
  25. ResultSet resultSet = statement
  26. .executeQuery("select * from help_keyword");
  27. // 获取列名
  28. ResultSetMetaData metaData = resultSet.getMetaData();
  29. for (int i = 0; i < metaData.getColumnCount(); i++) {
  30. // resultSet数据下标从1开始
  31. String columnName = metaData.getColumnName(i + 1);
  32. int type = metaData.getColumnType(i + 1);
  33. if (Types.INTEGER == type) {
  34. // int
  35. } else if (Types.VARCHAR == type) {
  36. // String
  37. }
  38. System.out.print(columnName + "\t");
  39. }
  40. System.out.println();
  41. // 获取数据
  42. while (resultSet.next()) {
  43. for (int i = 0; i < metaData.getColumnCount(); i++) {
  44. // resultSet数据下标从1开始
  45. System.out.print(resultSet.getString(i + 1) + "\t");
  46. }
  47. System.out.println();
  48. }
  49. statement.close();
  50. conn.close();
  51. }
  52. public static String convertDatabaseCharsetType(String in, String type) {
  53. String dbUser;
  54. if (in != null) {
  55. if (type.equals("oracle")) {
  56. dbUser = in.toUpperCase();
  57. } else if (type.equals("postgresql")) {
  58. dbUser = "public";
  59. } else if (type.equals("mysql")) {
  60. dbUser = null;
  61. } else if (type.equals("mssqlserver")) {
  62. dbUser = null;
  63. } else if (type.equals("db2")) {
  64. dbUser = in.toUpperCase();
  65. } else {
  66. dbUser = in;
  67. }
  68. } else {
  69. dbUser = "public";
  70. }
  71. return dbUser;
  72. }
  73. private static void getTables(Connection conn) throws SQLException {
  74. DatabaseMetaData dbMetData = conn.getMetaData();
  75. // mysql convertDatabaseCharsetType null
  76. ResultSet rs = dbMetData.getTables(null,
  77. convertDatabaseCharsetType("root", "mysql"), null,
  78. new String[] { "TABLE", "VIEW" });
  79. while (rs.next()) {
  80. if (rs.getString(4) != null
  81. && (rs.getString(4).equalsIgnoreCase("TABLE") || rs
  82. .getString(4).equalsIgnoreCase("VIEW"))) {
  83. String tableName = rs.getString(3).toLowerCase();
  84. System.out.print(tableName + "\t");
  85. // 根据表名提前表里面信息:
  86. ResultSet colRet = dbMetData.getColumns(null, "%", tableName,
  87. "%");
  88. while (colRet.next()) {
  89. String columnName = colRet.getString("COLUMN_NAME");
  90. String columnType = colRet.getString("TYPE_NAME");
  91. int datasize = colRet.getInt("COLUMN_SIZE");
  92. int digits = colRet.getInt("DECIMAL_DIGITS");
  93. int nullable = colRet.getInt("NULLABLE");
  94. // System.out.println(columnName + " " + columnType + " "+
  95. // datasize + " " + digits + " " + nullable);
  96. }
  97. }
  98. }
  99. System.out.println();
  100. // resultSet数据下标从1开始 ResultSet tableRet =
  101. //conn.getMetaData().getTables(null, null, "%", new String[] { "TABLE" });
  102. //while (tableRet.next()) {
  103. //  System.out.print(tableRet.getString(3) + "\t");
  104. //}
  105. //System.out.println();
  106. }
  107. }

jdbc链接数据库,获取表名,字段名和数据的更多相关文章

  1. MySql 获取表的字段名

    mysql安装成功后可以看到已经存在mysql.information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库 ...

  2. 获取sqlserver数据库中所有库、表、字段名的方法

    获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...

  3. Sqlserver列出所有数据库名,表名,字段名

    Sqlserver列出所有数据库名,表名,字段名   1.获取所有数据库名:   ? 1 SELECT Name FROM Master..SysDatabases ORDER BY Name   注 ...

  4. 4、原生jdbc链接数据库常用资源名

    原生jdbc链接数据库要素:#MySql:String url="jdbc:mysql://localhost:3306/数据库名";String name="root& ...

  5. [SQL]某数据库中查出包含 字段名 的所有表名

    --利用SQL语句来查询字段所在的表 --从某数据库中查出包含 字段名 字段的所有表名 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE ...

  6. KO ------- 表中字段名和实体类属性名不一致

    -----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就 ...

  7. postgress数据库 出现大写字母 字段名但是提示说不存在

    select BSK001 from dbdata 报错: column "bsk001" of relation "dbdata" does not exis ...

  8. 数据库的表的字段名称与实体类(pojo)不对应解决方案

    数据库的表的字段名称与实体类(pojo)不对应解决方案 数据库表 ![image-20200429130200825](C:%5CUsers%5C%E6%9E%97%E6%AD%A3%E6%98%8E ...

  9. mysql数据库user表host字段的%问题

    搜索: mysql数据库user表host字段的%问题 连接:http://blog.csdn.net/xiaomengh/article/details/48706149 在mysql数据库中,使用 ...

随机推荐

  1. 【WPF】自动完成/智能提示的文本框(AutoCompleteBox)

    使用了插件WPFToolKit.(直接在Nuget中搜即可) 使用方法参考这篇文章: http://www.broculos.net/2014/04/wpf-autocompletebox-autoc ...

  2. C语言 · 成绩的等级输出

    输入一个百分制的成绩t后,按下式输出它的等级.等级为:90~100为A,80~89为B,70~79为C,60~69为D,0~59为E. 样例输入 98 样例输出 A   #include<std ...

  3. 解析:SO_REUSEADDR bind: address in use

    http://blog.sina.com.cn/s/blog_53a2ecbf010095db.html socket中的SO_REUSEADDR Q: 我正在写一个unix server程序,不是d ...

  4. kernel printk信息显示级别

    涉及文件:kernel/printk.c include/linux/kernel.h用printk内核会根据日志级别把消息打印到当前控制台上.信息正常输出前提是--日志输出级别(msg_log_le ...

  5. System.map

    System.map是一个特定内核的内核符号表.它是你当前运行的内核的System.map的链接. 内核符号表是怎么创建的呢? System.map是由“nm vmlinux”产生并且不相关的符号被滤 ...

  6. javascript那些不应该忽视的细节

    1.null与Object.prototype使用typeof操作符结果都是object,但他们都不是Object的实例. typeof null // object null instanceof ...

  7. 一站式学习Wireshark(七):Statistics统计工具功能详解与应用

    Wireshark一个强大的功能在于它的统计工具.使用Wireshark的时候,我们有各种类型的工具可供选择,从简单的如显示终端节点和会话到复杂的如Flow和IO图表.本文将介绍基本网络统计工具.包括 ...

  8. log4j.properties的配置与详细说明

    1. 新建测试项目testLog,并引入jar包. 2. 在src目录下新建log4j.properties文件,然后开始配置文件. log4j.rootLogger=INFO,stdout,debu ...

  9. PHP7新特性的介绍

    关于PHP 20年的发展历史: 迄今为止最流行的WEB开发语言: 超过82%的网站都会使用PHP作为他们的服务端开发语言: 新特性介绍 PHP NG – Zend Engine 3 抽象语法树 64位 ...

  10. 04 memory structure

    本章提要--------------------------------------------------SGA: System Global Area ( 包括background process ...