本文目錄一覽:
- 1、java讀取MySQL數據庫
- 2、如何java編程實現提取數據庫中的表的屬性值,並可視化出來。比如說創建了一張表,屬性有id、name等等
- 3、java 獲取mysql 某個數據庫中所有表及表的列的信息
- 4、Java如何輸出mysql中表的所有數據,前提是不知道表裡面有什麼內容
- 5、怎樣用java獲取mysql 數據庫某個表中一條記錄中的指定字段值?
- 6、如何用java 獲取mysql表和字段的備註信息
java讀取MySQL數據庫
在String value = rs.getString(“name”); 之前要先rs.next();一下
你用這個來判斷密碼錯誤?
if(!rs.isBeforeFirst()){
JOptionPane.showMessageDialog(frame, “Wrong password!”);
}
isBeforeFirst() 的意思是:獲取光標是否位於此 ResultSet 對象的第一行之前。
如何java編程實現提取數據庫中的表的屬性值,並可視化出來。比如說創建了一張表,屬性有id、name等等
思路:你先建立數據庫連接:連接數據庫的方式你應該會吧。不會在網上查一下,獲取連接後:拿到連接對象:如下:
Connection conn = DriverManager.getConnection(url,userName,password);
//實現關於數據庫的整體綜合信息對象:如下:
java.sql.DatabaseMetaData dbmd=conn.getMetaData();
//獲取數據庫相關的信息,
System.out.println(“數據庫產品名: “+dbmd.getDatabaseProductName());
System.out.println(“數據庫是否支持事務: “+dbmd.supportsTransactions());
System.out.println(“數據庫產品的版本號:”+dbmd.getDatabaseProductVersion());
//獲取全表相關的信息
ResultSet tSet=dbmd.getTables(null,”%”,”%”,newString[]{“TABLE”,”VIEW”})
while(tSet.next()){
System.out.println(tSet.getRow()+”_表類別:”+tSet.getString(“TABLE_CAT”)+”_表模式:”+tSet.getString (“TABLE_SCHEM”)+”_表名稱:”+tSet.getString(“TABLE_NAME”)+”_表類型:”+tSet.getString(“TABLE_TYPE”)
}
//獲取表的主鍵列信息;
ResultSetprimaryKey=dbmd.getPrimaryKeys(“MANOR”,”PUBLIC”,”SYS_ROLE_RES”);
while(primaryKey.next()){
System.out.println(“表名:”+primaryKey.getString(“TABLE_NAME”)+”,列名:”+primaryKey.getString(“COLUMN_NAME”)
+” 主鍵名:”+primaryKey.getString(“PK_NAME”));
//其中表名:SYS_ROLE_RES,
}
//獲取表的外鍵列信息”
ResultSet foreinKey=dbmd.getImportedKeys(“MANOR”,”PUBLIC”,”SYS_ROLE_RES”);
while(foreinKey.next()){
System.out.println(“主鍵名:”+foreinKey.getString(“PK_NAME”)+”,外鍵名:”+foreinKey.getString(“FKCOLUMN_NAME”)
+”,主鍵表名:”+foreinKey.getString(“PKTABLE_NAME”)+”,外鍵表名:”+foreinKey.getString(“FKTABLE_NAME”)
+”,外鍵列名:”+foreinKey.getString(“PKCOLUMN_NAME”)+”,外鍵序號:”+foreinKey.getString(“KEY_SEQ”));
}
相獲取更多SQL參數,可參考數據庫相關方面的教材。
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;icolcount;i++){
String colname = rsmd.getColumnName(i);//取得全部列名
}
以上為某表字段具體查詢,如果是查詢表的信息,如在mysql服務器上那樣的查詢結果的話,可以用一下代碼:
ResultSet.executeQuery(“show tables”)可以的到所有的表信息。
ResultSet.executeQuery(“describe tname”)可以得到表的字段信息。//tname為表名
Java如何輸出mysql中表的所有數據,前提是不知道表裡面有什麼內容
鏈接數據庫的時候有個ResultSet知道吧。基本的鏈接我就不說了。我想你的意思是說假如程序員對數據庫的字段和值一無所知的情況下怎麼查出數據對吧? 好的,回答如下。簡單點哈。說下思路就可以。首先:1.你應該知道表名的。2.字段全部當做String來處理。3.用處理得到的ResultSet對象得到ResultSetMetaDate這個類的對象4.用ResultSetMetaDate的方法得到該表的列數,你還可以在該類的方法裡面得到該表的所有信息、比如:列名、某列的值、行數、字段的數據類型、字段的長度等等應有盡有。 回答完畢!
怎樣用java獲取mysql 數據庫某個表中一條記錄中的指定字段值?
你要用jdbc還是hibernate?jdbc直接寫sql,然後返回ResultSet.get(“字段名”)就能得到,爾hibernate是得到影射後得實體,從實體裡面拿就好了
如何用java 獲取mysql表和字段的備註信息
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();
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199065.html