`
郭亲华
  • 浏览: 48076 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JNDI使用配置总结

    博客分类:
  • J2EE
阅读更多
在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



分享到:
评论
1 楼 zhongxy0000 2009-08-03  
                

相关推荐

    JNDI学习总结(一)——JNDI数据源的配置.html

    JNDI学习总结,JNDI配置数据源,资料详细,适合初学者

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    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数据源配置(tomcat)

    自己总结的三种使用方式,对比来看选择最适合你的方式

    java JNDI总结

    这是我平时自己总结的有关做开发时候遇到的JNDI配置相关的问题,不算多,拿出来分享一下

    JNDI学习总结.docx

    java - 访问数据库学习 在Java开发中,使用JDBC操作数据库的步骤 数据源由来、数据源配置

    tomcat_jndi_hibernate.txt

    tomcat_jndi_hibernate 是我总结的一些关于在tomcat下配置jndi数据源的方法,我用的是oracle数据库. 配置好jndi后,用于hibernate时其中也有提到

    Spring.3.x企业应用开发实战(完整版).part2

    4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...

    Spring3.x企业应用开发实战(完整版) part1

    4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...

    hibernate 体系结构与配置 参考文档(html)

    JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无...

    hibernate+中文api

    前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 ...3.8.2. JNDI绑定的SessionFactory

    java 面试题 总结

    EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单? 5. java中如何把一个目录...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...

    Spring面试题

    在对由三部分组成的 Spring 系列 的第 1 部分进行总结时,我使用了一个示例,演示了如何通过 Spring IOC 容器注入应用程序的依赖关系(而不是将它们构建进来)。 我用开启在线信用帐户的用例作为起点。对于该实现,...

    Hibernate3的帮助文档

    4.8.2. JNDI绑定的SessionFactory 4.8.3. JTA和Session的自动绑定 4.8.4. JMX部署 5. 持久化类(Persistent Classes) 5.1. 一个简单的POJO例子 5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志...

    jpivot学习总结.doc

    1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用...在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的配置文件外,我们需要在 JSP 头的位置声明对 JPivot 标签库的引用,引用方法如下: ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...

    Hibernate+中文文档

    3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...

    HibernateAPI中文版.chm

    3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...

    hibernate 框架详解

    JNDI绑定的SessionFactory 4.8.3. JTA和Session的自动绑定 4.8.4. JMX部署 5. 持久化类(Persistent Classes) 5.1. 一个简单的POJO例子 5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators...

Global site tag (gtag.js) - Google Analytics