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;
- import java.sql.Types;
- //jdbc链接数据库,获取表名,字段名和数据
- public class TestMysql {
- public static void main(String[] args) throws Exception {
- String driver = "com.mysql.jdbc.Driver";
- String url = "jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true";
- String user = "root";
- String password = "mysql0774mysql";
- Class.forName(driver);
- Connection conn = DriverManager.getConnection(url, user, password);
- if (!conn.isClosed())
- System.out.println("Succeeded connecting to the Database!");
- else
- System.err.println("connect filed");
- // 获取所有表名
- Statement statement = conn.createStatement();
- getTables(conn);
- ResultSet resultSet = statement
- .executeQuery("select * from help_keyword");
- // 获取列名
- ResultSetMetaData metaData = resultSet.getMetaData();
- for (int i = 0; i < metaData.getColumnCount(); i++) {
- // resultSet数据下标从1开始
- String columnName = metaData.getColumnName(i + 1);
- int type = metaData.getColumnType(i + 1);
- if (Types.INTEGER == type) {
- // int
- } else if (Types.VARCHAR == type) {
- // String
- }
- System.out.print(columnName + "\t");
- }
- System.out.println();
- // 获取数据
- while (resultSet.next()) {
- for (int i = 0; i < metaData.getColumnCount(); i++) {
- // resultSet数据下标从1开始
- System.out.print(resultSet.getString(i + 1) + "\t");
- }
- System.out.println();
- }
- statement.close();
- conn.close();
- }
- public static String convertDatabaseCharsetType(String in, String type) {
- String dbUser;
- if (in != null) {
- if (type.equals("oracle")) {
- dbUser = in.toUpperCase();
- } else if (type.equals("postgresql")) {
- dbUser = "public";
- } else if (type.equals("mysql")) {
- dbUser = null;
- } else if (type.equals("mssqlserver")) {
- dbUser = null;
- } else if (type.equals("db2")) {
- dbUser = in.toUpperCase();
- } else {
- dbUser = in;
- }
- } else {
- dbUser = "public";
- }
- return dbUser;
- }
- private static void getTables(Connection conn) throws SQLException {
- DatabaseMetaData dbMetData = conn.getMetaData();
- // mysql convertDatabaseCharsetType null
- ResultSet rs = dbMetData.getTables(null,
- convertDatabaseCharsetType("root", "mysql"), null,
- new String[] { "TABLE", "VIEW" });
- while (rs.next()) {
- if (rs.getString(4) != null
- && (rs.getString(4).equalsIgnoreCase("TABLE") || rs
- .getString(4).equalsIgnoreCase("VIEW"))) {
- String tableName = rs.getString(3).toLowerCase();
- System.out.print(tableName + "\t");
- // 根据表名提前表里面信息:
- ResultSet colRet = dbMetData.getColumns(null, "%", tableName,
- "%");
- while (colRet.next()) {
- String columnName = colRet.getString("COLUMN_NAME");
- String columnType = colRet.getString("TYPE_NAME");
- int datasize = colRet.getInt("COLUMN_SIZE");
- int digits = colRet.getInt("DECIMAL_DIGITS");
- int nullable = colRet.getInt("NULLABLE");
- // System.out.println(columnName + " " + columnType + " "+
- // datasize + " " + digits + " " + nullable);
- }
- }
- }
- System.out.println();
- // resultSet数据下标从1开始 ResultSet tableRet =
- //conn.getMetaData().getTables(null, null, "%", new String[] { "TABLE" });
- //while (tableRet.next()) {
- // System.out.print(tableRet.getString(3) + "\t");
- //}
- //System.out.println();
- }
- }
jdbc链接数据库,获取表名,字段名和数据的更多相关文章
- MySql 获取表的字段名
mysql安装成功后可以看到已经存在mysql.information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库 ...
- 获取sqlserver数据库中所有库、表、字段名的方法
获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...
- Sqlserver列出所有数据库名,表名,字段名
Sqlserver列出所有数据库名,表名,字段名 1.获取所有数据库名: ? 1 SELECT Name FROM Master..SysDatabases ORDER BY Name 注 ...
- 4、原生jdbc链接数据库常用资源名
原生jdbc链接数据库要素:#MySql:String url="jdbc:mysql://localhost:3306/数据库名";String name="root& ...
- [SQL]某数据库中查出包含 字段名 的所有表名
--利用SQL语句来查询字段所在的表 --从某数据库中查出包含 字段名 字段的所有表名 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE ...
- KO ------- 表中字段名和实体类属性名不一致
-----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就 ...
- postgress数据库 出现大写字母 字段名但是提示说不存在
select BSK001 from dbdata 报错: column "bsk001" of relation "dbdata" does not exis ...
- 数据库的表的字段名称与实体类(pojo)不对应解决方案
数据库的表的字段名称与实体类(pojo)不对应解决方案 数据库表  CHARACTER SET utf8 COL ...
- ExtJs TreePanel 全选与反选
selectAll: function() { this.getRootNode().eachChild(function (child) { child.set('checked', true); ...
- Android——Button的颜色
.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
- Java命令学习系列(三)——Jmap
Java命令学习系列(三)——Jmap 2015-05-16 分类:Java 阅读(479) 评论(0) Jmap jmap是JDK自带的工具软件,主要用于打印指定Java进程(或核心文件.远程调试服 ...
- 去掉iPhone、iPad的默认按钮样式
只要在样式里面加一句去掉css去掉iPhone.iPad的默认按钮样式就可以了!~ input[type="button"], input[type="submit&qu ...
- json数据 提示框flash.now[:notice] flash.now[:alert]
实现json.做出提示框 1.在controller中使用flash.now[:alert] = "str"方法来做print def topodata #@vnic = Vnic ...
- 關於 WebClient wc = new WebClient() 下載第三方數據不能進安安信任異常
報錯異常:The underlying connection was closed: Could not establish trust relationship for SSL/TLS secure ...
- SQLServer 跨库查询实现方法
不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Serve ...
- 实验五 ASP.NET状态管理和应用程序配置 总结
这次实验内容是对ASP.NET配置系统的了解和使用,还有就是对Application.Session.ViewState对象的应用.首先,我想说ASP.NET配置系统真的大大超乎我的想象,我以为会是上 ...
- 剑指offer_面试题5_从尾到头打印链表(栈和递归实现)
题目:输入一个链表的头结点,从尾到头反过来打印出每一个节点的值 考察 单链表操作.栈.递归等概念. 理解:要实现单链表的输出,那么就须要遍历.遍历的顺序是从头到尾.而节点输出的顺序是从尾到头.因此,先 ...