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. golang socket 实现分析(一)

    socket:tcp/udp.ip构成了网络通信的基石,tcp/ip是面向连接的通信协议 要求建立连接时进行3次握手确保连接已被建立,关闭连接时需要4次通信来保证客户端和,服务端都已经关闭 在通信过程 ...

  2. 二叉树、红黑树、伸展树、B树、B+树

    好多树啊,程序猿砍树记,吼吼. 许多程序要解决的关键问题是:快速定位特定排序项的能力. 第一类:散列 第二类:字符串查找 第三类:树算法 树算法可以在辅助存储器中存储大量的数据. 二叉树.红黑树和伸展 ...

  3. Eclipse里安装插件

    1.在eclipse中选择 help->install new software. 2.在work with 框中输入:Indigo - http://download.eclipse.org/ ...

  4. Tslib步骤以及出现问题的解决方案(转)

    嵌入式设备中触摸屏使用非常广泛,但触摸屏的坐标和屏的坐标是不对称的,需要校准.校准广泛使用的是开源的tslib. Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波.去抖.校准等功能, ...

  5. KafkaStream时间戳问题CreateTime = -1引起的程序中断

    Exception in thread "app-8835188a-e0a0-46da-ac2a-6820ec197628-StreamThread-1" org.apache.k ...

  6. iOS边练边学--自定义等高的cell

    一.storyboard自定义cell <1>创建一个继承自UITableViewCell的子类,比如ChaosDealCell <2>在storyboard中 <2.1 ...

  7. R中利用apply、tapply、lapply、sapply、mapply、table等函数进行分组统计

    apply函数(对一个数组按行或者按列进行计算): 使用格式为: apply(X, MARGIN, FUN, ...) 其中X为一个数组:MARGIN为一个向量(表示要将函数FUN应用到X的行还是列) ...

  8. Mac之安装zsh

    1.安装homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/in ...

  9. asp.net mvc webconfig配置文件操作

    读取web.config数据,可以不用编译.如发布后,非常有用web.config文件<configuration> <appSettings> <add key=&qu ...

  10. 提取Unity游戏资源和脚本

    UnityStudio UnityStudio可以直接在自己的软件上查看图片.shader.文本.还能直接播放音频.甚至还能看场景Hierarchy视图的树状结构.强烈推荐用UnityStudio. ...