如何在tomcat服务器上部署带有mysql数据库的java web应用程序

时间:2012-11-19 11:37:09

标签: java mysql database eclipse tomcat

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

3 个答案:

答案 0 :(得分:3)

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

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

    使用JNDI需要在tomcat中创建连接池。这可以在tomcat的config目录中的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驱动程序非常重要。

答案 1 :(得分:1)

这里有两种情况:

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

    InitialContext ic = new InitialContext();  
    DataSource ds = (DataSource)ic.lookup("jdbc/testDS");  
    conn = ds.getConnection();  
    

答案 2 :(得分:0)

在context.xml中使用 - tag我们可以连接到任何db