package com.easyooo.framework.sharding.transaction; import java.sql.Connection; import java.sql.SQLException; /** * Current Connection Holder * * @author Killer */ public class ConnectionHolder { private int referenceCount = 0; private String user; private String password; private Connection conn; public ConnectionHolder(){ } public ConnectionHolder(Connection conn){ this.conn = conn; } public ConnectionHolder(Connection conn, String user, String pwd){ this.conn = conn; this.user = user; this.password = pwd; } public Connection getConn() { return conn; } public void setConn(Connection conn) { this.conn = conn; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public boolean equalUserAndPwd(String user, String pwd){ return (this.user == user && this.password == pwd); } public void close()throws SQLException{ if(conn != null && !conn.isClosed()){ if(this.conn instanceof CloseDelegatingConnection){ ((CloseDelegatingConnection) this.conn).forceClose(); }else{ this.conn.close(); } } } public void rollback()throws SQLException{ if(conn != null){ this.conn.rollback(); } } public void commit()throws SQLException{ if(conn != null){ this.conn.commit(); } } public void requested() { this.referenceCount++; } public void released() { this.referenceCount--; } public int getReferenceCount() { return referenceCount; } @Override public String toString() { return conn != null ? conn.toString() : null; } }