java获取mysql表结构
获取表结构与字段信息:
package com.mysql;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.AbstractMap.SimpleEntry;
import java.util.Map.Entry;
public class TestDbMetaData {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
String dburl = "jdbc:mysql://127.0.0.1:3306/fhadmin";
String dbuser = "root";
String dbpwd = "root";
Class.forName("com.mysql.jdbc.Driver");
List<String> tableName = new ArrayList<String>();
Map<String, List<Entry<String, String>>> tables = new HashMap<String, List<Entry<String, String>>>();
Connection con = DriverManager.getConnection(dburl, dbuser, dbpwd);
DatabaseMetaData metaDb = con.getMetaData();
ResultSet rsTableName = metaDb.getTables(null, null, null, new String[] { "table" });
while (rsTableName.next()) {
String tmpTableName = rsTableName.getString("table_name");
tableName.add(tmpTableName);
String sql = "select * from " + tmpTableName;
Statement st = con.createStatement();
ResultSet rsColumName = st.executeQuery(sql);
ResultSetMetaData metaRs = rsColumName.getMetaData();
List<Entry<String, String>> colums = new ArrayList<Entry<String, String>>();
for (int i = 1; i <= metaRs.getColumnCount(); i++) {
System.out.print( metaRs.getColumnName(i)+","+metaRs.getColumnClassName(i).substring(metaRs.getColumnClassName(i).lastIndexOf(".") + 1));
System.out.println(",是否为空:"+metaRs.isNullable(i));//0 不能为空 1可以为空
//System.out.println(metaRs.getColumnLabel(i));
//System.out.println(metaRs.getColumnDisplaySize(i));
String columName = metaRs.getColumnName(i);
// 某列类型的精确度(类型的长度)
int precision = metaRs.getPrecision(i);
// 小数点后的位数
int scale = metaRs.getScale(i);
// 是否自动递增
boolean isAutoInctement = metaRs.isAutoIncrement(i);
String aa= metaRs.getColumnTypeName(i);
String columType = "";
switch (metaRs.getColumnType(i )) {
case Types.CHAR:
columType = "String";
break;
case Types.BIGINT:
columType = "int";
break;
case Types.DATE:
columType = "Date";
break;
case Types.DECIMAL:
columType = "int";
break;
case Types.INTEGER:
columType = "int";
break;
case Types.NCHAR:
columType = "String";
break;
case Types.NUMERIC:
columType = "int";
break;
case Types.NVARCHAR:
columType = "String";
break;
case Types.SMALLINT:
columType = "int";
break;
case Types.TIME:
columType = "Date";
break;
case Types.TINYINT:
columType = "int";
break;
case Types.TIMESTAMP:
columType = "Date";
break;
case Types.VARCHAR:
columType = "String";
break;
default:
throw new Exception("数据类型不支持,orm映射异常");
}
Entry<String, String> entry = new SimpleEntry(columName, columType);
colums.add(entry);
}
tables.put(tmpTableName, colums);
}
Iterator<Entry<String, List<Entry<String, String>>>> iter = tables.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, List<Entry<String, String>>> entry = iter.next();
System.out.println("表名:" + entry.getKey());
for (int i = 0; i < entry.getValue().size(); i++) {
System.out.print(entry.getValue().get(i).getKey() + " " + entry.getValue().get(i).getValue());
}
System.out.println();
}
System.out.println("complete...");
}
}
java获取mysql表结构相关推荐
- java 获取oracle表结构_Java导出oracle表结构实例详解
Java导出oracle表结构实例详解 发布于 2020-7-20| 复制链接 摘记: Java导出oracle表结构实例详解最近用到的,因为plsql是收费的,不让用,找了很多方法终于发现了这个. ...
- Java获取数据库表结构
Java能够操作数据库,当然能够获取到数据库的表结构. 虽然各个DB厂商查询数据库表结构的语句不同,但是Java中通过封装,可以使用共同的API来获取. 各个具体的DB厂商有各自的实现,只需导入相应的 ...
- java获取mysql表的主键_Spring中获取数据库表主键序列
在程序开发中,我们经常有写数据库表的操作,数据表中经常带有主键自增序列,如何获取自增序列.spring中提供了相应的类 DataFieldMaxValueIncrementer. DataFieldM ...
- java 获取oracle表结构_获取Oracle中所有表的列表?
回答(19) 2 years ago 我们可以从以下查询获取所有表格,包括列详细信息: SELECT * FROM user_tab_columns; 2 years ago 使用sqlplus更好地 ...
- java 获取mysql表的大小_oracle中查询表大小和表空间大小 JAVA
1.查看Oracle数据库中表空间信息的工具方法: 使用oracle enterprise manager console工具,这是oracle的客户端工具,当安装oracle服务器或客户端时会自动安 ...
- JAVA实现导出mysql表结构到Word详细注解版
JAVA实现导出mysql表结构到Word详细注解版 转自https://blog.csdn.net/weixin_42041153/article/details/109739073 本文在原文中一 ...
- mysql 一键获取数据库表结构
作用: 1.获取当前数据库所有的表信息 2.获取当前表结构信息 查询数据库中的表: -- 查询数据库中的表 SELECT * FROM information_schema.`TABLES` wher ...
- Java获取数据库表的字段信息,及如何将ResultSet转为json
为什么80%的码农都做不了架构师?>>> 一.Java获取数据库表的各个字段的相关信息 在某些开发情景中,需要获取数据库中表的各个字段的相关信息,如字段名,字段类型,字段大小等 ...
- 修改mysql表结构语句
昨天在执行碰到几个报错,总提示缺少mysql表结构里的字段什么的,当时有点没头绪不知道从哪里着手,再次记录一下修改表结构的语句,保证下次不会在出现此类问题; mysql 修改表结构语句 ALTER T ...
最新文章
- 区块链有哪些技术特征
- 什么是多重共线性问题?如何判别多重共线性问题?怎么避免多重共线性对模型和学习的干扰?
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.8 创建数据库...
- CAN 总线 之一 总线拓扑、物理电平、发展史 详解
- 用vmware-converter4把linux 迁移到ESX4.1中
- 《C++ Primer》7.3.3节练习
- java手机象棋软件下载,Java手机网络版象棋游戏附源码JAVA游戏源码下载
- React15.6.0实现Modal弹层组件
- 1万吨猪肉只够吃1.5小时,中国人是有多爱猪肉?
- 全国各地收货详细地址_2020高考成绩在哪里查询 2020全国各地高考分数查询时间地址最新...
- Ubuntu Server Download
- Rust : codewars的Sum of Pairs
- 使用Python,matplotlib绘制Nomogram列线图
- 计算机怎么调整桌面图标的大小,电脑显示器屏幕图标大小如何设置_电脑显示屏内图标大小怎么调...
- 莫教引动虚阳发,精竭容枯百病 侵
- 【怎么用u盘装系统】
- 一个SAP开发人员的双截棍之路
- 微信小程序python token验证_微信小程序爬虫遇到 token 的问题
- ieg技术总监_干货!从程序员到技术总监,大牛内部分享的资料
- 极光推送之java后台封装REST API
热门文章
- mysql构建镜像时写入密码_用Dockerfile手动创建mysql5.7主从镜像
- ios php range,PHP range() 函数 - PHP 基础教程
- docker安装_以简便的方式监控Docker容器中的ADF应用程序
- html 滚动条_数十种自定义多彩多样滚动条样式
- 特征值与特征向量 matlab数值解,用MATLAB和numpy求解特征值和特征向量,matlab,与
- Android字体占有内存,android随意创建字体对象引发的应用程序运行时占用内存过大...
- JAVA写出来的塔防能有多好玩?......真香!
- 一口气带你踩完五个 List 的大坑!
- fpm制作mysql rpm包_fpm制做mysql-5.6.33 rpm包
- 动易html编辑器,文章内容一键排版功能——动易5.1版新特性