java - 获取 Web 应用程序的 DBConnection 的正确方法

标签 java jdbc

我们有一个 Web 应用程序,可以为 1000 多个并发用户提供服务 目前,获取DB Connection的Utility类是

public static Connection getDBConnection()
       {
          Connection conn = null;
          try
          {
             InitialContext ctx = new InitialContext();
             DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/MyLocalDB");
             try
             {
                conn = ds.getConnection();
             }
             catch ( SQLException sqlEx )
             {
                System.out.println( "cannot get JDBC connection: " + sqlEx ); 
             }
          }
          catch ( NamingException nEx )
          {
             nEx.printStackTrace();
          }
          return conn;
       }

选项 2:

 public class DBConnection2 {
    private static DataSource dataSource;
    static {
        try {
              dataSource = (DataSource) new InitialContext().lookup("java:/comp/env/jdbc/MyLocalDB");
        } catch (NamingException e) {
            try {
                throw new Exception("'jndifordbconc' not found in JNDI",e);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    }

    public static Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }

    }

}

请让我知道什么是更好的选择(我猜它的第二个操作是查找成本高昂的操作,而且我只在应用程序中执行一次。)

请分享您的看法。

最佳答案

您应该采用第二种方法。正如您所说,您不需要继续在 JNDI 中查找数据源。

我假设您正在使用 tomcat-jdbc 项目提供的池数据源,否则性能将很糟糕。

关于java - 获取 Web 应用程序的 DBConnection 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28343365/

相关文章:

java - 在 for 循环中添加 JButton

java - 在不是参数的方法中模拟对象

java - 如何在eclipse中的通用Web应用程序中引用maven项目?

java - 如何链接两个 jcomboboxes 而不重复值

Java:ArrayList 上的 StringUtils.join 返回 NoSuchMethodError 异常

java - 安装后android应用无法打开

java - 如何在并发批处理中绕过 JDBC 语句缓存?

java - hibernate : JDBC Vs Hibernate Performance in bulk records

mysql - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown column 'RECEPTORS.r_name' in 'field list'

javascript - JDBC 错误 : AbstractMethodError: com. microsoft.sqlserver.jdbc.SQLServerConnection.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array