㈠ 淺談如何配置jndi與jdbc兩種數據源連接
使用JNDI就是不需要關心「具體的資料庫後台是什麼?JDBC驅動程序是什麼?JDBC URL格式是什麼?訪問資料庫的用戶名和口令是什麼?」等等這些問題。
不使用JNDI開發時,例如使用MySQL,要知道開發訪問MySQL資料庫的應用,於是將一個對 MySQL JDBC 驅動程序類的引用進行了編碼,並通過使用適當的 JDBC URL 連接到資料庫。
使用JNDI要在Web伺服器中配置,例如Tomcat要在confcontext.xml中的老渣<Resource>中配置數據源。具體怎麼配置你可以網路搜索Java使用JNDI配置數據源。
JDBC配置伏含沖數據源方式,和JNDI類似,就是將<Resource>中的配置自己在類中配置,要用到DBCP,需要3個jar包:
commons-collections4-4.0.jar
commons-dbcp-1.4.jar
commons-pool-1.6.jar
配置方法很簡單:
BasicDataSourcedataSource=newBasicDataSource();
//設置驅動類
dataSource.setDriverClassName(className);
//連接字元串
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
//初始化連接
dataSource.setInitialSize(initialSize);
//最大連接數量
dataSource.setMaxActive(maxActive);
//最大空閑連接
dataSource.setMaxIdle(maxIdle);
//超時等待時間以毫秒為單位缺殲6000毫秒/1000等於60秒
dataSource.setMaxWait(maxWait);
//得到連接
Connectioncon=dataSource.getConnection();
㈡ linux下怎麼配置jndi數據源配置
一 首先要配置Tomcat的server.xml文件,在對應的web應用的<Context>中加入<Resource>元素,比如:
<Context path="/Manager" reloadable="true">
<Resource
name="hello"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
username="root"
password="123456"
maxIdle="4"
maxActive="4"
maxWait="5000"
url="jdbc:mysql://127.0.0.1/jspdev"
/>
</Context>
其中:
name:指定悔山Resource的JNDI名字
type:指定Resource所屬的Java類名
driverClassName:指定瞎歷連接資料庫的JDBC驅動程序
username:指定連接資料庫的用戶名
password:指定連接資料庫的口令
maxIdle:指定資料庫連接池中的最大空閑連接數目,0表示不受限制
maxActive:指定資料庫連接池中的最大活動連接數目,0表示不受限制
maxWait:指定連接池中連接處於空閑狀態的最長時間,超過會拋出異常,-1表示無限
url:指定連接資料庫的URL
二 在Web應用中使用數據源:
javax.naming.Context提供了查找JNDI Resource的介面,可以通過三個步驟來使用數據源對象:
A.獲得對數據源的引用:
Context ctx = new InitalContext();
DataSource ds =
(DataSource)ctx.lookup("java:comp/env/hello");
B.獲得資料庫連接對象:
Connection con = ds.getConnection();
C.返回資料庫連接到連接池:
con.close();
在連接池中使用close()方法和在非連接池中使用close()方法的區別是:前者僅僅是把資料庫連接對象返回到資料庫連接池中,是連接對象又恢復到空閑狀態,而非關閉資料庫連接,而後者將直接關閉和資料庫的連接。
三 如果通過數據源訪問資料庫,由於數據源由Servlet容器創建並維磨前搜護,所以必須把JDBC驅動程序拷貝到Tomcat安裝目錄下的common/lib目錄下,確保Servlet容器能夠訪問驅動程序。
㈢ Spring怎樣配置JNDI數據源
1. 使用JndiObjectFactoryBean,例如
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="臘態銷jndiName">
<value>java:/MySqlDS</value>
</property>
</bean>2. 使用JndiObjectTargetSource,例如
<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource">
<property name="jndiName">
<value>queue/testQueue</value>
</property>
</bean>3. 如果不使用JndiTemplate實現InitialContext環境變數的配置,則需要jndi.properties文件(放在classpath中,一般放在src下面),內容如下
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces4. 使用JndiTemplate實現InitialContext環境變數的配置,例如
<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource">
<property name="jndiName">
<value>輪游queue/testQueue</value>
</property>
<property name="jndiTemplate">
<ref local="jndiTemplate"/>
</property>
</bean>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">閉穗
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.provider.url">jnp://localhost:1099</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
</props>
</property>
</bean>