3

データベース mysql を使用して eclipse で Java Web アプリケーションを作成しましたが、その Web アプリケーションを tomcat サーバーにデプロイする必要があります。前もって感謝します。

4

3 に答える 3

3

Java Web アプリケーション内で JDBC 接続を取得するには、主に 2 つの方法があります。

  1. コンテナー内の JNDI ディレクトリ サービスに登録されている DataSource から接続を取得します。
  2. アプリケーション コード内で接続を手動で作成します。

JNDI

JNDIを使用するには、Tomcat 内に接続プールを作成する必要があります。これは、Tomcat のディレクトリにある context.xml ファイル内で実行できますconfig

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 に答える