一、1.創建一個floder目錄,【名稱lib】
2. 導入mysql.jar包和 druid.jar 包。---------->bulid path

二、創建 sourcefolder 目錄!【sourcefloder】
將配置文件放到里面(這種類型的文件夾和普通文件夾不一樣,sourcefloder文件夾能將里面的東西編譯到輸出目錄,而普通文件夾不會編譯)
展示配置文件

三、通過連接池來連接JDBC,更改Util工具中的 getConnection!

四、總的展示。
package com.aaa.util; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; /** * BaseDao 利用Druid連接池 連接數據庫 * * 通過連接池,不用每次都建立連接對象和關閉資源,節省資源。 * 需要 * 1.導入druid包 * 2.創建一個source floder文件夾 將配置文件 druid.properties 放在里面。 */ public class BaseDAO { private static DataSource source=null;//注意這里是私有,靜態變量。 static {//這里還是之前的加載驅動 Properties p = new Properties(); try { //加載文件 得到一個 druid.properties 的文件。 p.load(BaseDAO.class.getClassLoader().getResourceAsStream("druid.properties")); //獲取數據源 source=DruidDataSourceFactory.createDataSource(p); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //建立連接 public static Connection getConnetion() { try { //利用連接池連接對象 Connection con = source.getConnection(); return con; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } // DML 增刪改的通用 public static int exectueUpdate(String sql,Object...args) { Connection con=null; PreparedStatement ps=null; try { con = BaseDAO.getConnetion(); ps=con.prepareStatement(sql); for (int i = 0; i < args.length; i++) { ps.setObject(i+1, args[i]); } int i = ps.executeUpdate(); return i; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { if (ps!=null) { ps.close(); } if (con!=null) { con.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return 0; } //DQL 查詢的通用 public static List<Map<String, Object>> executeQuery(String sql,Object...args) { Connection con=null; PreparedStatement ps=null; ResultSet rs=null; try { con = BaseDAO.getConnetion(); //注意這里是用source 來調用 getConnetion ,不再是通過BaseDAO ps = con.prepareStatement(sql); for (int i = 0; i < args.length; i++) { ps.setObject(i+1, args[i]); } rs = ps.executeQuery(); int count = rs.getMetaData().getColumnCount(); List<Map<String, Object>> list=new ArrayList<>(); while (rs.next()) { Map<String, Object>map=new HashMap<>(); for (int i = 0; i < count; i++) { Object values = rs.getObject(i+1); String countName = rs.getMetaData().getColumnLabel(i+1); map.put(countName, values); } list.add(map); // System.out.println(list); } for (Map<String, Object> map : list) { System.out.println(map); } return list; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
