package com.ngn.boss.ejb.msystem.ejbutil;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
/**
 * <p>Title: com.ngn.boss.ejb.msystem.ejbutil.DBConn</p>
 * <p>Description: 获取数据库连接</p>
 * <p>Copyright: Copyright (c) 2005.7.25</p>
 * <p>Company:  </p>
 * @author Tom
 * @version 1.0
 */public class DBConn
{
  private static String connType = EJBConstant.CONNTYPE;
  private static String dataSource = EJBConstant.DATASOURCE;
  private static String driver = EJBConstant.DRIVER;
  private static String url = EJBConstant.URL;
  private static String user = EJBConstant.USER;
  private static String password = EJBConstant.PASSWORD;
  public DBConn()
  {}
  /**
   * 装载驱动
   * @param null
   * @return  null
   */
  private static void loadDriver()
  {
    try
    {
      Class.forName(driver).newInstance();
    }
    catch (Exception e)
    {
      System.out.println("com.ngn.boss.ejb.msystem.ejbutil.DBConn.loadDriver() Error::");
      System.out.println("装载数据库驱动 " + driver + "出错!!");
      e.printStackTrace();
    }
 }
 /**
  * 建立数据库连接.根据配置文件指定的ConnType的不同
  * 分别支持两种建立连接的方法:直接连接 和 数据源连接
  * @param null
  * @return  Connection
  */
  public static Connection getConnection()
  {
    Connection conn = null;
    if(connType!=null&&connType.equals("IS_CONN"))
    {
      loadDriver();      try
      {
        conn = DriverManager.getConnection(url, user, password);
      }catch(SQLException e)
      {
        System.out.println("com.ngn.boss.ejb.msystem.ejbutil.DBConn.getConnection() Error::");
        e.printStackTrace();
      }
    }    if(connType!=null&&connType.equals("IS_DATASOURCE"))
    {
      try
      {
        Context context= new InitialContext();
        DataSource ds= (DataSource) context.lookup(dataSource);
        conn = ds.getConnection();
      }catch(NamingException e) 
      {
        System.out.println("com.ngn.boss.ejb.msystem.ejbutil.DBConn.getConnection() Error::");
        System.out.println("查找数据源 " + dataSource + "出错!!");
        e.printStackTrace();
      }catch(SQLException e)
      {
        System.out.println("com.ngn.boss.ejb.msystem.ejbutil.DBConn.getConnection() Error::");
        System.out.println("由数据源 " + dataSource + "获取数据库连接出错!!");
        e.printStackTrace();
      }
    }
    return conn;
 }
 /**
  * 建立数据库连接(thin连接).可用于操作oracle Lob字段时使用
  * @param null
  * @return  Connection
  */
  public static Connection getThinConn()
  {
    Connection conn = null;
    loadDriver();
    try
    {
      conn = DriverManager.getConnection(url, user, password);
    }catch(SQLException e)
    {
      System.out.println("com.ngn.boss.ejb.msystem.ejbutil.DBConn.getConn() Error::");
      e.printStackTrace();
    }
    return conn;
 }  public static void main(String[] args)
  {
    Connection conn = DBConn.getConnection();
    try
    {
      Statement stmt = conn.createStatement();
      System.out.println("conn正常!!");
    }catch(SQLException e)
    {}
    System.out.println("建立数据库连接成功!!");
  }
}这就是方法,大家看看如何调用他,在struct构架下