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. 一款由css3和jquery实现的卡面折叠式菜单

    之前已经为大家介绍了好多导航菜单.今天为大家再带来一款由css3和jquery实现的卡片折叠式菜单.当菜单关闭的时候,有三维堆叠的效果.我们一起看下效果图: 在线预览   源码下载 html代码: & ...

  2. 如何设置Windows server 2008 R2登陆密码?

    我第一次用该系统,登陆系统需要设置新密码,科沃怎么设置新密码都是新密码不符合条件,不允许我创建,该怎么办? 答案: 至少6个字符,要包括大小写.符号.数字这四组字符中的三组.如12abAB是有效密码, ...

  3. Linux 含有ext 分区的镜像无法再Windows上拷贝的解决办法

    首先,参考http://www.cnblogs.com/chenfulin5/p/6649801.html 通过上面这个链接,做一个镜像出来. // 1. 制作一个镜像文件,里面包含200M左右的空间 ...

  4. C 程序的存储空间记录

    一直以来,我们只是单纯的去运行执行 C 程序,并没有关心这个可执行文件里面包含着什么东西. 参考UNIX 环境高级编程 7.6,记录C程序的存储空间布局. C程序由 正文段,初始化数据段,非初始化数据 ...

  5. 从钉钉微应用定制化导航栏看如何实现Hybrid App开发框架

    钉钉是阿里的一款企业应用APP,里面提供了混合微应用的SDK,这其实最好的一种APP架构模式.微信公众号浏览器JSSDK也提供了类似功能特性,在在交互性上没有钉钉深入. http://ddtalk.g ...

  6. 跟我学TCP/IP系列

    最近在微信公众号“java与Android开发专栏”,看到系列文章“跟我学TCP/IP系列”,共7章,文章很赞. 系列文章在CSDN上也有分发,下列出地址以备以后查看(版权问题不转载内容). http ...

  7. 六步破解win2008R2登录密码

    防火墙没有开启,win2008R被当成矿机,只好重新破解密码进去解决问题,试了好多方法,下列方法绝对实用简单. 破解2008登录密码的方法: 1.进入PE2.找到文件:windows\system32 ...

  8. js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. linux rename 和?????

    [root@ob2 mytmp]# ls01.txt  02.txt  03.txt  aa2.txt  aa.sh  aa.txt  tp_2017-09-143516.tar.gz  tt [ro ...

  10. JetBrains PyCharm 4.0.4 key

    用户名 yueting3527 注册码 ===== LICENSE BEGIN ===== 93347-12042010 00001FMHemWIs"6wozMZnat3IgXKXJ 2!n ...