如果是db2 的表名:
list tables
得到每一个表的详细信息字段名,字段属性(类型,文字长度,备注)
describe table 具体的表名
平时我就这么获得这些信息
public class TestDemo {
public static Connection getConnection() {
Connection conn = null;
try {
ClassforName("commysqljdbcDriver");
String url = "jdbc:mysql://localhost:3306/struts2Demo";
String user = "root";
String pass = "ncs-cyber_tj";
conn = DriverManagergetConnection(url, user, pass);
} catch (ClassNotFoundException e) {
eprintStackTrace();
} catch (SQLException e) {
eprintStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection conn = getConnection();
String sql = "select from AccessType";
PreparedStatement stmt;
try {
stmt = connprepareStatement(sql);
ResultSet rs = stmtexecuteQuery(sql);
ResultSetMetaData data = rsgetMetaData();
for (int i = 1; i <= datagetColumnCount(); i++) {
// 获得所有列的数目及实际列数
int columnCount = datagetColumnCount();
// 获得指定列的列名
String columnName = datagetColumnName(i);
// 获得指定列的列值
int columnType = datagetColumnType(i);
// 获得指定列的数据类型名
String columnTypeName = datagetColumnTypeName(i);
// 所在的Catalog名字
String catalogName = datagetCatalogName(i);
// 对应数据类型的类
String columnClassName = datagetColumnClassName(i);
// 在数据库中类型的最大字符个数
int columnDisplaySize = datagetColumnDisplaySize(i);
// 默认的列的标题
String columnLabel = datagetColumnLabel(i);
// 获得列的模式
String schemaName = datagetSchemaName(i);
// 某列类型的精确度(类型的长度)
int precision = datagetPrecision(i);
// 小数点后的位数
int scale = datagetScale(i);
// 获取某列对应的表名
String tableName = datagetTableName(i);
// 是否自动递增
boolean isAutoInctement = dataisAutoIncrement(i);
// 在数据库中是否为货币型
boolean isCurrency = dataisCurrency(i);
// 是否为空
int isNullable = dataisNullable(i);
// 是否为只读
boolean isReadOnly = dataisReadOnly(i);
// 能否出现在where中
boolean isSearchable = dataisSearchable(i);
Systemoutprintln(columnCount);
Systemoutprintln("获得列" + i + "的字段名称:" + columnName);
Systemoutprintln("获得列" + i + "的类型,返回SqlType中的编号:"
+ columnType);
Systemoutprintln("获得列" + i + "的数据类型名:" + columnTypeName);
Systemoutprintln("获得列" + i + "所在的Catalog名字:"
+ catalogName);
Systemoutprintln("获得列" + i + "对应数据类型的类:"
+ columnClassName);
Systemoutprintln("获得列" + i + "在数据库中类型的最大字符个数:"
+ columnDisplaySize);
Systemoutprintln("获得列" + i + "的默认的列的标题:" + columnLabel);
Systemoutprintln("获得列" + i + "的模式:" + schemaName);
Systemout
println("获得列" + i + "类型的精确度(类型的长度):" + precision);
Systemoutprintln("获得列" + i + "小数点后的位数:" + scale);
Systemoutprintln("获得列" + i + "对应的表名:" + tableName);
Systemoutprintln("获得列" + i + "是否自动递增:" + isAutoInctement);
Systemoutprintln("获得列" + i + "在数据库中是否为货币型:" + isCurrency);
Systemoutprintln("获得列" + i + "是否为空:" + isNullable);
Systemoutprintln("获得列" + i + "是否为只读:" + isReadOnly);
Systemoutprintln("获得列" + i + "能否出现在where中:"
+ isSearchable);
}
} catch (SQLException e) {
eprintStackTrace();
}
}
}
比较多,慢慢看,都可以获取。参考:百度知道。
>
import javasql;
import javautilArrayList;
import javautilHashtable;
import javautilList;public class Test{ public static void main(String[] args) throws Exception {
// 驱动
String driver = "commysqljdbcDriver";
// 数据库连接
String url = "jdbc:mysql://localhost:3306/test";
// 用户名
String user = "root";
// 数据库密码
String password = "admin";
// 加载驱动
ClassforName(driver);
// 获取链接
Connection connection = DriverManager
getConnection(url, user, password);
// 创建查询声明
PreparedStatement preparedStatement = connection
prepareStatement("select from dept");
// 获取结果
ResultSet resultSet = preparedStatementexecuteQuery();
// 获取各个列的信息
ResultSetMetaData metaData = resultSetgetMetaData();
// 一条数据保存在一个Hashtable 将所有Hashtable存放到list
List<Hashtable<String, Object>> rows = new ArrayList<Hashtable<String, Object>>();
while (resultSetnext()) {
Hashtable<String, Object> row = new Hashtable<String, Object>();
for (int i = 1; i <= metaDatagetColumnCount(); i++) {
// 打印列名
Systemoutprintln(metaDatagetColumnName(i));
rowput(metaDatagetColumnName(i), resultSetgetObject(i));
}
rowsadd(row);
}
resultSetclose();
preparedStatementclose();
connectionclose();
}}
下面为您介绍的是查询表的字段名的sql语句写法 sql语句可以实现许多的功能 希望可以您在学习sql语句使用方面获得启示
select name from syscolumns where id = (select id from sysobjects where type = u and name = 相应表名 ) 或者 select name from syscolumns where id = object_id( 相应表名 ) 用以上sql语句输入相应表名就可以查到表的字段名 对应好数据库 查询是否存在该表语句
而判断表名在数据库中是否存在的方法是
if not object_id( 相应表名 ) is null print 存在 这次查询表中的字段名的目标是在写程序的时候需要写一点sql语句 但是表的字段太多了 如果一个一个去复制的话太慢了 而且有可能会复制漏了某个字段 所以利用自己数据库的知识 写了个sql语句直接生成字段名字符串 例如下面我要写一个select语句 需要生成表所有的字段
declare @s varchar( ) select @s = isnull(@s+ ) + [name] from syscolumns where id = object_id( 相应表名 ) select @s 获取字段名已经字段类型 类型长度
lishixinzhi/Article/program/MySQL/201311/29550
以上就是关于如何获取数据库中表名、字段名、字段属性信息全部的内容,包括:如何获取数据库中表名、字段名、字段属性信息、怎么获取表的字段名jdbc问题、java如何获得数据库表中各字段的字段名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)