データベース mysql を使用して eclipse で Java Web アプリケーションを作成しましたが、その Web アプリケーションを tomcat サーバーにデプロイする必要があります。前もって感謝します。
質問する
9888 次
3 に答える
3
Java Web アプリケーション内で JDBC 接続を取得するには、主に 2 つの方法があります。
- コンテナー内の JNDI ディレクトリ サービスに登録されている DataSource から接続を取得します。
- アプリケーション コード内で接続を手動で作成します。
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 つのシナリオがあります。
- 単純な JDBC を使用してコード内で接続を直接定義します
Class.forName()
。その場合、ドライバーを含む jar がクラスパスにあり、動作することを確認するだけで済みます。 これが推奨される方法です。サーバーでデータソースを定義し、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 に答える