標籤:new com meta put 返回結果 resultset get 開始 lda
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.testng.annotations.Test;
public class GetMySqlData {
public Map<Object, Object> getData(String sqlConn, String account, String password, String sql, String[] reNameStr)
throws Exception {
// 1.載入MySql的JDBC驅動
Class.forName("com.mysql.jdbc.Driver");
// 2.獲得資料庫的串連
Connection conn = DriverManager.getConnection("jdbc:mysql://"+sqlConn, account, password);
// 3.通過資料庫的串連操作資料庫,實現增刪改查
Statement stmt = conn.createStatement();
// 4.執行sql,並返回結果集,擷取到的是行對象
ResultSet rs = stmt.executeQuery(sql);
// 用於存放擷取到的列名和值
Map<Object, Object> invoiceMain = new HashMap<Object, Object>();
// 判斷是否查詢到記錄
if (!rs.next()) {
throw new AlertException("未查詢到對應的記錄");
}
// 將指標置到第一行之前
rs.beforeFirst();
// 擷取總列數
int cloumCount = rs.getMetaData().getColumnCount();
// 構造容量為總列數的String數組,存放列名
String[] cloumName = new String[cloumCount];
for (int i = 0; i < cloumCount; i++) {
cloumName[i] = rs.getMetaData().getColumnName(i + 1);// 結果集中的列名指標是從1開始,並非0
System.out.println(rs.getMetaData().getColumnName(i + 1));
}
// 5.取出結果集中需要的欄位
while (rs.next()) {
for (int i = 0; i < cloumName.length; i++) {
Object key = reNameStr[i];
Object value = rs.getString(i + 1);
if (key.equals("發票類型")) {
if (value.equals("1")) {
value = "GPO";
} else if (value.equals("3")) {
value = "其他";
}
}
invoiceMain.put(key, value);
}
}
Iterator<Object> itr = invoiceMain.keySet().iterator();
while (itr.hasNext()) {
Object key = itr.next();
Object value = invoiceMain.get(key);
System.out.println("key:" + key + ";value:" + value);
}
return invoiceMain;
}
}
JAVA對Mysql資料庫的操作