JAVA模式--看守者模式的小应用

      好久没写了,随便写点东西,不然脑袋都得大掉,还希望大家有空多讨论啊!!!

      对看守者模式,进行了简单的使用,结合工厂,管理工厂在内存中的使用

   ObjectKeeper.java

package com.legion.project.crmproject.common;

import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;

/**
 * 看守类的一个实现
 * @author dsy 
 * @date 2008-12-03
 */
public class ObjectKeeper extends Thread {
	private static final Logger log = Logger.getLogger(ObjectKeeper.class.getName());
	private static ObjectKeeper m_keeper = new ObjectKeeper();
	private static List m_keptObjects = new ArrayList();

	private ObjectKeeper() {
		new Thread(this).start();
	}

	public void run() {
		try {
			join();
		} catch (InterruptedException e) {
		}
	}

	/**
	 * 任何对象传递到看守方法,直到调用discardObject()方法
	 */
	public static void keepObject(Object myObject) {
		log.info("[ObjectKeeper]-[keepObject()] begin Total number of kept objects: "+ m_keptObjects.size());
		m_keptObjects.add(myObject);
		log.info("[ObjectKeeper]-[keepObject()] success Total number of kept objects: "+ m_keptObjects.size());
	}

	/**
	 * 清除当前被看守的对象
	 */
	public static void discardObject(Object myObject) {
		log.info("[ObjectKeeper]-[discardObject()] begin Total number of kept objects: " + m_keptObjects.size());
		m_keptObjects.remove(myObject);
		log.info("[ObjectKeeper]-[discardObject()] begin Total number of kept objects: " + m_keptObjects.size());
	}

}

 

UpdateBackServices.java

package com.legion.project.crmproject.common;

import java.util.List;

/**
 * <p>Title: 数据备份操作服务工具类</p>
 *
 * <p>Description: 用于备份数据查询,插入,删除操作</p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: Legion Technology</p>
 *
 * @author dsy
 * @version 1.0
 * @date 2008-12-04
 */
public class UpdateBackServices {
	
	/**
	 * 删除公用方法
	 * @param dto
	 * 			isJoinType = "DELETE"时,根据dto中的值,自动组装删除条件
	 * @param isJoinType 
	 * 			isJoinType = "DELETE"时,根据dto中参数是否有值来自动组装where
	 * 			isJoinType = ""时,删除全部数据
	 * @return boolean
	 */
	public static boolean deleteAllByType(TCrmUpdatebakDTO dto,String isJoinType) {
		ObjectKeeper.keepObject(UpdateBackDAO.getInstance());
		IUpdateBackDAO dao = UpdateBackDAO.getInstance();
		boolean deleteBool = dao.deleteAllByType(dto, isJoinType);
		ObjectKeeper.discardObject(UpdateBackDAO.getInstance());
		return deleteBool;
	}
	
	/**
	 * 查询公用方法
	 * @param dto
	 * 			isJoinType = "SELECT"时,根据dto中的值,自动组装查询条件
	 * @param isJoinType
	 * 			isJoinType = "SELECT"时,根据dto中参数是否有值来自动组装where
	 * 			isJoinType = ""时,查询全部数据
	 * @return List
	 */
	public static List searchAllByType(TCrmUpdatebakDTO dto,String isJoinType) {
		ObjectKeeper.keepObject(UpdateBackDAO.getInstance());
		IUpdateBackDAO dao = UpdateBackDAO.getInstance();
		List allValue = dao.searchAllByType(dto, isJoinType);
		ObjectKeeper.discardObject(UpdateBackDAO.getInstance());
		return allValue;
	}
	
	/**
	 * 插入公用方法
	 * @param dto
	 * 		以下值是不用设置的
	 * 		dto.setId();//序列自动生成
	 * 		dto.setBakdata();//自动根据dto.getBosid()备份模板外部表数据(XML)
	 * 		dto.setStat();	//默认为"STAR"
	 * @return
	 */
	public static boolean insertUpdateBAk(TCrmUpdatebakDTO dto) {
		
		ObjectKeeper.keepObject(UpdateBackDAO.getInstance());
		IUpdateBackDAO dao = UpdateBackDAO.getInstance();
		boolean insertBool = dao.insertUpdateBAk(dto);
		ObjectKeeper.discardObject(UpdateBackDAO.getInstance());
		return insertBool;
	}
	
