Tomcat6 MySql JDBC数据源配置

我总是使用Spring的dependency injection来获取数据源对象并在我的DAO中使用它们,但现在,我必须编写一个没有它的应用程序。

有了Spring,我可以这样写:

      

但是如何在没有Spring或其他任何东西的情况下在我的DAO中使用数据源? 我只使用servlet和JSP。 性能是非常重要的因素。

信不信由你,人们在Spring之前编写应用程序,有些人还没有使用它:)在你的情况下,你可以使用Tomcat连接池(在文档中有一个完整的MySQL配置示例)。 让我总结一下:

首先,将您的驱动程序放在$CATALINA_HOME/lib

然后,通过向您的Context添加资源声明,在Tomcat中配置JNDI DataSource:

          

web.xml声明此资源:

  MySQL Test App  DB Connection jdbc/TestDB javax.sql.DataSource Container   

并在您的应用程序中使用JNDI查找获取数据源:

 Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/TestDB"); Connection conn = ds.getConnection(); ... use this connection to access the database ... conn.close(); 

请注意,此类lookup通常在ServiceLocator编码(当您无法使用DI容器或框架为您注入时)。

我曾经在sybase中遇到错误,我在WebContent文件夹中缺少META-INF文件夹。 将context.xml置于其中以修复错误无法为连接URL创建类”的JDBC驱动程序’null’… // http://www.abbulkmailer.com我的context.xml看起来像

    

您可以将数据源声明为JNDI对象,并通过JNDI查找检索数据源:

 DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB"); 

如此处和此处所述 。

这就像你可以得到的一样,所以从那以后,性能完全取决于你。