1. 程式人生 > >java操作ORACLE資料庫工具類(JDBC)

java操作ORACLE資料庫工具類(JDBC)

package com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 *	
 * 2015-3-5下午2:45:56
 *
 *MusicWeb.util.DBUtil
 *連線資料庫 類
 */
public class DBUtil {
	

		private static String driver = "oracle.jdbc.driver.OracleDriver";

		private String url = "jdbc:oracle:thin:@localhost:1521:orcl";

		private String user = "XXX";//oracle資料庫的使用者名稱
		private String pwd = "XXXXXX";//oracle資料庫的使用者密碼
		private PreparedStatement sta = null;
		private ResultSet rs = null;
		private Connection conn = null;

		/**
		 * 載入驅動程式
		 */
		static {
			try {
				Class.forName(driver);
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}

		/**
		 * @return 連線物件
		 */
		public Connection getConn() {
			try {
				conn = DriverManager.getConnection(url, user, pwd);
			} catch (SQLException e) {

				e.printStackTrace();
			}
			return conn;
		}

		/**
		 * @param sql
		 *            sql語句  增加,刪除,修改
		 * @param obj
		 *            引數
		 * @return
		 */
		public int update(String sql, Object... obj) {
			int count = 0;
			conn = getConn();
			try {
				sta = conn.prepareStatement(sql);
				if (obj != null) {
					for (int i = 0; i < obj.length; i++) {
						sta.setObject(i + 1, obj[i]);
					}
				}
				count = sta.executeUpdate();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally{
			
				close();
			}
			return count;
		}

		/**
		 * @param sql sql語句
		 * @param obj 引數
		 * @return 資料集合
		 */
		public ResultSet Query(String sql,Object...obj){
			conn=getConn();
			try {
				sta=conn.prepareStatement(sql);
				if(obj!=null){
					for(int i=0;i<obj.length;i++){
						sta.setObject(i+1, obj[i]);
					}
				}
				rs=sta.executeQuery();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return rs;
		}
		
		/**
		 * 關閉資源
		 */
		public void close() {
			try {
				if (rs != null) {
					rs.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				try {
					if (sta != null) {
						sta.close();
					}
				} catch (SQLException e2) {
					e2.printStackTrace();
				} finally {
					if (conn != null) {
						try {
							conn.close();
						} catch (SQLException e) {
							e.printStackTrace();
						}
					}
				}
			}
		}

}
補充:JDBC深度封裝的工具類 http://blog.sina.com.cn/s/blog_7ffb8dd501013qd5.html