	public static void main(String[] args) {
//		getTableTypeSql();
		TCrmUpdatebakDTO dto = new TCrmUpdatebakDTO();
		dto.setBosid("88994");
		dto.setBostype("test");
		dto.setTitle("UpdateBack");
		dto.setUpdatetype("UpdateBackDAO ADD");
		dto.setBakdate(new java.util.Date());
		dto.setStat("STAR");
		//System.out.println(insertUpdateBAk(dto));
		List testList = UpdateBackDAO.getInstance().searchAllByType(dto, "");
		for (int i = 0; i < testList.size(); i++) {
			dto = new TCrmUpdatebakDTO();
			dto = (TCrmUpdatebakDTO) testList.get(i);
			System.out.println(i + "=" +dto.getId());
		}
	}
}

 

 

    SqlStringUtil.java

package com.legion.project.crmproject.common;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;

import com.legion.jdbc.test.ConnectionDBImpl;

import common.dao.DAOFactory;

/**
 * <p>Title: 数据操作工具类</p>
 *
 * <p>Description: 用于当前表字段组装,返回String</p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: Legion Technology</p>
 *
 * @author dsy
 * @version 1.0
 * @date 2008-12-04
 */
public class SqlStringUtil {
	private static final Logger log = Logger.getLogger(SqlStringUtil.class.getName());
	
