A. java怎樣獲取mysql資料庫欄位內容
你用的是什麼資料庫?
哦...呵呵剛沒注意標題...
這個我以前寫的,
假設你的用戶名和密碼都是root,你看下吧,不過在運行之前要先導入連接的那個jar文件
import java.sql.*;
public class TestConnectMySQL {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance(); // new一個Driver
conn = DriverManager.getConnection("jdbc:mysql://localhost/A?" //連接MySQL 不理解就記住
+ "user=root&password=root");
stmt = conn.createStatement(); //通過連接創建(createStatement)一個語句對象,不是new
rs = stmt.executeQuery("select * from pers"); //執行查詢,返回一個結果集rs相當於一個游標
while (rs.next()) { //循環取得結果集(遍歷)
System.out.println(rs.getString("b") + " " //把某一欄位的內容 當成一個字元串拿出來,
+ rs.getString("c") + " " //也可以用其它的,比如rs.getInt("");等
+ rs.getString("d"));
}
} catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally { //不要忘了關閉
try {
if (conn != null) {
conn.close();
conn = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
B. java獲取資料庫數據
1、對應資料庫中的表創建實體類(entity),封裝a、b、c等欄位。
2、使用jdbc查詢資料庫,一行數據對應一個實體對象,放進一個集合List<entity>中。
C. java如何獲得資料庫表中各欄位的欄位名
Java獲取資料庫的表中各欄位的欄位名,代碼如下:
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.PreparedStatement;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
publicclassTestDemo{
(){
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();
}
}
}