// 对于各种数据库类型总体抽象出来的工厂抽象类 public abstract class DAOFactory { // 列出来支持的数据库类型 public static final int MS_SQL = 1; public static final int RACLE = 2; ... // 利用统一的 getDAOFactory方法,来取得不同的DAO对象,因为你不知道具体应用中是什么数据库,所以可以利用java的多态,再定义方法的时候返回DAOFactory,这个是所有可能返回结果的super class,也就是说,每一个可能的返回结果,要继承或者间接的实现 DAOFactory 这个超类。 public static DAOFactory getDAOFactory(int databaseType) { switch (whichFactory) { case MS_SQL: return new SqlserverDAOFactory(); case ORACLE : return new OracleDAOFactory(); ... default : return null; } } // 这里边是具体需要利用到的对象,可以暂且理解为表,一个DAO 对应持久数据层里面的 table public abstract CustomerDAO getCustomerDAO(); public abstract OrderDAO getOrderDAO(); ... } ----------------------------------------------------------
// 这些是 CustomerDAO 需要进行对数据库操作的方式 ,比如 insert, delete, select, update public interface CustomerDAO { public int insertDB(...); public boolean deleteDB(...); public Customer selectDB(...); public boolean updateDB(...); ... }
import java.sql.*; public class SqlServerCustomerDAO implements CustomerDAO { public SqlServerCustomerDAO() { // initialization } public int insertDB(...) { // 执行具体的插入到SQLServer的insert代码 // 返回插入成功的customer id ,要是失败,返回-1 } public boolean deleteDB(...) { // 执行 SQLServer的删除语句 // 返回成功或者失败 true false } public Customer selectDB(...) { // Implement find a customer here using supplied } public boolean updateDB(...) { // implement update record here using data } ... } ---------------------------------------------------- 上面介绍了transfer object ,不再废话了 public class Customer implements java.io.Serializable { // member variables int CustomerId; String customerName; String gender; ... // getter and setter methods... ... } 考试:以前版本的考试里面有,310-083已经没有了。