| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package org.apache.kyuubi.engine.jdbc.session;
- import org.apache.commons.dbcp2.DelegatingConnection;
- import java.sql.Connection;
- import java.sql.SQLException;
- import java.util.Objects;
- /**
- * JDBC 包装类
- * <pre>
- *
- * Created by zhenqin.
- * User: zhenqin
- * Date: 2026/2/11
- * Time: 10:18
- * Vendor: yiidata.com
- *
- * </pre>
- *
- * @author zhenqin
- */
- public class JdbcConnectionWrapper extends DelegatingConnection<Connection> implements JdbcConnection {
- /**
- * MySQL 等数据库支持的 connection Id
- */
- private String connectionId;
- /**
- * 强制关闭,并且废弃的连接
- */
- private boolean validFlag = true;
- /**
- * 直接的连接
- */
- final Connection realConnection;
- /**
- * 代理的连接和直接的连接
- * @param connection
- * @param realConnection
- */
- public JdbcConnectionWrapper(Connection connection, Connection realConnection) {
- super(connection);
- this.realConnection = realConnection;
- }
- public String getConnectionId() {
- return connectionId;
- }
- public void setConnectionId(String connectionId) {
- this.connectionId = connectionId;
- }
- public boolean isValidFlag() {
- return validFlag;
- }
- public void setValidFlag(boolean validFlag) {
- this.validFlag = validFlag;
- }
- @Override
- public void directClose() {
- try {
- realConnection.close();
- } catch (Exception ignore) {}
- }
- @Override
- public void close() throws SQLException {
- directClose();
- super.close();
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- JdbcConnectionWrapper that = (JdbcConnectionWrapper) o;
- return Objects.equals(getDelegate(), that.getDelegate());
- }
- @Override
- public int hashCode() {
- return Objects.hash(getDelegate());
- }
- }
|