java將資料庫結果集封裝成Map, java獲取資料庫欄位 (修定)
阿新 • • 發佈:2019-01-28
這段程式碼是將結果集封裝到Map裡,欄位為key,記錄為value。然後再將每個Map新增到List裡。
大家有什麼建議和想法可以留言給我。
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
-
import
- publicclass DBHelper {
- publicstaticvoid main(String[] args) throws ClassNotFoundException,
- SQLException {
- Class.forName("oracle.jdbc.driver.OracleDriver");
- String url = "jdbc:oracle:thin:@localhost:1521:orcl";
-
String user = "ssmy"
- String password = "ssmy";
- Connection conn = DriverManager.getConnection(url, user, password);
- Statement stmt = conn.createStatement();
- /*//造資料
- * for(char letter='a';letter<='z';letter++){ int id = letter-97; String
-
* name = ""; String sex = (id&1)!=0?"男":"女"; String state = "Y";
- *
- * String sql =
- * "insert into person (id,name, sex,state) values("+id+","+
- * name+","+sex+","+state+")"; ps.execute(sql); }
- */
- ResultSet rs = stmt.executeQuery("select t.* from SSMY_SYS_USER t");
- ResultSetMetaData data = rs.getMetaData();
- ArrayList<HashMap<String, String>> al = new ArrayList<HashMap<String, String>>();
- while (rs.next()) {
- HashMap<String, String> map = new HashMap<String, String>();
- for (int i = 1; i <= data.getColumnCount(); i++) {// 資料庫裡從 1 開始
- String c = data.getColumnName(i);
- String v = rs.getString(c);
- System.out.println(c + ":" + v + "\t");
- map.put(c, v);
- }
- System.out.println("======================");
- al.add(map);
- }
- System.out.println(al);
- rs.close();
- stmt.close();
- conn.close();
- }
- }