1.在tomcat5.5版本以下:
DataSource和jndi
jndi(java命名目录接口),是用于访问目录服务器的j2ee的其中一个规范
1.DataSource
在
javax.sql.DataSource中定义,直接创建DataSource对象,
2.从目录服务器上查询DataSource
目录服务器:tomcat自带的
如何使用DataSource?
1)注册:(将datasource放入目录服务器)
通过jndi完成注册工作
a)编写jndi代码完成注册工作
b)使用工具完成注册工作
将ojdbc14.jar放入/common/lib,重启tomcat
进入comcat,http://localhost:8080/
--->点击Comcat Administration ---> 输入用户名和密码(在comcat中配置的)
--->Service(Cataline) ----> Host(Local host) ---->Context (/servlet_jd0809)
--->Data Sources -->进入页面,选择Create New Data Source,设置如下:
JNDI name:随便取,jndi/feng
Data Source URL:oracle URL jdbc:oracle:thin:@192.168.1.220:1521:briupdb
JDBC Driver Class:驱动类 oracle.jdbc.driver.OracleDriver
Max. Active Connections:最大的活动连接数,连接池中的连接数
Max. Idle Connections:连接不够用时,创建连接放入连接池
Max. Wait for Connection:最大等待时间
然后save,-->Commit Changes
2)查询:通过jndi完成查询工作
在java类中获得DataSource
Context ctx=new InitialContext();//jndi里面的
DataSource ds=(DataSource)ctx.lookup(java:comp/env/jndi name);
java:comp/env/ 和服务器有关,写的时候必须加上
如:DataSource ds=(DataSource)ctx.lookup("java:comp/env/jndi/feng");
<!--为软件部署人员提供软件使用的DataSource的信息 -->
在web.xml中进行配置
<resource-ref>
<res-ref-name> jdbc/feng</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
在DataSourc中获得连接,进行jdbc(访问服务器的规范)
以上配置的是局部jndi,配置全局的是:
--->点击Comcat Administration ---> 输入用户名和密码(在comcat中配置的)
--->Resoures ----> DataSource,以下步骤和上面一样
程序代码如下:
Context ctx=new InitialContext();
datasource=(DataSource)ctx.lookup("java:comp/env/jndi/feng");//获得datasource
con=datasource.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery("select * from simple_tbl");
2.在tomcat6.0版本以上配置
如何配数据源
5.0版本,Data source可以配置全局变量
可以配置局部变量,在host下
tomcat6.0以上版本
maxActive//始终活动的,maxIdle//最大连接数
在tomcat6.0的conf目录下,server.xml最下面和</host>之间添加
<Context path="/ssh"
docBase="ssh" //随便写
debug="5"
reloadable="true"
crossContext="true">
<Resource name="jd0809"
auth="Container"
type="javax.sql.DataSource"
maxActive="5"
maxIdle="30"
maxWait="10000"
username="seaside" password="seaside"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:XE"/>
</Context>
再在spring中这样配置即可
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>java:comp/env/jd0809</value></property>
</bean>