日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java 数据库字段_JAVA如何获得数据库的字段及字段类型

發布時間:2024/10/8 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 数据库字段_JAVA如何获得数据库的字段及字段类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標簽:

Java獲取數據庫的表中各字段的字段名,代碼如下:

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();

}

}

}

實際應用中也可以用case子句根據不同字段類型做不同處理:

switch(columnType){

case Types.NUMERIC :classFactory.setprop(entity, columnName, rs.getLong(i));

break;

case Types.VARCHAR:classFactory.setprop(entity, columnName, rs.getString(i));

break;

case Types.DATE:classFactory.setprop(entity, columnName, rs.getDate(i));

break;

case Types.TIMESTAMP:classFactory.setprop(entity, columnName, rs.getTimestamp(i));

break;

case Types.TIME:classFactory.setprop(entity, columnName, rs.getTime(i));

break;

case Types.BOOLEAN:classFactory.setprop(entity, columnName, rs.getBoolean(i));

break;

case Types.ARRAY :classFactory.setprop(entity, columnName, rs.getArray(i));

break;

case Types.BIGINT :classFactory.setprop(entity, columnName, rs.getInt(i));

break;

case Types.BINARY:classFactory.setprop(entity, columnName, rs.getBinaryStream(i));

break;

case Types.BLOB:classFactory.setprop(entity, columnName, rs.getBlob(i) );

break;

case Types.CHAR:classFactory.setprop(entity, columnName, rs.getString(i));

break;

case Types.INTEGER:classFactory.setprop(entity, columnName, rs.getInt(i));

break;

case Types.DOUBLE :classFactory.setprop(entity, columnName,rs.getDouble(i));

break;

case Types.FLOAT:classFactory.setprop(entity, columnName, rs.getFloat(i));

break;

case Types.SMALLINT:classFactory.setprop(entity, columnName, rs.getInt(i));

break;

case Types.DECIMAL:classFactory.setprop(entity, columnName, rs.getLong(i));

break;

default:classFactory.setprop(entity, columnName, rs.getObject(i));

break;

}

標簽:

總結

以上是生活随笔為你收集整理的java 数据库字段_JAVA如何获得数据库的字段及字段类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。