⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbsqlmanager.java

📁 一个用struts tiles的在线影院web系统
💻 JAVA
字号:
package com.blue.web.common.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import com.blue.web.common.exceptions.DAOSysException;
import com.blue.web.common.util.AppKeys;
import com.blue.web.common.util.AppLogger;
import com.blue.web.common.util.AppSettings;

/**
 * DBManager MSSQL实例
 * @author Lucifer
 *
 */

public class DBSqlManager implements DBManager {

	protected static final String MIN_DATE	= "0001-01-01T00:00:00";
	protected static final String MAX_DATE	= "9999-12-31T23:59:59";

	protected  DataSource _datasource   = null;

	/**
	 * Default constructor
	 * @throws SQLException
	 */
	public DBSqlManager() throws DAOSysException {

		try {
			InitialContext ic = new InitialContext();
			AppSettings config = AppSettings.getInstance();
			if (config.getProperty(AppKeys.APP_SERVER) != null
					&& config.getProperty(AppKeys.APP_SERVER).equalsIgnoreCase("jboss")) {
				_datasource = (DataSource) ic.lookup("java:/" + config.getProperty(AppKeys.DB_DATA_SOURCE));
			} else {
				Context envCtx = (Context)ic.lookup("java:/comp/env");
				_datasource = (DataSource) envCtx.lookup(config.getProperty(AppKeys.DB_DATA_SOURCE));
			}
		// 将异常统统吃掉,将采用getDebugDBConnection()来连接数据库
		} catch (NamingException e) {
			// throw new SQLException("\nError in initialize database : " + e.getMessage() + "\n");
		} catch (Exception e) {
			throw new DAOSysException("General exception : " + e.getMessage() + "\n");
		}
	}

	/**
	 * 关闭数据库连接
	 */
	public void closeConnection(Connection conn) throws DAOSysException {
		try {
			if (conn != null && !conn.isClosed()) {
				conn.close();
			}
		} catch (SQLException e) {
			throw new DAOSysException(e.getMessage());
		}
	}

	/**
	 * 
     * @param rst
     * @throws SQLException
	 */
	public void closeResultSet(ResultSet rst) throws DAOSysException {
		try {
			if (rst != null)
				rst.close();
		} catch (SQLException e) {
			throw new DAOSysException(e.getMessage());
		}
	}

    /**
     * 
     * @param stat
     * @throws SQLException
     */
	public void closeStatement(PreparedStatement stat) throws DAOSysException {
		try {
			if (stat != null)
				stat.close();
		} catch (SQLException e) {
			throw new DAOSysException(e.getMessage());
		}
	}

	/**
	 * 获取数据库连接(采用数据源)
	 * @return
	 * @throws SQLException
	 */
	public Connection getDBConnection() throws DAOSysException {
		try {
			return _datasource.getConnection();
		} catch (Exception e) {
			AppLogger.warn("can not get db datasource, try to use debug connection.");
			try {
				return getDebugDBConnection();
			} catch (Exception e1) {
				AppLogger.fatal("failure to get db connection.");
				throw new DAOSysException(e1.getMessage());
			}
		}
	}

	/**
	 * 获取备用数据库连接(采用连接字符串)
	 * @return
	 * @throws SQLException
	 */
	private Connection getDebugDBConnection() throws DAOSysException {
		Connection conn = null;
		String url		= AppSettings.getInstance().getProperty(AppKeys.DB_URL);
		String user		= AppSettings.getInstance().getProperty(AppKeys.DB_USER);
		String password	= AppSettings.getInstance().getProperty(AppKeys.DB_PASSWORD);

		try {
			// 微软的SQL Server JDBC驱动有BUG, 获取Column只能从左至右.
			// Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
			Class.forName("net.sourceforge.jtds.jdbc.Driver");

			conn = DriverManager.getConnection(url, user, password);
		} catch (Exception ex) {
			ex.printStackTrace();
		}

		return conn;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -