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");
如此处和此处所述 。
这就像你可以得到的一样,所以从那以后,性能完全取决于你。