在我的用例中,每个用户都有一个数据库(我知道这不是最好的决定,但这是一个项目需求)。我想打开一个连接并更改每个查询的数据库名称。
我可以使用db.exec(“use clientdatabase;”);在执行每个查询之前更改数据库,但如果同时有另一个查询到达或正在执行,则可能会出现问题,因为所有应用程序都使用相同的数据库连接。
可能,我可以使用每个客户机/数据库的连接Map,Mapmax中的元素数并删除旧连接。
即使我可以为每个查询创建一个连接,但是如果一个客户机有几个查询,这可能是浪费时间。
在我的用例中,每个用户都有一个数据库(我知道这不是最好的决定,但这是一个项目需求)。我想打开一个连接并更改每个查询的数据库名称。
我可以使用db.exec(“use clientdatabase;”);在执行每个查询之前更改数据库,但如果同时有另一个查询到达或正在执行,则可能会出现问题,因为所有应用程序都使用相同的数据库连接。
可能,我可以使用每个客户机/数据库的连接Map,Mapmax中的元素数并删除旧连接。
即使我可以为每个查询创建一个连接,但是如果一个客户机有几个查询,这可能是浪费时间。
1条答案
按热度按时间rjee0c151#
我找到了用不同的数据库名称重用相同连接的方法。我的解决方案是使用事务并在事务开始时设置数据库名称。以下带有输出的代码显示了一个示例:
之后输出:
如您所见,第一个和第三个输出对应于t1中日期为2018-05-25 12:25:12+0200 cest的“默认”数据库。第二个对应于t2中的“seconddb”数据库。