1 package cn.zbvc.java;
2 import java.io.InputStream;
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8 import java.util.Properties;
9
10
11 public class JDBConnection {
12 public Connection conn = null; // 聲明Connection對象的實例
13 public Statement stmt = null; // 聲明Statement對象的實例
14 public ResultSet rs = null; // 聲明ResultSet對象的實例
15
16 private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//定義保存數據庫驅動的變量
17 private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_ATM";
18 private static String dbUser = "sa";
19 private static String dbPwd = "sa";
20
21 public JDBConnection(String propertyFileName) {// 帶屬性文件名的構造方法
22 Properties prop = new Properties();// 屬性集合對象
23 InputStream is = null;
24 try {
25 is = JDBConnection.class.getClassLoader().getResourceAsStream(
26 propertyFileName);// 屬性文件輸入流
27 // is = new FileInputStream("src/" + propertyFileName);
28 prop.load(is);// 將屬性文件流裝載到Properties對象中
29 is.close();// 關閉流
30 dbClassName = prop.getProperty("dbClassName");
31 dbUrl = prop.getProperty("dbUrl");
32 dbUser = prop.getProperty("dbUser");
33 dbPwd = prop.getProperty("dbPwd");
34 } catch (Exception e) {
35 System.out.println("屬性文件 " + propertyFileName + " 打開失敗!");
36 }
37 try {
38
39 Class.forName(dbClassName);// 1.注冊驅動
40 } catch (ClassNotFoundException e) {
41 e.printStackTrace();
42 }
43 }
44
45 public JDBConnection() {// 默認的不帶參數的構造函數
46 try {
47
48 Class.forName(dbClassName);// 1.注冊驅動
49 } catch (ClassNotFoundException e) {
50 e.printStackTrace();
51 }
52 }
53
54 public static Connection getConnection() {
55 Connection conn = null;
56 try {
57 // Class.forName(dbClassName);// 1.注冊驅動
58 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//2.建立與數據庫的鏈接
59 } catch (Exception ee) {
60 ee.printStackTrace();
61 }
62 if (conn == null) {
63 System.err
64 .println("警告: DbConnectionManager.getConnection() 獲得數據庫鏈接失敗.\r\n\r\n鏈接類型:"
65 + dbClassName
66 + "\r\n鏈接位置:"
67 + dbUrl
68 + "\r\n用戶/密碼"
69 + dbUser + "/" + dbPwd);
70 }
71 return conn;
72 }
73
74 /*
75 * 功能:執行查詢語句
76 */
77 public ResultSet executeQuery(String sql) {
78 try { // 捕捉異常
79 conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn
80 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,//3.創建語句
81 ResultSet.CONCUR_READ_ONLY);
82 rs = stmt.executeQuery(sql);//4.執行查詢
83 } catch (SQLException ex) {
84 System.err.println(ex.getMessage()); // 輸出異常信息
85 }
86 return rs; // 返回結果集對象 5.結果處理
87 }
88
89 /*
90 * 功能:執行更新操作
91 */
92 public int executeUpdate(String sql) {
93 int result = 0; // 定義保存返回值的變量
94 try { // 捕捉異常
95 conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn
96 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
97 ResultSet.CONCUR_READ_ONLY);
98 result = stmt.executeUpdate(sql); // 執行更新操作
99 } catch (SQLException ex) {
100 result = 0; // 將保存返回值的變量賦值為0
101 }
102 return result; // 返回保存返回值的變量
103 }
104
105 /*
106 * 功能:關閉數據庫的連接
107 */
108 public void close() {//6.釋放資源
109 try { // 捕捉異常
110 try {
111 if (rs != null) { // 當ResultSet對象的實例rs不為空時
112 rs.close(); // 關閉ResultSet對象
113 }
114 } finally {
115 try {
116 if (stmt != null) { // 當Statement對象的實例stmt不為空時
117 stmt.close(); // 關閉Statement對象
118 }
119 } finally {
120 if (conn != null) { // 當Connection對象的實例conn不為空時
121 conn.close(); // 關閉Connection對象
122 }
123 }
124 }
125 } catch (Exception e) {
126 e.printStackTrace(System.err); // 輸出異常信息
127 }
128 }
129
130 }
131
132 /*
133 *屬性文件
134 dbClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
135 dbClassName2=com.mysql.jdbc.Driver
136 dbPwd=sa
137 dbPwd2=root
138 dbUrl=jdbc\:microsoft\:sqlserver\://localhost\:1433;DatabaseName\=DB_ATM
139 dbUrl2=jdbc\:mysql\://localhost\:3306/db_atm
140 dbUser=sa
141 dbUser2=root
142 **/
2 import java.io.InputStream;
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8 import java.util.Properties;
9
10
11 public class JDBConnection {
12 public Connection conn = null; // 聲明Connection對象的實例
13 public Statement stmt = null; // 聲明Statement對象的實例
14 public ResultSet rs = null; // 聲明ResultSet對象的實例
15
16 private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//定義保存數據庫驅動的變量
17 private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_ATM";
18 private static String dbUser = "sa";
19 private static String dbPwd = "sa";
20
21 public JDBConnection(String propertyFileName) {// 帶屬性文件名的構造方法
22 Properties prop = new Properties();// 屬性集合對象
23 InputStream is = null;
24 try {
25 is = JDBConnection.class.getClassLoader().getResourceAsStream(
26 propertyFileName);// 屬性文件輸入流
27 // is = new FileInputStream("src/" + propertyFileName);
28 prop.load(is);// 將屬性文件流裝載到Properties對象中
29 is.close();// 關閉流
30 dbClassName = prop.getProperty("dbClassName");
31 dbUrl = prop.getProperty("dbUrl");
32 dbUser = prop.getProperty("dbUser");
33 dbPwd = prop.getProperty("dbPwd");
34 } catch (Exception e) {
35 System.out.println("屬性文件 " + propertyFileName + " 打開失敗!");
36 }
37 try {
38
39 Class.forName(dbClassName);// 1.注冊驅動
40 } catch (ClassNotFoundException e) {
41 e.printStackTrace();
42 }
43 }
44
45 public JDBConnection() {// 默認的不帶參數的構造函數
46 try {
47
48 Class.forName(dbClassName);// 1.注冊驅動
49 } catch (ClassNotFoundException e) {
50 e.printStackTrace();
51 }
52 }
53
54 public static Connection getConnection() {
55 Connection conn = null;
56 try {
57 // Class.forName(dbClassName);// 1.注冊驅動
58 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//2.建立與數據庫的鏈接
59 } catch (Exception ee) {
60 ee.printStackTrace();
61 }
62 if (conn == null) {
63 System.err
64 .println("警告: DbConnectionManager.getConnection() 獲得數據庫鏈接失敗.\r\n\r\n鏈接類型:"
65 + dbClassName
66 + "\r\n鏈接位置:"
67 + dbUrl
68 + "\r\n用戶/密碼"
69 + dbUser + "/" + dbPwd);
70 }
71 return conn;
72 }
73
74 /*
75 * 功能:執行查詢語句
76 */
77 public ResultSet executeQuery(String sql) {
78 try { // 捕捉異常
79 conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn
80 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,//3.創建語句
81 ResultSet.CONCUR_READ_ONLY);
82 rs = stmt.executeQuery(sql);//4.執行查詢
83 } catch (SQLException ex) {
84 System.err.println(ex.getMessage()); // 輸出異常信息
85 }
86 return rs; // 返回結果集對象 5.結果處理
87 }
88
89 /*
90 * 功能:執行更新操作
91 */
92 public int executeUpdate(String sql) {
93 int result = 0; // 定義保存返回值的變量
94 try { // 捕捉異常
95 conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn
96 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
97 ResultSet.CONCUR_READ_ONLY);
98 result = stmt.executeUpdate(sql); // 執行更新操作
99 } catch (SQLException ex) {
100 result = 0; // 將保存返回值的變量賦值為0
101 }
102 return result; // 返回保存返回值的變量
103 }
104
105 /*
106 * 功能:關閉數據庫的連接
107 */
108 public void close() {//6.釋放資源
109 try { // 捕捉異常
110 try {
111 if (rs != null) { // 當ResultSet對象的實例rs不為空時
112 rs.close(); // 關閉ResultSet對象
113 }
114 } finally {
115 try {
116 if (stmt != null) { // 當Statement對象的實例stmt不為空時
117 stmt.close(); // 關閉Statement對象
118 }
119 } finally {
120 if (conn != null) { // 當Connection對象的實例conn不為空時
121 conn.close(); // 關閉Connection對象
122 }
123 }
124 }
125 } catch (Exception e) {
126 e.printStackTrace(System.err); // 輸出異常信息
127 }
128 }
129
130 }
131
132 /*
133 *屬性文件
134 dbClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
135 dbClassName2=com.mysql.jdbc.Driver
136 dbPwd=sa
137 dbPwd2=root
138 dbUrl=jdbc\:microsoft\:sqlserver\://localhost\:1433;DatabaseName\=DB_ATM
139 dbUrl2=jdbc\:mysql\://localhost\:3306/db_atm
140 dbUser=sa
141 dbUser2=root
142 **/