在j2ee项目中,使用数据源配置,无外乎jdbc和jndi的配置,对于jdbc配置,没有什么好说的,对于jndi的配置,要稍显麻烦一些.这里,阿堂想分三种情况总结一下:第一种是没有用任何框架,第二种是只使用struts框架,第三种是使用struts和hibernate框架整合(ssh时类似).下面,阿堂只说步骤和相关代码,朋友们想使用时,直接复制,稍微改动一下就可以在项目中直接使用了
(以下是指的tomcat5.5环境,在tomcat5.0环境中,在server.xml中的写法,有点不一样,具体请参看阿堂写的在"Tomcat中配置数据源出现问题的解决方法" http://blog.sina.com.cn/s/blog_4c925dca010098u5.html)
第一种情况没有使用任何框架
第一步.在web.xml中配置如下
<description>MYSQL JNDI TEST</description>
<resource-ref>
<description>DB Connection test</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第二步 在tomcat的server.xml文件中配置如下
放在<host></host>之间就可以了
<Context path="/jdniTest080220" debug="0" reloadable="true" privileged="true" docBase="E:\workprojects\jndiTest080220" workDir="E:\workprojects\jndiTest080220\WebRoot">
<Resource
name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/test"
username="root"
password="admin"
maxActive="20"
maxIdle="10"
maxWait="10000" />
</Context>
第三步.在jsp文件具体调用
<%
DataSource ds = null;
try
{
Context initCtx = new InitialContext();
if (initCtx == null) throw new Exception("Initial Failed!");
Context ctx = (Context) initCtx.lookup("java:comp/env");
if (ctx != null) ds = (DataSource) ctx.lookup("jdbc/test");
if (ds == null) throw new Exception("Look up DataSource Failed!");
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
%>
<%
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from student");
while (rs.next())
{
%>
<%=rs.getInt(1) %>:<%=rs.getString(2) %>
<%
}
rs.close();
stmt.close();
conn.close();
%>
在ie中调用方法 http://localhost:8888/jdniTest080220/
第二种情况只使用struts框架
第一步.在tomcat中的server.xml文件中<GlobalNamingResources></GlobalNamingResources>之间添加如下代码
<Resource name="jdbc/sqlserver" auth="Container"
type="javax.sql.DataSource" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=Logis;SelectMethod=Cursor"
username="sa" password="" maxActive="50" maxIdle="4" maxWait="5000"/>
第二步在tomcat对应的如下目录中%tomcat5520%\Catalina\localhost新建一个TmsOrder.xml文件,内容如下
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="TmsOrder" path="/TmsOrder" workDir="work\Catalina\localhost\TmsOrder">
<ResourceLink global="jdbc/sqlserver" name="jdbc/sqlserver" type="javax.sql.DataSourcer"/>
</Context>
第三步在项目中一个公共类中,调用jndi数据源的方法如下
public class GetConnection {
private Connection conn = null;
private DataSource dataSource = null;
private Context ctx = null;
public GetConnection(){}
public Connection getConnection() {
try{
ctx = new InitialContext();
dataSource =(DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver");
conn = dataSource.getConnection();
return conn;
}catch(Exception e){
System.out.println("获得连接池:"+e.getMessage());
return conn;
}
}
public void closeConn() {
try {
if( conn != null ){
conn.close();
}
} catch( SQLException e ) {
e.printStackTrace();
}
}
}
在ie中调用http://localhost:8888/TmsOrder
第三种情况使用struts+hibernate框架(使用ssh时,做法类似)
第一步在hibernate.cfg.xml文件配置如下
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="connection.datasource">
java:comp/env/jdbc/mldn
</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="cn/mldn/lxh/login6/vo/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>
第二步.在tomcat中的server.xml文件中<GlobalNamingResources></GlobalNamingResources>之间添加如下代码
<Resource name="jdbc/mldn" auth="Container"
type="javax.sql.DataSource" driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/mldn"
username="root" password="admin" maxActive="50" maxIdle="4" maxWait="5000"/>
第三步在tomcat对应的如下目录中%tomcat5520%\Catalina\localhost新建一个SHLogin.xml文件,内容如下
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="TmsOrder" path="/TmsOrder" workDir="work\Catalina\localhost\TmsOrder">
<ResourceLink global="jdbc/sqlserver" name="jdbc/sqlserver" type="javax.sql.DataSourcer"/>
</Context>
第四步.在公共类中调用连接数据源的方法如下
public class DefaultSessionFactory {
public static Session getSession() {
Session session = null;
session = new Configuration().configure().buildSessionFactory().openSession();
return session;
}
}
在ie中调用http://localhost:8888/SHLogin
分享到:
相关推荐
#### 二、JNDI配置方式概述 JNDI在Tomcat中有三种常见的配置方式: 1. **全局配置**:在`context.xml`中进行配置,适用于所有Web应用程序。 2. **局部配置**(第一种):在`server.xml`的`<host>`标签内部进行配置...
JNDI学习总结,JNDI配置数据源,资料详细,适合初学者
本文将详细介绍如何使用JNDI配置不同的数据库连接,并通过Tomcat服务器进行示例演示。 #### 二、JNDI简介 JNDI是一种标准的API,用于访问命名和目录服务。它允许开发者使用统一的方式在分布式环境中查找和引用远程...
总结来说,配置JNDI数据源是Spring与Tomcat协同工作的一个重要环节,它提高了系统的灵活性和可维护性,同时也优化了数据库连接的管理。通过理解JNDI的工作原理以及如何在Spring中配置和使用JNDI数据源,开发者能够更...
本篇文章将详细介绍如何使用JNDI配置数据源进行数据库连接。 1. **JNDI概述** JNDI提供了一种统一的接口来访问命名和目录服务,比如DNS、LDAP等。在Java Web环境中,它常用来查找和绑定应用程序所需的资源,如数据...
1.1 Apache Tomcat各版本 1.2 Apache Tomcat Versions 1.3 Java事务处理总结 1.4 JavaBean中使用JDBC...1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素
### JNDI配置详解 #### 一、JNDI简介 Java Naming and Directory Interface (JNDI) 是一种为应用程序提供命名和目录服务的 Java API。它允许开发人员以一致的方式访问多种命名和目录服务,如 DNS、LDAP 和 RMI 等...
使用JNDI配置和管理资源有以下几个显著的优点: - **灵活性**:JNDI使得资源的位置和服务的实现可以灵活配置,不硬编码在代码中。 - **可移植性**:应用程序可以轻松地从一种环境迁移到另一种环境,只需更改JNDI...
Java JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和...在实际项目中,这通常涉及配置服务器以提供JNDI服务,编写代码来查找和使用这些服务,并确保所有必要的驱动库都已包含在运行时环境中。
### JNDI配置原理详解 #### 一、引言 JNDI(Java Naming and Directory Interface)是Java平台的一部分,它允许开发人员访问命名服务,从而可以存储和检索应用程序组件名称和服务之间的映射关系。本文将详细介绍...
总结来说,Spring配置JNDI数据源主要涉及两部分:一是应用服务器中JNDI资源的注册,二是Spring配置文件中通过JNDI查找并使用这些资源。这种方式的好处在于解耦,应用不再直接依赖具体的数据库连接配置,而是通过JNDI...
### Resin中的JNDI配置详解 在Java开发领域,JNDI(Java Naming and Directory Interface)是一个重要的概念,它为应用程序提供了一种查找和访问各种类型命名对象的方法,包括远程对象、数据库连接等。而Resin作为...
总结,配置Tomcat 6.0的数据源(DBCP)和JNDI使用,主要是通过修改服务器和应用的配置文件,然后在代码中利用JNDI查找机制获取数据源,实现数据库连接的高效管理。通过实践和理解这些步骤,可以提升你的Java Web开发...
总结来说,JNDI是Java开发中用于访问和管理网络资源的重要工具,它提供了统一的API来对接各种命名和目录服务,如LDAP,极大地提高了开发效率和应用的可移植性。理解和掌握JNDI的使用方法,对于开发分布式和企业级...
- 在Jetty中,JNDI配置主要通过`jetty.xml`文件进行。这是一个XML配置文件,用于设置服务器的各种属性和组件。 - `jetty.xml`中的`Naming`元素用于配置JNDI上下文,可以添加资源(Resource)和环境入口...
在Java应用中,JNDI通常用于查找资源,例如数据库连接池、邮件服务器配置等。 "jndi-tool"是一个专门针对JNDI服务的利用工具,它可以被用来测试和利用JNDI相关的安全漏洞。此工具特别关注RMI和LDAP服务,这两种服务...
### 常见数据库JNDI配置文件解析 在企业级应用开发中,数据库连接池是提高系统性能、降低资源消耗的重要手段之一。而Java命名与目录接口(Java Naming and Directory Interface, JNDI)是一种广泛使用的API,用于...
### TOMCAT JNDI配置详解 #### 一、概述 TOMCAT服务器是Apache软件基金会下的Jakarta项目中的一个开源Web应用容器。JNDI(Java Naming and Directory Interface)是Java平台提供的一种标准接口,用于访问命名和目录...
常见的连接方式包括直接使用JDBC(Java Database Connectivity)以及通过JNDI(Java Naming and Directory Interface)进行配置。JNDI提供了一种更加灵活的方式来管理数据库连接和其他资源,尤其是在大型应用服务器...