JAVA 获取数据库中表的结构
来源:互联网 发布:淘宝网页版电脑版 编辑:程序博客网 时间:2024/06/09 15:43
package conn;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.ResultSetMetaData;
import com.mysql.jdbc.Statement;
public class table {
private Connection connection;
private Statement statement;
public void initConnection(String driverClass, String dbUrl, String username, String password) throws Exception {
Class.forName(driverClass);
this.connection = (Connection) DriverManager.getConnection(dbUrl, username, password);
this.statement = (Statement) this.connection.createStatement();
}
public ResultSetMetaData getMetaDataFromTable(String tableName) throws Exception {
String sql = "SELECT * FROM " + tableName + " WHERE 1 != 1"; //.toUpperCase()
ResultSet rs = this.statement.executeQuery(sql);
return (ResultSetMetaData) rs.getMetaData();
}
public void displayMetaData(ResultSetMetaData metaData) throws Exception {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < metaData.getColumnCount(); i++) {
sb.append("\n");
sb.append(metaData.getTableName(i + 1));
sb.append(".");
sb.append(metaData.getColumnName(i + 1));
sb.append("|");
sb.append(metaData.getColumnType(i + 1));
sb.append("|");
sb.append(metaData.getColumnTypeName(i + 1));
sb.append("|");
sb.append(metaData.getColumnDisplaySize(i + 1));
sb.append("|");
}
System.out.println(sb.toString());
}
public static void main(String[] args) throws Exception{
table a=new table();
a.initConnection("com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1:3306/test", "root", "888888");
ResultSetMetaData metaData=a.getMetaDataFromTable("home");
a.displayMetaData(metaData);
}
}
结果:
home.id|4|INT|5|
home.City|12|VARCHAR|10|
home.uid|4|INT|5|
注意:
ResultSetMetaData 对象可以用于查找 ResultSet 中的列的类型和特性。
方法索引
getCatalogName(int)
获得列的表的目录名。
getColumnCount()
获得 ResultSet 中的列数。
getColumnDisplaySize(int)
获得列的正常的最大字符宽度。
getColumnLabel(int)
获得打印输出和显示的建议列标题。
getColumnName(int)
获得列名。
getColumnType(int)
获得一个列的 SQL 类型。
getColumnTypeName(int)
获得一个列的数据源特定的类型名。
getPrecision(int)
获得一个列的十进制数字的位数。
getScale(int)
获得一个列的十进制小数点右面数字的位数。
getSchemaName(int)
获得一个列的表的模式。
getTableName(int)
获得列的表名。
isAutoIncrement(int)
列是否自动计数,因此它是只读的。
isCaseSensitive(int)
列是否区分大小写。
isCurrency(int)
列是否是通用的。
isDefinitelyWritable(int)
对列的写操作是否一定成功。
isNullable(int)
在该列中是否可以放一个 NULL 值。
isReadOnly(int)
列是否是不可写的。
isSearchable(int)
该列是否是可以查询的。
isSigned(int)
该列是否是有符号数。
isWritable(int)
对该列的写操作是否会成功。
http://blog.csdn.net/ycb1689/article/details/7530389
- JAVA 获取数据库中表的结构
- JAVA 获取数据库中表的结构
- java获取MYSQL5。0中所有数据库中表的列表
- 显示数据库中表结构的SQL语句
- 获取SqlServer中表结构
- 获取数据库中表的列名
- 获取数据库中表名
- Java Web中表单数据的获取
- 编写kettle当中的java脚本获取多个数据库中表的数据
- 获取SQLServer中表结构字段
- 获取数据库的名称,数据库中表的名称
- 查询MSSQL数据库中表结构的详细信息的SQL语句
- SQLServer导出数据库中表结构信息的方法
- 数据库中表的设计
- 数据库中表的读取
- 数据库中表的连接
- 数据库中表的操作
- 数据库中表的curd
- 2.SOAP 语法
- 解决IIS中浏览文件变下载
- Linux下的系统服务
- C语言typedef的用法详解
- git基础常用命令
- JAVA 获取数据库中表的结构
- android中如何发送一个广播
- 机器学习基础(四十)—— 将距离转换为权重
- 自定义EditText(带删除按钮)
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
- 从 png图片读取raw image data
- jquery tmpl 详解
- php连接sqlserver
- 解决单机RDBMS的性能瓶颈问题的几个思路