	protected static Connection getConnection() {
		Connection conn = null;
		try {
			//conn =  DAOFactory.getInstance().getCrmConnection();
			conn =  ConnectionDBImpl.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * @desc: 用于查询当前实例[bosid]所关联模板数据的外部数据表工具方法
	 * @return
	 */
	public static String getBomSql(String bosid) {
		log.info("[SqlStringUtil].[getBomSql()] begin..................");
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String packageSql = "";
		try {
			conn = getConnection();
			pstmt = conn.prepareStatement(getSqlKey("BOMEXTTBL","",bosid));
			rs = pstmt.executeQuery();
			while(rs.next()) {
				String extTable = rs.getString(1);
				packageSql = getSqlKey("PACKAGETBL", extTable, bosid);
			}
		} catch (SQLException e) {
			log.error("[SqlStringUtil].[getBomSql()]={"+e.getMessage()+"}");
		} finally {
			close(conn,pstmt);
		}
		log.info("[SqlStringUtil].[getBomSql()] success..................");
		return packageSql;
	}
	
	protected static void close(Connection conn,PreparedStatement pstmt) {
			try {
				if(conn != null) {
					conn.close();
					conn = null;
				}
				if(pstmt != null) {
					pstmt.close();
					pstmt = null;
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
	}
	
	//TODO:BOMEXTTBL=获取模板外数据表名
	//TODO:PACKAGETBL=需要打包的sql
	private static String getSqlKey(String key,String extTable, String bosid) {
		Map sqlValue = new HashMap();
		StringBuffer bomExtTable = new StringBuffer();
		bomExtTable.append("SELECT EXTTBL ").append("\n")
				   .append("FROM T_BB_CBOBASE t, T_BB_BOMDES d").append("\n")
				   .append("WHERE t.bosid = '").append(bosid).append("'").append("\n")
				   .append("AND t.bomid = d.bomid").append("\n");
		//TODO:此sql不能换行
		StringBuffer packTable = new StringBuffer();
		packTable.append("dbms_xmlquery.getXML('")
				 .append("SELECT *  ")//.append("\n")
			     .append("FROM ").append(extTable).append(" T ")//.append("\n")
			     .append("WHERE t.bosid = ''").append(bosid).append("''")
			     .append("')");//.append("\n");
		sqlValue.put("BOMEXTTBL", bomExtTable.toString());
		sqlValue.put("PACKAGETBL", packTable.toString());
		return (String)sqlValue.get(key);
	}
	
	public static void main(String[] args) {
		getBomSql("88994");
	}
}

 

 

   IUpdateBackDAO.java

package com.legion.project.crmproject.common;

import java.util.List;

/**
 * <p>Title: 数据备份操作接口类</p>
 *
 * <p>Description: 用于备份数据查询,插入,删除操作</p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: Legion Technology</p>
 *
 * @author dsy
 * @version 1.0
 * @date 2008-12-04
 */
public interface IUpdateBackDAO {
	
	/**
	 * 插入公用方法
	 * @param dto
	 * 		以下值是不用设置的
	 * 		dto.setId();//序列自动生成
	 * 		dto.setBakdata();//自动根据dto.getBosid()备份模板外部表数据(XML)
	 * 		dto.setStat();	//默认为"STAR"
	 * @return
	 */
	public abstract boolean insertUpdateBAk(TCrmUpdatebakDTO dto);
	
	/**
	 * 查询公用方法
	 * @param dto
	 * 			isJoinType = "SELECT"时,根据dto中的值,自动组装查询条件
	 * @param isJoinType
	 * 			isJoinType = "SELECT"时,根据dto中参数是否有值来自动组装where
	 * 			isJoinType = ""时,查询全部数据
	 * @return List
	 */
	public abstract List searchAllByType(TCrmUpdatebakDTO dto, String isJoinType);
	
	/**
	 * 删除公用方法
	 * @param dto
	 * 			isJoinType = "DELETE"时,根据dto中的值,自动组装删除条件
	 * @param isJoinType 
	 * 			isJoinType = "DELETE"时,根据dto中参数是否有值来自动组装where
	 * 			isJoinType = ""时,删除全部数据
	 * @return boolean
	 */
	public abstract boolean deleteAllByType(TCrmUpdatebakDTO dto,
			String isJoinType);
	
}

 

UpdateBackDAO.java

package com.legion.project.crmproject.common;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import com.legion.project.crmproject.common.BaseDao;

/**
 * <p>Title: 数据备份操作工具实现类</p>
 *
 * <p>Description: 用于备份数据查询,插入,删除操作</p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: Legion Technology</p>
 *
 * @author dsy
 * @version 1.0
 * @date 2008-12-04
 */
public class UpdateBackDAO implements IUpdateBackDAO {
	
	private static final Logger log = Logger.getLogger(UpdateBackDAO.class.getName());
	private static IUpdateBackDAO dao = null;
	
	public static IUpdateBackDAO getInstance() {
		if(dao == null) {
			dao = new UpdateBackDAO();
		}
		return dao;
	}
	
	private static Connection getConnection() {
		Connection conn = null;
		try {
			//conn =  DAOFactory.getInstance().getCrmConnection();
			conn =  SqlStringUtil.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/* (non-Javadoc)
	 * @see com.legion.backup.IUpdateBackDAO#insertUpdateBAk(com.legion.backup.TCrmUpdatebakDTO)
	 */
	public boolean insertUpdateBAk(TCrmUpdatebakDTO dto) {
		log.info("[UpdateBackDAO].[insertUpdateBAk()] begin..............");
		boolean insertBool = false;
		Connection conn = null;
		PreparedStatement pstmt = null;
		
		String sql = genTableSql("INSERT",dto,"");
		conn = getConnection();
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, dto.getBosid());
			pstmt.setString(2, dto.getBostype());
			pstmt.setString(3, dto.getTitle());
			pstmt.setString(4, dto.getUpdatetype());
			pstmt.setDate(5, new java.sql.Date(dto.getBakdate().getTime()));
			pstmt.setString(6, "system");
			pstmt.setString(7, "");
			pstmt.setString(8, "");
			pstmt.setString(9, "STAR");
			insertBool = pstmt.executeUpdate() > 0 ? true : false;
			log.info("[UpdateBackDAO].[insertUpdateBAk()]={"+dto.getBosid()+"={"+SqlStringUtil.getBomSql(dto.getBosid())+"}}");
		} catch (SQLException e) {
			log.error("[UpdateBackDAO].[insertUpdateBAk()]={"+dto.getBosid()+"={"+SqlStringUtil.getBomSql(dto.getBosid())+"}}");
			try {
				conn.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			log.error("[UpdateBackDAO].[insertUpdateBAk()]" + e.getMessage());
		} finally {
			close(conn,pstmt);
		}
		log.info("[UpdateBackDAO].[insertUpdateBAk()] success..............");
		return insertBool;
	}
	
	/* (non-Javadoc)
	 * @see com.legion.backup.IUpdateBackDAO#searchAllByType(com.legion.backup.TCrmUpdatebakDTO, java.lang.String)
	 */
	public List searchAllByType(TCrmUpdatebakDTO dto,String isJoinType) {
		log.info("[UpdateBackDAO].[searchAllByType()] begin..............");
		List allValue = new ArrayList();
		boolean insertBool = false;
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		TCrmUpdatebakDTO setDto = null;
		
		String sql = genTableSql("SELECT",dto,isJoinType);
		try {
			conn = getConnection();
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			log.info("[TCrmUpdatebakDTO].[setDTO()] begin..................");
			while(rs.next()) {
				setDto = new TCrmUpdatebakDTO();
				setDto.setDTO(rs);
				allValue.add(setDto);
			}
			log.info("[TCrmUpdatebakDTO].[setDTO()] success..................");
		} catch (SQLException e) {
			log.info("[UpdateBackDAO].[searchAllByType()]={"+e.getMessage()+"}");
		} finally {
			close(conn,pstmt);
		}
		log.info("[UpdateBackDAO].[searchAllByType()] success..............");
		return allValue;
	}
	
	/* (non-Javadoc)
	 * @see com.legion.backup.IUpdateBackDAO#deleteAllByType(com.legion.backup.TCrmUpdatebakDTO, java.lang.String)
	 */
	public boolean deleteAllByType(TCrmUpdatebakDTO dto,String isJoinType) {
		log.info("[UpdateBackDAO].[deleteAllByType()] begin..............");
		List allValue = new ArrayList();
		boolean deleteBool = false;
		Connection conn = null;
		PreparedStatement pstmt = null;
		
		String sql = genTableSql("DELETE",dto,isJoinType);
		try {
			conn = getConnection();
			pstmt = conn.prepareStatement(sql);
			deleteBool = pstmt.executeUpdate() > 0 ? true : false;
		} catch (SQLException e) {
			log.info("[UpdateBackDAO].[deleteAllByType()]={"+e.getMessage()+"}");
		} finally {
			close(conn,pstmt);
		}
		log.info("[UpdateBackDAO].[deleteAllByType()] success..............");
		return deleteBool;
	}
	/*
	private static java.sql.Date transDate(java.util.Date utilDate) {
		java.sql.Date transDate = new java.sql.Date(utilDate.getTime());
		return transDate;
	}*/
	
	/*
	 * 用于查询当前实例所有字段方法,并按一定的数据结构进行存储
 	 * Object[0] = ID	          [NUMBER  ]=ID
	 * Object[1] = BOSID	      [VARCHAR2]=备份实例ID
	 * Object[2] = BOSTYPE	    [VARCHAR2]=实例类型
	 * Object[3] = TITLE	      [VARCHAR2]=备份标题
	 * Object[4] = UPDATETYPE	  [VARCHAR2]=修改类型
	 * Object[5] = BAKDATA	    [CLOB    ]=备份数据
	 * Object[6] = BAKDATE	    [DATE    ]=备份日期
	 * Object[7] = BAKEMPID	    [VARCHAR2]=备份人
	 * Object[8] = SRESERVED1	  [VARCHAR2]=字符预留1
	 * Object[9] = SRESERVED2	  [VARCHAR2]=字符预留2
	 * Object[10] = STAT	      [VARCHAR2]=状态
	 */
	private static Object[] getTableColumnSql() {
		List colValue = new ArrayList();
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String sql = "SELECT COLUMN_NAME FROM User_Tab_Cols WHERE table_name = 'T_CRM_UPDATEBAK'";
		
		conn = getConnection();
		try {
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				colValue.add(rs.getString(1));
			}
		} catch (SQLException e) {
			//not happen
		} finally {
			close(conn, pstmt);
		}
		return (Object[])colValue.toArray();
	}
	
	private static String genTableSql(String sqlType, TCrmUpdatebakDTO dto,String isJoinType) {
		Map sqlGen = new HashMap();
		Object[] value = null;
		if(sqlType.equals("SELECT")||sqlType.equals("INSERT")) {
			value = getTableColumnSql();
			sqlGen.put("SELECT", getSelectSql(value,dto,isJoinType));
			sqlGen.put("INSERT", getInsertSql(value,dto.getBosid()));
		} 
		if(sqlType.equals("DELETE")) {
			sqlGen.put("DELETE", getDeleteSql(dto,isJoinType));
		}
		return (String) sqlGen.get(sqlType);
	}
	
//	TODO:拼装sql-->delete查询
	private static String getDeleteSql(TCrmUpdatebakDTO dto, String isJoinType) {
		StringBuffer selectSql = new StringBuffer();
		selectSql.append("DELETE FROM T_CRM_UPDATEBAK ");
		if(!isJoinType.equalsIgnoreCase("delete")) {
			return selectSql.toString();
		} else {
			getWhereJoin(selectSql, "ID", dto.getId());
			getWhereJoin(selectSql, "BOSID", dto.getBosid());
			getWhereJoin(selectSql, "BOSTYPE", dto.getBostype());
			getWhereJoin(selectSql, "TITLE", dto.getTitle());
			getWhereJoin(selectSql, "BAKDATE", dto.getBakdate());
			getWhereJoin(selectSql, "BAKEMPID", dto.getBakempid());
			getWhereJoin(selectSql, "STAT", dto.getStat());
		}
		return selectSql.toString();
	}
	
	//TODO:拼装sql-->select查询
	private static String getSelectSql(Object[] value, TCrmUpdatebakDTO dto, String isJoinType) {
		StringBuffer selectSql = new StringBuffer();
		selectSql.append("SELECT ");
		for (int i = 0; i < value.length; i++) {
			if(i == 0) {
				selectSql.append(value[i]);
			} else {
				selectSql.append(",").append(value[i]);
			}
		}
		selectSql.append(" FROM T_CRM_UPDATEBAK ");
		if(!isJoinType.equalsIgnoreCase("query")) {
			return selectSql.toString();
		} else {
			getWhereJoin(selectSql, "ID", dto.getId());
			getWhereJoin(selectSql, "BOSID", dto.getBosid());
			getWhereJoin(selectSql, "BOSTYPE", dto.getBostype());
			getWhereJoin(selectSql, "TITLE", dto.getTitle());
			getWhereJoin(selectSql, "BAKDATE", dto.getBakdate());
			getWhereJoin(selectSql, "BAKEMPID", dto.getBakempid());
			getWhereJoin(selectSql, "STAT", dto.getStat());
		}
		return selectSql.toString();
	}
	
	/**
	 * String类型重载
	 * @param whereSql
	 * @param columnName
	 * @param whereKey
	 */
	private static void getWhereJoin(StringBuffer whereSql, String columnName, String whereKey) {
		if(whereKey != null&&!"".equals(whereKey) ) {
			checkWhereKey(whereSql);
			whereSql.append(columnName)
					.append("='")
					.append(whereKey)
					.append("' ").append("\n");
		}
	}
	
	/**
	 * Date关键字类型重载
	 * @param whereSql
	 * @param columnName
	 * @param whereKey
	 */
	private static void getWhereJoin(StringBuffer whereSql, String columnName, Date whereKey) {
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
		if(whereKey != null) {
			checkWhereKey(whereSql);
			whereSql.append("to_char(")
					.append(columnName)
					.append(",'yyyyMMdd')")
					.append("='")
					.append(format.format(whereKey))
					.append("' ").append("\n");
		}
	}
	
	
	/**
	 * Long关键字类型重载
	 * @param whereSql
	 * @param columnName
	 * @param whereKey
	 */
	private static void getWhereJoin(StringBuffer whereSql, String columnName, Long whereKey) {
		if(whereKey != null) {
			checkWhereKey(whereSql);
			whereSql.append(columnName)
					.append("='")
					.append(whereKey)
					.append("' ").append("\n");
		}
	}
	
	/**
	 * 检测sql中是否有where关键,有则组装And
	 * @param whereSql
	 */
	private static void checkWhereKey(StringBuffer whereSql) {
		if(whereSql.indexOf("WHERE") == -1) {
			whereSql.append("\n").append(" WHERE ");
		} else {
			whereSql.append(" AND ");
		}
	}
	
//	TODO:拼装sql-->Insert查询
	private static String getInsertSql(Object[] value,String bosid) {
		StringBuffer insertSql = new StringBuffer();
		insertSql.append("INSERT INTO  T_CRM_UPDATEBAK(");
		StringBuffer splitSql = new StringBuffer();
		for (int i = 0; i < value.length; i++) {
			if(i == 0) {
				insertSql.append(value[i]);
				splitSql.append("SEQ_T_COM_SYSLOGNUMB.nextval");
			} else {
				String backData = (String) value[i];
				if(backData.equalsIgnoreCase("BAKDATA")) {
					insertSql.append(",").append(value[i]);
					splitSql.append(",").append(SqlStringUtil.getBomSql(bosid));
				} else {
					insertSql.append(",").append(value[i]);
					splitSql.append(",").append("?");
				}
			}
		}
		insertSql.append(") ")
				 .append("VALUES(")
				 .append(splitSql.toString())
				 .append(")");
		return insertSql.toString();
	}
	
	protected static void close(Connection conn, PreparedStatement pstmt) {
		SqlStringUtil.close(conn, pstmt);
	}
	
	
	public static void main(String[] args) {
		//getTableTypeSql();
		TCrmUpdatebakDTO dto = new TCrmUpdatebakDTO();
		dto.setBosid("88994");
		dto.setBostype("UpdateBackDAO test");
		dto.setTitle("UpdateBackDAO");
		dto.setUpdatetype("UpdateBackDAO ADD");
		dto.setBakdate(new java.util.Date());
		dto.setStat("STAR");
		//System.out.println(insertUpdateBAk(dto));
		UpdateBackDAO.getInstance().deleteAllByType(dto,"");
//		List testList = UpdateBackDAO.getInstance().searchAllByType(dto, "");
//		for (int i = 0; i < testList.size(); i++) {
//			dto = new TCrmUpdatebakDTO();
//			dto = (TCrmUpdatebakDTO) testList.get(i);
//			System.out.println(i + "=" +dto.getId());
//		}
		System.out.println();
	}
}

 

TCrmUpdatebakDTO.java

package com.legion.project.crmproject.common;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

import org.apache.log4j.Logger;

/**
 * <p>Title: TCrmUpdatebak entity.</p>
 *
 * <p>Description: 当前实例备份表</p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: Legion Technology</p>
 *
 * @author dsy
 * @version 1.0
 * @date 2008-12-04
 */
public class TCrmUpdatebakDTO implements java.io.Serializable {

	private static final Logger log = Logger.getLogger(TCrmUpdatebakDTO.class.getName());

	private Long id;
	private String bosid = "";
	private String bostype = "";
	private String title = "";
	private String updatetype = "";
	private String bakdata = "";
	private Date bakdate;
	private String bakempid = "";
	private String sreserved1 = "";
	private String sreserved2 = "";
	private String stat = "";

	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getBosid() {
		return this.bosid;
	}

	public void setBosid(String bosid) {
		this.bosid = bosid;
	}

	public String getBostype() {
		return this.bostype;
	}

	public void setBostype(String bostype) {
		this.bostype = bostype;
	}

	public String getTitle() {
		return this.title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getUpdatetype() {
		return this.updatetype;
	}

	public void setUpdatetype(String updatetype) {
		this.updatetype = updatetype;
	}

	public String getBakdata() {
		return this.bakdata;
	}

	public void setBakdata(String bakdata) {
		this.bakdata = bakdata;
	}

	public Date getBakdate() {
		return this.bakdate;
	}

	public void setBakdate(Date bakdate) {
		this.bakdate = bakdate;
	}

	public String getBakempid() {
		return this.bakempid;
	}

	public void setBakempid(String bakempid) {
		this.bakempid = bakempid;
	}

	public String getSreserved1() {
		return this.sreserved1;
	}

	public void setSreserved1(String sreserved1) {
		this.sreserved1 = sreserved1;
	}

	public String getSreserved2() {
		return this.sreserved2;
	}

	public void setSreserved2(String sreserved2) {
		this.sreserved2 = sreserved2;
	}

	public String getStat() {
		return this.stat;
	}

	public void setStat(String stat) {
		this.stat = stat;
	}
	
	/*
	 * 用于查询当前实例所有字段方法,并按一定的数据结构进行存储
 	 * Object[0] = ID	          [NUMBER  ]=ID
	 * Object[1] = BOSID	      [VARCHAR2]=备份实例ID
	 * Object[2] = BOSTYPE	    [VARCHAR2]=实例类型
	 * Object[3] = TITLE	      [VARCHAR2]=备份标题
	 * Object[4] = UPDATETYPE	  [VARCHAR2]=修改类型
	 * Object[5] = BAKDATA	    [CLOB    ]=备份数据
	 * Object[6] = BAKDATE	    [DATE    ]=备份日期
	 * Object[7] = BAKEMPID	    [VARCHAR2]=备份人
	 * Object[8] = SRESERVED1	  [VARCHAR2]=字符预留1
	 * Object[9] = SRESERVED2	  [VARCHAR2]=字符预留2
	 * Object[10] = STAT	      [VARCHAR2]=状态
	 */
	public void setDTO(ResultSet rs) {
		try {
			this.setId(new Long(rs.getLong("ID")));
			this.setBosid(rs.getString("BOSID"));
			this.setBostype(rs.getString("BOSTYPE"));
			this.setTitle(rs.getString("TITLE"));
			this.setUpdatetype(rs.getString("UPDATETYPE"));
			this.setBakdate(rs.getDate("BAKDATE"));
			this.setBakempid(rs.getString("BAKEMPID"));
			this.setStat(rs.getString("STAT"));
		} catch (SQLException e) {
			log.error("[TCrmUpdatebakDTO].[setDTO()]={"+e.getMessage()+"}");
		}
	}
}

 

你可能感兴趣的:(java,DAO,数据结构,sql,log4j)