问题设置基于Web服务(Spring/Java、Tomcat7和MySql),其中每个用户都有自己的数据库,因此每个请求都需要自己的连接。由于所有数据库都是在运行时动态创建的,因此在启动之前静态配置它们不是一个选项。
为了优化数据库连接使用,数据库连接池的实现将是非常好的,对吗?
使用Java/Spring:如何为动态数据库创建连接池?我有点惊讶于这里缺少干净的选择
问题:Tomcat的连接池(以及据我所知的C3P0)将每个新的DataSource实例视为一个全新的连接池-
编辑
首先,对不起我的英语,我每天都在进步。
根据我的经验,我也遇到过类似的情况,这是使用spring框架解决的。让我解释一下你是如何解决这个问题的。
>
创建一个具有以下特征的spring配置文件:a)资源加载器:该加载器负责从配置文件或数据库加载属性,这些属性将适合建立数据库连接。b) 使用要加载的属性参数化的池数据库配置。
创建一个定位器类:在这个类中,您需要一个HashMap
使用spring的多上下文特性:其思想是为您建立的每个连接分配一个代码,然后像spring的应用程序上下文一样加载该连接,然后在locator类中,将该上下文放入映射中,并根据需要频繁使用它。
我认为如果您遵循这些步骤,您可以根据需要创建动态池或数据库连接。
在运行时创建数据库后,您还必须在运行时创建池。我担心spring基础设施在这里没有给您任何帮助,因为它是针对通常的静态用例进行调优的。
我有一张游泳池的地图:
Map < connectionUrlString,List< c3poPool > > map
这是一个低级解决方案。如果您想更进一步,可以将此逻辑包装到db连接提供程序中,并将其注册为“驱动程序”。这样,应用程序的任何部分都可以请求一个新连接,您只需从现有池返回一个连接(如果请求了一个全新的连接,请为此创建一个新池)。
我相信HikariCP不需要指定单个数据库就可以工作。
问题内容: 我正在Laravel 5(.1)中创建一个应用程序,在该应用程序中需要连接到不同的数据库。唯一的问题是,它不知道必须连接到哪个数据库,因此无法在config中使用database.php。控制器负责使用动态给定的连接详细信息进行连接。 如何建立与数据库的新连接,包括使用DB类?(或者这可能) 提前致谢! 问题答案: 最简单的解决方案是在运行时设置数据库配置。Laravel可能希望从文件
连接数据库 在能够对MongDB进行操作之前,需要使用BuguFramework创建一个数据库连接,代码如下: BuguConnection conn = BuguFramework.getInstance().createConnection(); conn.connect("192.168.0.100", 27017, "mydb", "username", "password"); 也可以
一、全局配置定义 return array( 'DB_TYPE' => 'mysql', 'DB_HOST' => '127.0.0.1', 'DB_NAME' => 'thinkcmf', 'DB_USER' => 'root', 'DB_PWD' => 'root', 'DB_PORT' => '3306', 'DB_PREFIX' =>
ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。数据库抽象访问层基于PDO方式,目前内置包含了Mysql、SqlServer、PgSQL、Sqlite等数据库的支持。 如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。 配置文件
问题内容: 我正在尝试创建一个多租户应用程序(saas),其中每个客户端都有自己的数据库。 我的情况是: 我创建了一个中间件,该中间件将确定谁是基于子域的客户端,然后从常规数据库中检索客户端的数据库连接信息。我不知道如何为此客户端建立连接对象,以便能够在我的控制器中使用。我应该在中间件还是控制器中执行此操作?如果它在模型中,我该如何传递连接字符串和参数(我可以使用会话,但我不知道如何从模型内部访问
本文向大家介绍java连接mysql数据库 java连接sql server数据库,包括了java连接mysql数据库 java连接sql server数据库的使用技巧和注意事项,需要的朋友参考一下 在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下如何用java连接mysql数据库 以及java连接sql server数据库 一、mysql 二、sql server 以上就