/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.core.cachepool.extend.connection; import java.sql.Connection; import java.sql.SQLException; import org.apache.log4j.Logger; import com.jinhe.tss.core.cachepool.Cacheable; import com.jinhe.tss.core.cachepool.IArithmetic; import com.jinhe.tss.core.cachepool.TimeWrapper; import com.jinhe.tss.core.cachepool.extend.connection.datasource._Connection; /** * <p> ConnectionPoolArithmetic.java </p> * * 数据库连接池算法类。 * 创建、验证、销毁数据库连接。 * * @author Jon.King 2007-1-9 */ public class ConnectionPoolArithmetic implements IArithmetic{ protected Logger log = Logger.getLogger(this.getClass()); public Cacheable create(Long cyclelife){ Connection conn = _Connection.getInstanse().getConnection(); return new TimeWrapper(TimeWrapper.createRandomKey("Connection"), conn, cyclelife); } public boolean isValid(Cacheable o){ Connection conn = (Connection)o.getValue(); try { return !conn.isClosed(); } catch (SQLException e) { return false; } } public void destroy(Cacheable o){ if(o == null) return; Connection conn = (Connection)o.getValue(); _Connection.getInstanse().releaseConnection(conn); o = null; } }