/* * 功能:這個直接對數據庫操做的工具類 * 做者:施爺 * 時間:2017-3-17 * */ package com.shi.util; import java.io.*; import java.sql.*; import java.util.ArrayList; import java.util.Properties; //這個包不要導錯了 否則會出現pp.load();沒這個放法 public class SQLHellp { //定義須要的變量 private Connection ct=null; private PreparedStatement ps=null; private ResultSet rs=null; private String driver=null; private String url=""; private String user=""; private String password=""; private Properties pp=null; private FileInputStream fis=null; private InputStream is=null; //用於快速讀取文件 以即加載驅動 的 方法 public void Driver(){ try { //讀取配置文件 pp=new Properties(); //這是類加載器的方式 儘可能使用類加載器的方法加載驅動 is=SQLHellp.class.getClassLoader().getResourceAsStream("com/shi/util/dbinfo.properties"); //fis=new FileInputStream("dbinfo.properties"); pp.load(is); driver=pp.getProperty("driver"); url=pp.getProperty("url"); user=pp.getProperty("user"); password=pp.getProperty("password"); //加載驅動 Class.forName(driver); //System.out.println("加載驅動成功"); } catch (Exception e) { e.printStackTrace(); }finally{ try { //fis.close(); is.close(); } catch (IOException e) { e.printStackTrace(); } //fis=null;//再次讓系統回收 is=null; } } //獲得鏈接的方法 public Connection getConnection(){ try { ct=DriverManager.getConnection(url,user,password); } catch (SQLException e) { e.printStackTrace(); } return ct; } //查詢方法 public ArrayList executeQuery(String sql,String [] preparments){ ArrayList al=new ArrayList(); //1加載驅動 this.Driver(); //2獲得鏈接 ct=this.getConnection(); //System.out.println("獲得鏈接成功"); try { ps=ct.prepareStatement(sql); //System.out.println("準備成功"); //循環的給變量賦值 if(preparments!=null){ for(int i=0;i<preparments.length;i++){ ps.setString(i+1, preparments[i]); } } //執行查詢 獲得結果 rs=ps.executeQuery(); //對結果集進行二次封裝 ResultSetMetaData rsmd=rs.getMetaData(); int count=rsmd.getColumnCount();//這裏你能夠獲得你查詢的語句中有幾列 while(rs.next()){ Object[] ob=new Object[count];//作一個對象數組 把一行數據封裝到一個對象數組中 for(int i=0;i<count;i++){ ob[i] = rs.getObject(i+1); } //System.out.println("sqlhellp.name"+ob[1].toString()); al.add(ob); } } catch (SQLException e) { e.printStackTrace(); }finally{ //關閉資源 this.Close(ct, ps, rs); } return al; } //增,刪,改,方法 public Boolean executeUpdate(String sql,String [] preparments){ boolean b= true; //默認是成功的 //1加載驅動 this.Driver(); //2獲得鏈接 ct=this.getConnection(); try { //準備 給參數賦值 ps=ct.prepareStatement(sql); for(int i=0;i<preparments.length;i++){ ps.setString(i+1, preparments[i]); } //執行 ps.executeUpdate(); } catch (SQLException e) { b=false; e.printStackTrace(); }finally{ this.Close(ct, ps, rs); } return b; } //關閉資源 public void Close(Connection ct,Statement ps,ResultSet rs){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs=null; } if(ps!=null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } ps=null;//再次讓系統回收 } if(ct!=null){ try { ct.close(); } catch (SQLException e) { e.printStackTrace(); } ct=null;//再次讓系統回收 } } }
配置文件 dbinfo.propertiesjava
driver=com.mysql.jdbc.Driver url=jdbc\:mysql\://localhost\:3306/users?useUnicode\=true&characterEncoding\=utf-8 user=root password=123456