我们项目就用了两个不同地址的服务器
配两个数据源
<bean id="sqlserverSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.SSdriverClassName}" />
<property name="url" value="${jdbc.SSurl}" />
<property name="username" value="${jdbc.SSusername}" />
<property name="password" value="${jdbc.SSpassword}" />
</bean>
<bean id="ssJdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="sqlserverSource" />
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="100" />
<property name="maxWait" value="1000" />
<property name="poolPreparedStatements" value="true" />
<property name="defaultAutoCommit" value="true" />
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
调用的时候用不同的jdbcTemplate就可以了,SQL的是ssJdbcTemplate,oracle的是jdbcTemplate
乘下的和 *** 作一个库没啥分别
1 连接数据库的方式oracle的连接串有几部分构成,这里就按sqlplus为例,一个完成的连接串遵循下面格式
sqlplus 用户名/密码@主机:端口号/SID 可选as sysdba
复制
下面先讲只有listener没有tns的情况
2 listener
使用listener连接需要配置完整连接信息,这里分为两种连接方式,我们看一个listener的例子:
(带sid的listener使用netmgr增加listener的datavase services即可出现sid的配置)
LISTENER2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = iZbp1d4tisi44j6vxze02fZ)(PORT = 1522))
)
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = gdn1400)
(ORACLE_HOME = /fdisk1/oracle1400/base/dbhome_1)
(SID_NAME = orcl1400)
)
)
ADR_BASE_LISTENER2 = /fdisk1/oracle1400/base
LISTENER1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = iZbp1d4tisi44j6vxze02fZ)(PORT = 1521))
)
ADR_BASE_LISTENER1 = /fdisk1/oracle1400/base
复制
这里有两个listener,有sid的叫做静态listener,没有sid的叫做动态listener。在查看状态时存在区别:
lsnrctl status listener1
...
Services Summary...
Service "orcl1400" has 1 instance(s).
Instance "orcl1400", status READY, has 1 handler(s) for this service...
Service "orcl1400XDB" has 1 insta
EXEC master.dbo.sp_addlinkedserver @server = N'TEST', @srvproduct=N'ORACLE', @provider=N'MSDAORA', @datasrc=N'ORACLEDB'ORACLEDB在tnsnames.ora已经配置好
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TEST',@useself=N'False',@locallogin=NULL,@rmtuser=N'tmp_user',@rmtpassword='tmp_user'
试一下:
SELECT * FROM LINKEDSERVER_NAME..SCHEMA_NAME.TABLE_NAME
注意LINKEDSERVER_NAME..SCHEMA_NAME.TABLE_NAME要用大写,否则可能提示表不存在
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)