创建我自己的sql连接池,想知道这是否是错误的做法/是否有错误?

kcugc4gi  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(156)

因此,我创建了自己的mysql连接池,使用一个阻塞队列填充了一系列sqlconnection对象:

public class SQLConnection {

private Connection connection;
private int uses;
private long alive;

protected SQLConnection() {
    try {
        this.connection = DriverManager.getConnection(SQLPool.URL, SQLPool.USER, SQLPool.PASS);
    } catch (SQLException e) {
        e.printStackTrace();
    }

    this.uses = 0;
    this.alive = System.currentTimeMillis();
}

protected void addUse() {
    uses++;
}

protected boolean isRenew() {
    try {
        if (connection.isClosed() || uses > 100 || getAlive() > 900000) {
            return true;
        }
    } catch (Exception e) {
        return true;
    }

    return false;
}

protected boolean isAvailable() {
    try {
        return !connection.isClosed();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    return false;
}

池(代码未显示)有retrieveresource()和returnresource(sqlconnection conn)方法,以及blockingqueue。它似乎工作得很完美,当它的生存时间超过15分钟或者有100次使用后,它会从池中被转储,并添加一个新示例。由于我的项目必须是非常坚实的,我想知道是否有任何明显的问题,出现了这个?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题