`
zhaoshijie
  • 浏览: 2261929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

阅读更多
关键字:Tomcat6.0配置JNDI数据源

注意事项:tomcat JDK 一定要和 应用程序的JDK 版本一致(本例中统一JDK1.6)

说明:tomcat5.5与6.0的配置略有不同,即:tomcat的lib位置不同(其他完全一致),
6.0位置是:D:\我的工具\apache-tomcat-6.0.10\lib下

5.5位置是:D:\我的工具\apache-tomcat-5.5.17\common\lib




局部数据源步骤:
一、拷贝数据库驱动到:D:\我的工具\apache-tomcat-6.0.10\lib下,这里是(ojdbc14.jar)




二、配置context.xml文件(此步骤两种配法)

方法一:使用tomcat的context.xml文件

配置D:\我的工具\apache-tomcat-6.0.10\conf\context.xml中加入以下配置:

注意:下面配置放到<Context>中

<Resource name="jdbc/test"  auth="Container"
type="javax.sql.DataSource"
username="zsj" 
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver" 
url="jdbc:oracle:thin:@localhost:1521:zsj" 
maxActive="100" 
maxIdle="30" 
maxWait="10000"/>

方法二:在应用中新建一个context.xml文件进行配置

在WebRoot目录下META-INF的目录(假如不存在则新建),
在该目录下创建一个context.xml文件,并且在context.xml文件当添加以下的配置信息:
<Context>

<Resource name="jdbc/test"  auth="Container"
type="javax.sql.DataSource"
username="zsj" 
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver" 
url="jdbc:oracle:thin:@localhost:1521:zsj" 
maxActive="100" 
maxIdle="30" 
maxWait="10000"/>

</Context>



三、应用的web.xml配置(Tomcat建议在web.xml中添加以下内容,但这不是必须的。)

<resource-ref>
    <description>OracleDataSource</description>

     <res-ref-name>jdbc/test</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>



四、使用数据源连接数据库


private Connection getConnection() throws NamingException {
Connection conn = null;
String   jndi   =   "jdbc/test";     
Context initContext = new InitialContext();
  Context envContext  = (Context)initContext.lookup("java:/comp/env");//固定,不需要修改
  DataSource ds = (DataSource)envContext.lookup(jndi);
  if(ds !=   null){
  try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
  } 

  return conn;
}


public List<String> selectById(int id) throws InstantiationException, IllegalAccessException{
Connection con = null;
try {
con = getConnection();
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
List<String> list = new ArrayList<String>();
String sql="select * from myusers where id=?";
try {
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1, id);
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
list.add(rs.getString(1));
list.add(rs.getString(2));
list.add(rs.getString(3));
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}



全局数据源配置:
一、1、直接在${CATALINA_HOME}\conf\server.xml的GlobalNamingResources标签中增加一下内容:

<Resource name="jdbc/test"  auth="Container"
type="javax.sql.DataSource"
username="zsj" 
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver" 
url="jdbc:oracle:thin:@localhost:1521:zsj" 
maxActive="100" 
maxIdle="30" 
maxWait="10000"/>

二、在tomcat的context.xml的Context中增加:


<ResourceLink global="jdbc/test" name="jdbc/test2" type="javax.sql.DataSource"/>

说明:jdbc/test是全局的JNDI,jdbc/test2是你的应用中使用的JNDI

当然也可以在应用程序的WebRoot\META-INF\下新建context.xml,然后中增加:

<Context>

<ResourceLink global="jdbc/test" name="jdbc/test2" type="javax.sql.DataSource"/>

</Context>


三、直接在代码中使用该JNDI即可(web.xml无需任何配置了)



hibernate使用tomcat数据源


1,建立一个context.xml文件放到webroot的META-INF文件夹下。内容如下:
<Context>

<Resource name="jdbc/test"  auth="Container"
type="javax.sql.DataSource"
username="zsj" 
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver" 
url="jdbc:oracle:thin:@localhost:1521:zsj" 
maxActive="100" 
maxIdle="30" 
maxWait="10000"/>

</Context>

2、配置hibernate.cfg.xml文件

指定数据库方言
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>

指定JNDI名称(这里JNDI名称为:jdbc/myhibernate)


        <property name="connection.datasource">java:comp/env/jdbc/test</property>



spring引用tomcat数据源


<bean id="dataSource"

    class="org.springframework.jndi.JndiObjectFactoryBean">

    <property name="jndiName" value="java:comp/env/jdbc/sxmicsss" />

</bean>




通过以上步骤 JNDI数据源配置完毕!附件是:一个现成例子,欢迎下载!!

推荐网站:http://blog.csdn.net/onlymilan/archive/2010/04/16/5493485.aspx
分享到:
评论
2 楼 zhaoshijie 2012-07-18  
You're welcome
1 楼 hj01kkk 2012-07-09  
THX VERY MUCH

相关推荐

    Tomcat JNDI 数据源 自动生成程序 Servlet 版

    根据项目名自动生成 JNDI 配置文件,使程序员从手动配置JNDI数据源中解脱出来。 使用说明: 1、把“TomcatJNDI.war”文件放入 tomcat 的 webapps 文件夹下; 2、启动tomcat,在地址栏上输入:...

    Tomcat6.0数据源配置[文].pdf

    在本文中,我们将深入探讨如何在Tomcat 6.0中配置数据源,这是一个关键的步骤,对于任何基于Java的应用程序来说,特别是那些依赖于数据库的Web应用。数据源的配置使得应用程序能够有效地管理和访问数据库连接,提高...

    TOMCAT6.0配置数据库连接池

    ### TOMCAT6.0配置数据库连接池的知识点详解 #### 一、连接池的基本概念与配置 **背景介绍** 在Web应用开发中,数据库连接管理是至关重要的环节之一。为了提高应用程序性能并优化资源利用,通常会使用数据库连接池...

    Tomcat数据源配置

    我们将分别探讨Tomcat 5.5、5.0以及6.0版本的数据源配置,确保每个步骤都清晰易懂。 ### Tomcat 5.5 数据源配置 Tomcat 5.5中,数据源通常通过JNDI(Java Naming and Directory Interface)来配置。首先,我们需要...

    Tomcat5.5连接池配置

    应用程序可以通过JNDI查找并获取数据源对象,进而获取数据库连接: ```java InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/sqlserver"); ...

    tomcat JDNI配置

    一个简单的tomcat6.0+mysql5.5整合spring3.0和hibernate3.3的一个简单的实例,其中的datasource是tomcat JNDI配置的 type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://...

    tomcat连接池 从5.0到6.0的

    在Tomcat 6.0中,连接池的改进还包括了对JNDI(Java Naming and Directory Interface)支持的增强,以及对其他数据源实现如C3P0和Apache DBCP的支持。这些改变提供了更好的性能监控、故障诊断和资源管理能力,为...

    tomcat下的连接池配置

    数据源(DataSource)是Java中访问数据库的一种方式,由Tomcat提供。DataSource对象并不像普通Java类那样直接通过new操作创建,而是通过Java Naming and Directory Interface (JNDI) 来查找和获取。JNDI允许应用在...

    Jdbc连接池

    - `name`:定义数据源的唯一标识,用于应用程序通过JNDI查找来获取连接。 - `auth`:指定验证方式,"Container"表示由应用服务器(Tomcat)负责管理认证。 - `type`:声明数据源的类型,这里是`javax.sql.DataSource...

Global site tag (gtag.js) - Google Analytics