JNDI配置

j2ee项目中,使用数据源配置,无外乎jdbcjndi的配置,对于jdbc配置,没有什么好说的,对于jndi的配置,要稍显麻烦一些.这里,阿堂想分三种情况总结一下:第一种是没有用任何框架,第二种是只使用struts框架,第三种是使用strutshibernate框架整合(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>

第二步 在tomcatserver.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值