永发信息网

java怎样读取数据库表中字段的数据类型

答案:2  悬赏:0  手机版
解决时间 2021-03-03 19:03
java怎样读取数据库表中字段的数据类型
最佳答案
Java获取数据库的表中各字段的字段名,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class TestDemo {
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://数据库IP地址:3306/数据库名称";
String user = "数据库用户名";
String pass = "数据库用户密码";
conn = DriverManager.getConnection(url, user, pass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection conn = getConnection();
String sql = "select * from AccessType";
PreparedStatement stmt;
try {
stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData data = rs.getMetaData();
for (int i = 1; i <= data.getColumnCount(); i++) {
// 获得所有列的数目及实际列数
int columnCount = data.getColumnCount();
// 获得指定列的列名
String columnName = data.getColumnName(i);
// 获得指定列的列值
int columnType = data.getColumnType(i);
// 获得指定列的数据类型名
String columnTypeName = data.getColumnTypeName(i);
// 所在的Catalog名字
String catalogName = data.getCatalogName(i);
// 对应数据类型的类
String columnClassName = data.getColumnClassName(i);
// 在数据库中类型的最大字符个数
int columnDisplaySize = data.getColumnDisplaySize(i);
// 默认的列的标题
String columnLabel = data.getColumnLabel(i);
// 获得列的模式
String schemaName = data.getSchemaName(i);
// 某列类型的精确度(类型的长度)
int precision = data.getPrecision(i);
// 小数点后的位数
int scale = data.getScale(i);
// 获取某列对应的表名
String tableName = data.getTableName(i);
// 是否自动递增
boolean isAutoInctement = data.isAutoIncrement(i);
// 在数据库中是否为货币型
boolean isCurrency = data.isCurrency(i);
// 是否为空
int isNullable = data.isNullable(i);
// 是否为只读
boolean isReadOnly = data.isReadOnly(i);
// 能否出现在where中
boolean isSearchable = data.isSearchable(i);
System.out.println(columnCount);
System.out.println("获得列" + i + "的字段名称:" + columnName);
System.out.println("获得列" + i + "的类型,返回SqlType中的编号:"+ columnType);
System.out.println("获得列" + i + "的数据类型名:" + columnTypeName);
System.out.println("获得列" + i + "所在的Catalog名字:"+ catalogName);
System.out.println("获得列" + i + "对应数据类型的类:"+ columnClassName);
System.out.println("获得列" + i + "在数据库中类型的最大字符个数:"+ columnDisplaySize);
System.out.println("获得列" + i + "的默认的列的标题:" + columnLabel);
System.out.println("获得列" + i + "的模式:" + schemaName);
System.out.println("获得列" + i + "类型的精确度(类型的长度):" + precision);
System.out.println("获得列" + i + "小数点后的位数:" + scale);
System.out.println("获得列" + i + "对应的表名:" + tableName);
System.out.println("获得列" + i + "是否自动递增:" + isAutoInctement);
System.out.println("获得列" + i + "在数据库中是否为货币型:" + isCurrency);
System.out.println("获得列" + i + "是否为空:" + isNullable);
System.out.println("获得列" + i + "是否为只读:" + isReadOnly);
System.out.println("获得列" + i + "能否出现在where中:"+ isSearchable);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
全部回答
public parameterlist getfieldlist(string tablename)throws sqlexception{ resultset rs = executequery("select * from " + tablename); resultsetmetadata meta = rs.getmetadata(); int columncount = meta.getcolumncount(); parameterlist result = new parameterlist(); for (int i = 0; i < columncount; i++) { dbtablefieldstruct field = new dbtablefieldstruct(); int cursor = i + 1; field.type = meta.getcolumntype(cursor); result.append(field); } return result; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
双峰不锈钢地址在什么地方,想过去办事
4s店修车3个多月能否要交通费
秦姓来源
平安宅e贷
经典画室在什么地方啊,我要过去处理事情
齿轮油泵主要由()组成。
龙口市老干部活动中心在什么地方啊,我要过去
宜兴阜供电营业厅地址在什么地方,我要处理点
影响建设项目进度目标实现的主要因素包括( 
凯达电动工具水泵电机这个地址在什么地方,我
15ml有多少
viano唯雅诺在奔驰里面属性什么级别
爱家商务宾馆在什么地方啊,我要过去处理事情
阅读下列材料:材料一材料二“国家本置中书、
德国斯瑞特钢琴怎么样啊?
推荐资讯
8.92➗5.8等于多少竖式
2016奥运会有值得学习的地方吗
捷安特电动车售后服务中心地址在哪,我要去那
3岁女孩喜欢和男孩子玩
同有一款手机录像的清晰度为什么不一样?
手机应用自启是什么意思?
面包车行走的时候一档不好挂 停止的情况下可
亳州市公安局交警支队车管所地址在哪,我要去
塔岭畈在什么地方啊,我要过去处理事情
UG5.0安装时说找不到源文件
老婆对我说命生得好但嫁的不好是什么意思
呼和浩特机床附件总厂技工学校在哪里啊,我有
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?