daofactory.java

来自「一个web service的实例」· Java 代码 · 共 52 行

JAVA
52
字号
package com.ibm.ta.dao;

import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;

import com.ibm.ta.webservice.DBConfig;
import com.ibm.ta.webservice.ServiceLocator;
import com.ibm.ta.webservice.TAServiceException;
import com.ibm.ta.dao.db2.DB2DAOFactory;
import com.ibm.ta.dao.mysql.MySQLDAOFactory;

public abstract class DAOFactory {

	private DBConfig dbConfig;

	public abstract CourseDAO getCourseDAO();

	public abstract StudentDAO getStudentDAO();

	public abstract EnrollmentDAO getEnrollmentDAO();

	public static DAOFactory getDAOFactory(DBConfig dbConfig) {
		switch (dbConfig.getDbType()) {
		case DBConfig.DB2:
			return new DB2DAOFactory(dbConfig);
		case DBConfig.MYSQL:
			return new MySQLDAOFactory(dbConfig);
		default:
			return null;
		}
	}

	public DAOFactory(DBConfig dbConfig) {
		this.dbConfig = dbConfig;
	}

	// Create database connections from the values in dbConfig
	public Connection createConnection() throws DAOException {
		try {
			String str = "java:comp/env/" + dbConfig.getResRef();
			DataSource dataSource = (DataSource) ServiceLocator.getInstance()
					.getDataSource(str);
			return dataSource.getConnection();
		} catch (SQLException se) {
			throw new DAOException(se.getMessage(), se);
		} catch (TAServiceException tase) {
			throw new DAOException(tase.getMessage(), tase);
		}
	}
}

⌨️ 快捷键说明

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