javaf怎么连接oracle 数据库连接有两个IP

javaf怎么连接oracle 数据库连接有两个IP,第1张

晕,这描述的JAVAF是么子东东,难道是打错了,我可不可以理解成,用JAVA做的一个系统,需要连接一个、两个甚至是多个不同地址的数据库服务器,

我们项目就用了两个不同地址的服务器

配两个数据源

<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要用大写,否则可能提示表不存在


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10873919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存