java获取数据库表字段,java如何获得数据库表中各字段的字段名
大家好,感谢邀请,今天来为大家分享一下java获取数据库表字段的问题,以及和java如何获得数据库表中各字段的字段名的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
java如何获得数据库表中各字段的字段名
Java获取数据库的表中各字段的字段名,代码如下:
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.PreparedStatement;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
publicclassTestDemo{
publicstaticConnectiongetConnection(){
Connectionconn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
Stringurl="jdbc:mysql://数据库IP地址:3306/数据库名称";
Stringuser="数据库用户名";
Stringpass="数据库用户密码";
conn=DriverManager.getConnection(url,user,pass);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
returnconn;
}
publicstaticvoidmain(String[]args){
Connectionconn=getConnection();
Stringsql="select*fromAccessType";
PreparedStatementstmt;
try{
stmt=conn.prepareStatement(sql);
ResultSetrs=stmt.executeQuery(sql);
ResultSetMetaDatadata=rs.getMetaData();
for(inti=1;i<=data.getColumnCount();i++){
//获得所有列的数目及实际列数
intcolumnCount=data.getColumnCount();
//获得指定列的列名
StringcolumnName=data.getColumnName(i);
//获得指定列的列值
intcolumnType=data.getColumnType(i);
//获得指定列的数据类型名
StringcolumnTypeName=data.getColumnTypeName(i);
//所在的Catalog名字
StringcatalogName=data.getCatalogName(i);
//对应数据类型的类
StringcolumnClassName=data.getColumnClassName(i);
//在数据库中类型的最大字符个数
intcolumnDisplaySize=data.getColumnDisplaySize(i);
//默认的列的标题
StringcolumnLabel=data.getColumnLabel(i);
//获得列的模式
StringschemaName=data.getSchemaName(i);
//某列类型的精确度(类型的长度)
intprecision=data.getPrecision(i);
//小数点后的位数
intscale=data.getScale(i);
//获取某列对应的表名
StringtableName=data.getTableName(i);
//是否自动递增
booleanisAutoInctement=data.isAutoIncrement(i);
//在数据库中是否为货币型
booleanisCurrency=data.isCurrency(i);
//是否为空
intisNullable=data.isNullable(i);
//是否为只读
booleanisReadOnly=data.isReadOnly(i);
//能否出现在where中
booleanisSearchable=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(SQLExceptione){
e.printStackTrace();
}
}
}
java 获取mysql 某个数据库中所有表及表的列的信息
mysql里面提供了很多方法来获取表结构和表列:如下方法
获得某表所有列的信息:
String sql= select* from tname;//tname为某一表名
Connection conn=....;
Statement st= conn.createStatement();
ResultSet rs= st.rs= st.executeQuery(sql);
ResultSetMetaData rsmd= rs.getMetaData();
int colcount= rsmd.getColumnCount();//取得全部列数
for(int i=0;i<colcount;i++){
String colname= rsmd.getColumnName(i);//取得全部列名
}
以上为某表字段具体查询,如果是查询表的信息,如在mysql服务器上那样的查询结果的话,可以用一下代码:
ResultSet.executeQuery("show tables")可以的到所有的表信息。
ResultSet.executeQuery("describe tname")可以得到表的字段信息。//tname为表名
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();
}
}
}
关于java获取数据库表字段,java如何获得数据库表中各字段的字段名的介绍到此结束,希望对大家有所帮助。