java jdbc數據庫連接
import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties;public class JDBConnection { public Connection conn = null; // 聲明Connection對象的實例 public Statement stmt = null; // 聲明Statement對象的實例 public ResultSet rs = null; // 聲明ResultSet對象的實例
private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//定義保存數據庫驅動的變量 private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_ATM"; private static String dbUser = "sa"; private static String dbPwd = "sa"; public JDBConnection(String propertyFileName) {// 帶屬性文件名的構造方法 Properties prop = new Properties();// 屬性集合對象 InputStream is = null; try { is = JDBConnection.class.getClassLoader().getResourceAsStream( propertyFileName);// 屬性文件輸入流 // is = new FileInputStream("src/" + propertyFileName); prop.load(is);// 將屬性文件流裝載到Properties對象中 is.close();// 關閉流 dbClassName = prop.getProperty("dbClassName"); dbUrl = prop.getProperty("dbUrl"); dbUser = prop.getProperty("dbUser"); dbPwd = prop.getProperty("dbPwd"); } catch (Exception e) { System.out.println("屬性文件 " + propertyFileName + " 打開失敗!"); } try { Class.forName(dbClassName);// 1.注冊驅動 } catch (ClassNotFoundException e) { e.printStackTrace(); } } public JDBConnection() {// 默認的不帶參數的構造函數 try { Class.forName(dbClassName);// 1.注冊驅動 } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() { Connection conn = null; try { // Class.forName(dbClassName);// 1.注冊驅動 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//2.建立與數據庫的鏈接 } catch (Exception ee) { ee.printStackTrace(); } if (conn == null) { System.err .println("警告: DbConnectionManager.getConnection() 獲得數據庫鏈接失敗.\r\n\r\n鏈接類型:" + dbClassName + "\r\n鏈接位置:" + dbUrl + "\r\n用戶/密碼" + dbUser + "/" + dbPwd); } return conn; } /* * 功能:執行查詢語句 */ public ResultSet executeQuery(String sql) { try { // 捕捉異常 conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,//3.創建語句 ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql);//4.執行查詢 } catch (SQLException ex) { System.err.println(ex.getMessage()); // 輸出異常信息 } return rs; // 返回結果集對象 5.結果處理 } /* * 功能:執行更新操作 */ public int executeUpdate(String sql) { int result = 0; // 定義保存返回值的變量 try { // 捕捉異常 conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); // 執行更新操作 } catch (SQLException ex) { result = 0; // 將保存返回值的變量賦值為0 } return result; // 返回保存返回值的變量 } /* * 功能:關閉數據庫的連接 */ public void close() {//6.釋放資源 try { // 捕捉異常 try { if (rs != null) { // 當ResultSet對象的實例rs不為空時 rs.close(); // 關閉ResultSet對象 } } finally { try { if (stmt != null) { // 當Statement對象的實例stmt不為空時 stmt.close(); // 關閉Statement對象 } } finally { if (conn != null) { // 當Connection對象的實例conn不為空時 conn.close(); // 關閉Connection對象 } } } } catch (Exception e) { e.printStackTrace(System.err); // 輸出異常信息 } }
}</pre>屬性文件
dbClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
dbClassName2=com.mysql.jdbc.Driver
dbPwd=sa
dbPwd2=root
dbUrl=jdbc\:microsoft\:sqlserver\://localhost\:1433;DatabaseName\=DB_ATM
dbUrl2=jdbc\:mysql\://localhost\:3306/db_atm
dbUser=sa
dbUser2=root
本文由用戶 johon 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!