3

我已经在 Eclipse 中使用数据库 mysql 创建了 java web 应用程序。但是现在我必须在 tomcat 服务器中部署该 web 应用程序。我知道如何在没有数据库的情况下部署 web 应用程序,但需要数据库方面的帮助。先感谢您。

4

3 回答 3

3

在 Java Web 应用程序中获取 JDBC 连接有两种主要方法。

  1. 从容器内 JNDI 目录服务中注册的 DataSource 检索连接。
  2. 在应用程序代码中手动创建连接。

JNDI

使用JNDI需要在 tomcat 中创建一个连接池。这可以在 tomcatconfig目录中的 context.xml 文件中完成。

示例 Context.xml 条目

  <Resource name="jdbc/EmployeeDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="dbusername"
            password="dbpassword"
            driverClassName="org.hsql.jdbcDriver"
            url="jdbc:HypersonicSQL:database"
            maxActive="8"
            maxIdle="4"/>

然后将在您的代码中检索此连接,如下所示:

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");

Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();

手动创建

在您的代码中手动创建连接更简单,但建议使用 JNDI,因为它具有可移植性。

手动示例

public class MysqlConnect{
   public static void main(String[] args) {

      Connection conn = null;
      String url = "jdbc:mysql://localhost:3306/";
      String dbName = "jdbctutorial";
      String driver = "com.mysql.jdbc.Driver";
      String userName = "root"; 
      String password = "root";

      try {
          Class.forName(driver).newInstance();
          conn = DriverManager.getConnection(url+dbName,userName,password);
          conn.close();
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
}

在为这些场景中的任何一个进行部署时,在类路径中拥有适当的 JDBC 驱动程序非常重要。

于 2012-11-19T11:53:36.160 回答
1

这里有2个场景:

  1. 您可以使用简单的 JDBC 直接在代码中定义连接,Class.forName()在这种情况下,您只需要确保包含驱动程序的 jar 在类路径中并且它应该可以工作。
  2. 这是首选方法 -在服务器上定义数据源并使用 JNDI API 在代码中调用它:

    InitialContext ic = new InitialContext();  
    DataSource ds = (DataSource)ic.lookup("jdbc/testDS");  
    conn = ds.getConnection();  
    
于 2012-11-19T11:44:07.517 回答
0

在 contex.xml 中使用 -- 标签我们可以连接到任何数据库

于 2012-11-19T11:44:20.053 回答