㈠ 浅谈如何配置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>