以weblogic8.1为例:
怎么配置domain就不说了,启动domain,进入:http://localhost:7001/console,在首页找到
Services Configurations Jdbc -> Connection pools,或者在左面面板中找services ->jdbc-
>Connection pools,点Connection pools,点Configure a new JDBC Connection Pool...
选择使用的数据库,比如MS SQL Server,选择driver class, 这里需要提醒的是,如果你用了外部的驱
动jar包, 要copy到{DOMAIN_DIR}/lib下面(重起domain才生效);
continue进入Define connection properties, name可以随便取,Database Name对应数据库中对应
的database,Host Name数据库的主机名或ip,比如localhost,port端口号,比如ms sqlserver2000是
1433, ms sqlserver2005是2431, oracle为1521等等;username password就不说了;
continue进入下一页;
这一页大多数时候都不需要更改,但是有一个情况比较贱, 如果使用2005的MS数据库,并使用
sqljdbc.jar的驱动jar包,那就需要把这一页的driver classname改一下:把默认的
com.microsoft.jdbc.sqlserver.SQLServerDriver(这是2000的驱动程序的path) 改成
com.microsoft.sqlserver.jdbc.SQLServerDriver(这是2005的驱动程序的path),然后你可以点test
driver configuration测试一下连接是否成功;然后next直到把该pool部署到server上;
pool配置好了就可以配置datasource,上面同样的方式找到data source, 点Configure a new JDBC
Data Source;
name和jndi name可以随便写,要提醒的是jndi name会在程序中用到;其他两选项默认
,continue到下一页;选择一个pool也就是你刚才配置好的pool.然后一路next直到部署到server上,
到此为止一个weblogic的jndi的datasource就配置好了。
在spring的bean配置文件中培植一个dataSource:
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>MyDataSource</value>
</property>
</bean>
需要注意的是要使用JndiObjectFactoryBean,其中属性jndiName的value就是你刚才配置datasource时
候填写的jndi name;
然后这个dataSource就可以被dao, service,或其他组件使用了,比如如果使用了iBatis,需要配置一个
SqlMapClient, 则:
<bean id="mySqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/SqlMapConfig.xml"/>
<property name="dataSource">
<ref local="myDataSource"/>
</property>
</bean>
如果使用了weblogic9.2或者以上的版本,配置将稍有不同,9.2中似乎在配置datasource的时候顺带把
pool配置好了, 不过操作都大同小异;
如果你可以编辑domain配置文件config.xml,直接更改config.xml效果也是一样的,比如我们刚才配置
好了pool和dataSource,则会在config.xml中增加这样的两条:
<JDBCConnectionPool
DriverName="oracle.jdbc.xa.client.OracleXADataSource"
Name="MyPool" PasswordEncrypted="{3DES}+oHKU36Td+4="
Properties="user=xxx"
Targets="cgServer"
TestConnectionsOnCreate="true" TestConnectionsOnRelease="true"
TestConnectionsOnReserve="true"
TestTableName="SQL SELECT 1 FROM DUAL"
URL="jdbc:oracle:thin:@xxx:1521:xxx"/>
<JDBCTxDataSource JNDIName="MyDataSource" Name="MySDataSource"
PoolName="MyPool"
Targets="csServer"/>