java 對wamp的mysql資料的操作
阿新 • • 發佈:2019-01-28
/**
實現功能
1.建立資料庫配置檔案
2.讀取資料庫配置檔案類
3.建立連線資料庫,以及執行sql語句的基類
4.呼叫基類,對資料庫進行查詢操作
*/
1.建立資料庫配置檔案
—檔名 jdbc_mysql.properties
—檔案所在位置 如下圖:
2.讀取資料庫配置檔案類
package Connection.mysql; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class Readconf extends Base { private final static String path ="./conf/jdbc_mysql.properties"; /** * @param args * @throws FileNotFoundException */ public static void main(String[] args) { } /* * 讀取配置檔案,獲取到Driver名稱 * * path,配置檔案的地址;演示樣式:./conf/jdbc_mysql.properties * 單詞 * driver,字義:驅動,讀法:第外我 * */ public static String GetDriver(String path) { String driver=null; //檔案路徑 InputStream is; try { //獲取配置路徑流 is = new FileInputStream(path); //new 讀取配置檔案物件 Properties p = new Properties(); try { //載入配置檔案 p.load(is); //獲取驅動名 driver = p.getProperty("driver"); } catch (IOException e) { System.out.println("沒有找到"); } } catch (FileNotFoundException e1) { System.out.println("沒有找到配置檔案"); } return driver; } /* * 獲取資料庫地址 * path 配置檔案地址 * databasename 資料庫名 * */ public static String GetUrl(String path ,String dbname) throws FileNotFoundException{ String url =null; //檔案路徑 InputStream is; try { //獲取配置路徑流 is = new FileInputStream(path); //new 讀取配置檔案物件 Properties p = new Properties(); try { //載入配置檔案 p.load(is); //獲取驅動名 url = p.getProperty("url"); } catch (IOException e) { System.out.println("載入檔案錯誤"); } } catch (FileNotFoundException e1) { System.out.println("沒有找到配置檔案"); } return url+dbname+"?"; } /* * 獲取資料庫使用者名稱 * */ public static String Getuser(String path) throws FileNotFoundException{ String user =null; //檔案路徑 InputStream is; try { //獲取配置路徑流 is = new FileInputStream(path); //new 讀取配置檔案物件 Properties p = new Properties(); try { //載入配置檔案 p.load(is); //獲取驅動名 user = p.getProperty("user"); } catch (IOException e) { System.out.println("載入檔案錯誤"); } } catch (FileNotFoundException e1) { System.out.println("沒有找到配置檔案"); } return user; } /* * 獲取資料庫密碼 * */ public static String GetPass(String path) throws FileNotFoundException{ String pass =null; //檔案路徑 InputStream is; try { //獲取配置路徑流 is = new FileInputStream(path); //new 讀取配置檔案物件 Properties p = new Properties(); try { //載入配置檔案 p.load(is); //獲取驅動名 pass = p.getProperty("pass"); } catch (IOException e) { System.out.println("載入檔案錯誤"); } } catch (FileNotFoundException e1) { System.out.println("沒有找到配置檔案"); } return pass; } }
3.建立連線資料庫,以及執行sql語句的基類
package Connection.mysql; import java.io.FileNotFoundException; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; public class Jdbc_Base extends Readconf{ private final static String path ="./conf/jdbc_mysql.properties"; //配置檔案路徑 public static Connection conn = null; //連線伺服器物件 public static PreparedStatement ps =null; //執行sql 物件 public static ResultSet rs =null; //結果集物件 /** * @param args */ public static void main(String[] args) { // boolean falg = Connection_db("demo"); // System.out.println(falg); } /* * 連線資料庫 * dbname : 要連線的資料庫名 * */ public static boolean Connection_db(String dbname) { boolean falg = false; /* * 準備引數 * driver:驅動名 * * */ String driver = Readconf.GetDriver(path); String url =null; String user =null; String pass =null; try { url = Readconf.GetUrl(path, dbname); user = Readconf.Getuser(path); pass = Readconf.GetPass(path); } catch (FileNotFoundException e) { System.out.println("沒有找到檔案,錯誤在Readconf"); } try { //1.載入驅動 Class.forName(driver); System.out.println("載入驅動成功"); //2.連線資料庫 conn = (Connection) DriverManager.getConnection(url, user, pass); //判斷資料是否關閉著 boolean closed = conn.isClosed(); if(!closed){ System.out.println("資料庫連線成功"); falg=true; }else{ System.out.println("資料庫連線失敗"); } } catch (ClassNotFoundException e) { System.out.println("沒有找到檔案,錯誤在Readconf"); } catch (SQLException e) { System.out.println("連線資料庫失敗"); }finally{ // try { // conn.close(); // } catch (SQLException e) { // System.out.println("關閉---Connection---錯誤"); // } } return falg; } /* * 執行sql,返回結果集 * */ public static ResultSet execute_sql(String dbname,String sql){ boolean falg = Connection_db(dbname); if(falg){ try { //預載入sql語句 ps = (PreparedStatement) conn.prepareStatement(sql); //執行sql, 且獲取返回值 rs = ps.executeQuery(); } catch (SQLException e) { System.out.println("執行sql失敗:"+sql); }finally{ // try { // ps.close(); // } catch (SQLException e) { // System.out.println("關閉---PreparedStatement---錯誤"); // } } }else{ System.out.println("沒有連線上資料庫"); } return rs; } }
4.呼叫基類,對資料庫進行查詢操作
package Connection.mysql; import java.sql.ResultSet; import java.sql.SQLException; public class Demo1 extends Jdbc_Base{ /** * @param args */ public static void main(String[] args) { select(); } //執行查詢 public static void select(){ //sql 語句 查詢 id=1 的那一行的資料 String sql ="select * from user where id = '1'"; System.out.println(sql); ResultSet rs = Jdbc_Base.execute_sql("demo", sql); try { //測試部分 if(rs.next()){ //通過欄位獲取到 對應的值 String username = rs.getString("username"); //列印資料庫獲取到的值 System.out.println("---------"); System.out.println("user:"+username); System.out.println("---------"); }else{ System.out.println("kong"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { //關閉操作 rs.close(); Jdbc_Base.ps.close(); Jdbc_Base.conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }