Java 连接池将打印信息打印到控制台
我在我的独立java数据库加载器应用程序中使用“com.mchange.v2.c3p0.ComboPooledDataSource”。初始化数据连接时,它会将连接信息打印到eclipse中的控制台窗口。它还包括数据库用户名和密码相关信息 使用的数据库是MariaDBJava 连接池将打印信息打印到控制台,java,database-connection,connection-pooling,mariadb,Java,Database Connection,Connection Pooling,Mariadb,我在我的独立java数据库加载器应用程序中使用“com.mchange.v2.c3p0.ComboPooledDataSource”。初始化数据连接时,它会将连接信息打印到eclipse中的控制台窗口。它还包括数据库用户名和密码相关信息 使用的数据库是MariaDB "Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@b1a58a3 [connectionPoolDataSource -&g
"Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@b1a58a3 [connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@7a4f0f29"
如何防止它向控制台显示此消息。
内容在这行代码之后打印到控制台
myConn=DataSource.getInstance().getConnection()
实施:
public class DataSource {
private static DataSource datasource;
private ComboPooledDataSource cpds;
Properties prop = new Properties();
InputStream input = null;
private DataSource() throws IOException, SQLException, PropertyVetoException {
input = new FileInputStream("config.properties");
prop.load(input);
cpds = new ComboPooledDataSource();
cpds.setDriverClass(prop.getProperty("driverclass")); //loads the jdbc driver
cpds.setJdbcUrl(prop.getProperty("database"));
cpds.setUser(prop.getProperty("dbuser"));
cpds.setPassword(prop.getProperty("dbpassword"));
cpds.setMinPoolSize(5);
cpds.setAcquireIncrement(5);
cpds.setMaxPoolSize(20);
cpds.setMaxStatements(180);
}
public static DataSource getInstance() throws IOException, SQLException, PropertyVetoException {
if (datasource == null) {
datasource = new DataSource();
return datasource;
} else {
return datasource;
}
}
public Connection getConnection() throws SQLException {
return this.cpds.getConnection();
}
}
我读取了config.properties文件,其中存储了数据库名称和crdentials详细信息
我正在从我的主类调用连接池,如下所示
myConn = DataSource.getInstance().getConnection();
myConn.setAutoCommit(false);
在执行这一行之后不久,我在控制台中看到一个条目,其中提到了有关连接池的详细信息,包括数据库名称、用户名和密码详细信息。我没有将log4j用于连接池,它仅用于应用程序级日志记录。识别错误实际上很有帮助,只要用户名和密码相关,请检查您的代码,无论它是使用一些日志语句或Sysout打印此信息(用户名和密码),还是不可能重复hi-bilbo,没有执行任何sysout语句。在调用getconnection()后,它很快就会打印信息。我尝试了该线程中解释的解决方案,但在我的场景中没有帮助。我甚至尝试将logger root level设置为NONE,即使这样,我也可以看到连接池信息被打印到控制台。有什么建议吗?这实际上有助于识别错误,只要用户名和密码相关,检查您的代码,它是否正在打印此信息(用户名和密码)使用一些log语句或Sysout或hi bilbo的不可能重复,thr不会执行任何Sysout语句。在调用getconnection()后,它很快就会打印信息。我尝试了该线程中解释的解决方案,但在我的场景中没有帮助。我甚至尝试将logger root level设置为NONE,即使这样,我也可以看到连接池信息被打印到控制台上。有什么建议吗?