Drupal是主流的CMS系统之一。因此具备Drupal技能的开发人员有很多。
考虑这样的情况,如果你有一个现有的非Drupal系统,然后有一个Drupal开发团队,你希望这个Drupal团队帮你扩展应用。
那么这个时候,Drupal应用就应该设计成是支持多数据库的。
在Drupal中使用多数据,也很简单。
1、首先在配置文件(Settingsphp)中把默认的数据库配置项改成数组形式:
<php
$db_url['default'] = 'mysql://drupal:drupal@localhost/drupal';
$db_url['jigo'] = 'mysql://user:pwd@localhost/jigo';
>
注意这里的数据库格式必须是一样的。即不能一个是mysql,另外一个是pgsql。
而且默认的必须是drupal自己的数据库。
2、然后在程序中动态切换:
<php
global $db_url; // 数据库链接的内部变量
if (!is_array($db_url)) {
$default_db = $db_url;
$db_url = array('default' => $default_db);
}
//也可以动态设置新的数据库,这里注释掉,因为我们已经写在配置项中
//$db_url['jigo'] = 'mysql://user:pwd@localhost/jigo';
db_set_active('jigo'); // activation & execution same as explained above
$results = db_query($sql); //sql represents the query to be executed
db_set_active('default'); // set back to original
>
regards,
iefreer
这个在spring的 applicationComtextxml文件里配置(一般是这个文件 你也可以把他改为其他文件名),
#oracle\u89c6\u56fe\u6570\u636e\u5e93\u8fde\u63a5\u53c2\u6570hibernatedialect=orghibernatedialectOracleDialect
validationQueryoracle=SELECT 1 FROM DUAL
jdbcurlcrm=jdbc:oracle:thin:@localhost:1521:orcl
jdbcusernamecrm=crm
jdbcpasswordcrm=crm
jdbcdbType=oracle
#mysql \u6570\u636e\u5e93\u8fde\u63a5\u53c2\u6570
#hibernatedialect=orghibernatedialectMySQLDialect
#validationQuerysqlserver=SELECT 1
#jdbcurlcrm=jdbc:mysql://localhost:3306/testuseUnicode=true&characterEncoding=UTF-8
#jdbcusernamecrm=root
#jdbcpasswordcrm=root
#jdbcdbType=mysql
//配置数据源
<bean id="dbcp_dataSource" destroy-method="close" class="orgapachecommonsdbcpBasicDataSource">
<property name="driverClassName" value="${jdbcdriverClassName}" />
<property name="url" value="${jdbcurlcrm}" />
<property name="username" value="${jdbcusernamecrm}" />
<property name="password" value="${jdbcpasswordcrm}" />
</bean> -->
在这里你可以多配置几个数据源
。。。。
然后就可以动态的修改数据源集合了
<bean id="sessionFactory"
class="orgspringframeworkormhibernate3LocalSessionFactoryBean">
<property name="dataSource" ref="dbcp_dataSource" />
<!--ORM映射文件:mappingResources-->
<!-- ORM目录 -->
<property name="mappingDirectoryLocations">
<value>classpath:com/zakhas/ospm/model/hbm/</value>
</property>
这里的dbcp_dataSource 是我的oracle数据库,你可以在这里切换其他的数据库。
因为涉及到一些项目,我做了些改动,可能有些错误,不知道你看懂了啵
数据库访问层是唯一知道如何 *** 作存储介质的入口,可以这么来说,基于数据访问层之上,我们调用数据库访问层提供的方法,我们就能完成数据的存储与读取,所以我们可以知道,数据访问层应该是与数据库直接是独立的。还有就是我们的数据访问层如何能实现不同类型的数据库的动态的切换,而我们不需要修改任何的程序功能等,可能我们在开发的过程中都会遇到这样的问题。所以我们希望可以对数据访问层完成动态的配置,通过不同的配置项完成对象数据库访问的切换,这里我想大家都是比较熟悉的,通过XML配置文件来完成数据库的切换,前面我们说了我们的需求,是必须实现无缝的数据库的切换,那么我们如何实现呢,这里我们可以通过定义一个数据库访问接口,然后通过实现不同的数据库的细节,来实现这样的切换。目前很多流行的框架都是采用这样的方式来实现数据库的动态切换。
以上就是关于如何使用drupal直接 *** 作postgres数据库全部的内容,包括:如何使用drupal直接 *** 作postgres数据库、spring 怎么动态配置 连接不同的数据库。oracle 或是mysql、数据访问层的主要职责是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)