我有以下代码:
@Test
public void springTest() throws SQLException{
//Connect to the DB.
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.h2.Driver");
dataSource.setUrl("jdbc:h2:/data/h2/testa");
dataSource.setUsername("");
dataSource.setPassword("");
JdbcTemplate jt=new JdbcTemplate(dataSource);
jt.execute("SELECT 1");
jt.execute("SELECT 1");
}
我希望两条execute()行可以重用同一连接。但是,日志输出显示:
2011-02-10 12:24:17 DriverManagerDataSource [INFO]加载的JDBC驱动程序:org.h2.Driver
2011-02-10 12:24:17 JdbcTemplate [DEBUG]执行SQL语句[SELECT 1]
2011-02-10 12:24:17 DataSourceUtils [DEBUG]从DataSource获取JDBC连接
2011-02-10 12:24:17 DriverManagerDataSource [DEBUG]创建与[jdbc:h2:/ data / h2 / testa]的新JDBC DriverManager连接
2011-02-10 12:24:17 DataSourceUtils [DEBUG]将JDBC连接返回到DataSource
2011-02-10 12:24:17 JdbcTemplate [DEBUG]执行SQL语句[SELECT 1]
2011-02-10 12:24:17 DataSourceUtils [DEBUG]从DataSource获取JDBC连接
2011-02-10 12:24:17 DriverManagerDataSource [DEBUG]创建与[jdbc:h2:/ data / h2 / testa]的新JDBC DriverManager连接
2011-02-10 12:24:17 DataSourceUtils [DEBUG]将JDBC连接返回到DataSource
上面的例子运行得很快,但是我有一段更大的代码,基本上做同样的事情,并且挂了很久Creating new JDBC DriverManager Connection
。我从来没有收到错误,但是它使代码运行非常缓慢。我可以以某种方式重构以上代码以仅使用相同的连接吗?
谢谢
这是使用Apache DBCP的示例:
BasicDataSource dbcp = new BasicDataSource();
dbcp.setDriverClassName("com.mysql.jdbc.Driver");
dbcp.setUrl("jdbc:mysql://localhost/test");
dbcp.setUsername("");
dbcp.setPassword("");
JdbcTemplate jt = new JdbcTemplate(dbcp);
jt.execute("SELECT 1");
jt.execute("SELECT 1");
log4j输出为:-
[DEBUG] [JdbcTemplate] [execute:416] - Executing SQL statement [SELECT 1]
[DEBUG] [DataSourceUtils] [doGetConnection:110] - Fetching JDBC Connection from DataSource
[DEBUG] [DataSourceUtils] [doReleaseConnection:332] - Returning JDBC Connection to DataSource
[DEBUG] [JdbcTemplate] [execute:416] - Executing SQL statement [SELECT 1]
[DEBUG] [DataSourceUtils] [doGetConnection:110] - Fetching JDBC Connection from DataSource
[DEBUG] [DataSourceUtils] [doReleaseConnection:332] - Returning JDBC Connection to DataSource
问题内容: 示例ViewModel: 主要活动: 我想调用第二个活动并使MainActivity接收更改。那可能吗? 问题答案: 调用时,您实际上创建/保留了绑定到的,因此不同的Activity具有不同的特性,并且每个Activity 使用给定的工厂创建a的不同实例,因此您不能在不同的s中具有相同的a实例。 但是,您可以通过传递自定义ViewModel工厂的单个实例(充当单例工厂)来实现此目的,因
我正在开发一个需要在大型机上调用DB2函数以获取id的应用程序。 在spring应用程序上下文中,我定义了jdbc模板来查询zOS上的DB2: 然后,我将数据源定义如下: 以上工作。然而,看看ibm的db2jcc内部。jar文件中,我看到了一个用于连接池的datasource类-com。ibm。db2.jcc。DB2ConnectionPoolDataSource。所以我试着用它来代替上面的一个,
我想在使用application.properties的项目中使用2个或更多的jdbcTemplate。我尝试了,但遇到了运行时异常。 canNotGetJDBCConnectionException:未能获得JDBC连接;嵌套异常是java.sql.sqlException:无法为在org.springframework.JDBC.datasource.datasourceUtils.getCo
我有这样一个简单的数据框架: 结果是这样的 当他只有一个人,而且分数是75分,而不是40分和35分时,我如何将名为“Adi”的行与“Adi”的行组合在同一列中
我使用Spring初始化器、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR文件的包生成了一个Spring Boot web应用程序。 使用的技术: 错误: