是的,您必须自己管理连接池。我之前使用了c3p0库来让它工作。这是一个示例片段:
private static final QueryRunner queryRunner;
然后在处理程序方法主体之外的某个地方初始化查询运行器:
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setJdbcUrl(jdbcUrl);
dataSource.setUser(System.getenv("USERNAME"));
dataSource.setPassword(System.getenv("PASSWORD"));
queryRunner = new QueryRunner(dataSource);
当你想在你的 lambda 函数中查询时,调用:
List<Map<String, Object>> result = queryRunner.query("SELECT * FROM schema.users WHERE column = vall", new MapListHandler());
希望这可以帮助。
另外,请记住,当您重新部署一个函数时,您的活动 jdbc 连接可能直到稍后才会被回收。这可能不是问题,具体取决于使用 jdbc 连接的函数数量以及您的数据库可以支持的数量。