最近做java項目的時候對公司項目的mysql查詢框架得到的結果不滿意,於是自己就整理了部分資料將數據庫查詢的結果封裝成map或者list。希望對大家和自己有一點幫助
1.獲取connection工具類
public final class DBUtil { private final static String driverName = "com.mysql.jdbc.Driver"; //驅動 private final static String url = "jdbc:mysql://localhost:3306/testtwo"; private final static String userName = "root"; private final static String pwd = "123456"; public static Connection getMysqlConnection() { Connection connection = null; try{ Class.forName(driverName); connection = DriverManager.getConnection(url,userName,pwd); } catch (Exception e) { e.printStackTrace(); } return connection; } }2、廢話不多說獲取封裝結果集的精華代碼
public class BaseDao { /** * 獲取list結果集 * @param sql * @return */ public static List<Map<String, Object>> findListBySql(String sql) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Connection connection = null; Statement st = null; ResultSet rs = null; try { connection = DBUtil.getMysqlConnection(); st = connection.createStatement(); rs = st.executeQuery(sql); ResultSetMetaData md = rs.getMetaData(); int columnCount = md.getColumnCount(); while (rs.next()) { Map<String, Object> rowData = new HashMap<String, Object>(); for (int i = 1; i <= columnCount; i++) { rowData.put(md.getColumnName(i), rs.getObject(i)); } list.add(rowData); } } catch (SQLException e) { e.printStackTrace(); } finally { closeResources(rs,st,connection); } return list; } /** * 獲取map結果集 * @param sql * @return */ public static Map<String, Object> findMapBySql(String sql) { Map<String, Object> map = new HashMap<>(); Connection connection = null; Statement st = null; ResultSet rs = null; try { connection = DBUtil.getMysqlConnection(); st = connection.createStatement(); rs = st.executeQuery(sql); ResultSetMetaData md = rs.getMetaData(); int columnCount = md.getColumnCount(); while (rs.next()) { for (int i = 1; i <= columnCount; i++) { map.put(md.getColumnName(i), rs.getObject(i)); } } } catch (SQLException e) { e.printStackTrace(); } finally { closeResources(rs,st,connection); } return map; } public static void closeResources(ResultSet rs,Statement st,Connection connection) { try { if (rs != null) { rs.close(); } if (st != null) { st.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { List<Map<String,Object>> list = BaseDao.findListBySql("select * from user "); System.out.println(list.get(0).get("name")); } }