JDBC三種連線方式
阿新 • • 發佈:2018-11-08
第一種連線方式
package cn.itheima.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 提供獲取連線和釋放資源的 方法 * * @author Never Say Never * @date 2016年7月29日 * @version V1.0 */ public class JDBCUtils_V1 { /** * 獲取連線方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web08", "root", "root"); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
日誌檔案------db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/資料庫?useUnicode=true&characterEncoding=utf8
username=root
password=root
第二種連線方式
package cn.itheima.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ResourceBundle; /** * 提供獲取連線和釋放資源的 方法 * * @author Never Say Never * @date 2016年7月29日 * @version V1.0 */ public class JDBCUtils_V2 { private static String driver; private static String url; private static String username; private static String password; /** * 靜態程式碼塊載入配置檔案資訊 */ static{ ResourceBundle bundle = ResourceBundle.getBundle("db"); driver = bundle.getString("driver"); url = bundle.getString("url"); username = bundle.getString("username"); password = bundle.getString("password"); } /** * 獲取連線方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
第三種連線方式
package cn.itheima.jdbc; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import java.util.ResourceBundle; /** * 提供獲取連線和釋放資源的 方法 * * @author Never Say Never * @date 2016年7月29日 * @version V1.0 */ public class JDBCUtils_V3 { private static String driver; private static String url; private static String username; private static String password; /** * 靜態程式碼塊載入配置檔案資訊 */ static { try { // 1.通過當前類獲取類載入器 ClassLoader classLoader = JDBCUtils_V3.class.getClassLoader(); // 2.通過類載入器的方法獲得一個輸入流 InputStream is = classLoader.getResourceAsStream("db.properties"); // 3.建立一個properties物件 Properties props = new Properties(); // 4.載入輸入流 props.load(is); // 5.獲取相關引數的值 driver = props.getProperty("driver"); url = props.getProperty("url"); username = props.getProperty("username"); password = props.getProperty("password"); } catch (IOException e) { e.printStackTrace(); } } /** * 獲取連線方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }