Tomcat 6でMySQL DataSourceを設定する方法
ここでは、Tomcat 6でMySQLデータソースを設定する方法を説明します。
1. MySQL JDBCドライバを入手する
ここにJDBCドライバ(http://www.mysql.com/products/connector/)、例えばmysql-connector-java-5.1.9.jarを入手し、
$ TOMCAT \ lib
フォルダにコピーしてください。
2. META-INF/context.xmlを作成する
データベース接続の詳細を定義するWebアプリケーションフォルダのルートに `META-INF/context.xml`ファイルを追加します:
File:META-INF/context.xml
<Context>
<Resource name="jdbc/mkyongdb" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000"
username="mysqluser" password="mysqlpassword"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mkyongdb"/>
</Context>
3. web.xml設定
`web.xml`では、あなたのMySQLデータソースを再び定義します:
<resource-ref>
<description>MySQL Datasource example</description>
<res-ref-name>jdbc/mkyongdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
下記の完全な `web.xml`の例を参照してください:
File:web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app__2__5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app__2__5.xsd"
id="WebApp__ID" version="2.5">
<display-name>MySQL DataSource Example</display-name>
<resource-ref>
<description>MySQL Datasource example</description>
<res-ref-name>jdbc/mkyongdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
4.それを実行する
リソース注入(
@ Resource
)は、Tomcatからデータソースを取得する最も簡単な方法です。以下を参照してください。
import javax.annotation.Resource;
public class CustomerBean{
@Resource(name="jdbc/mkyongdb")
private DataSource ds;
public List<Customer> getCustomerList() throws SQLException{
//get database connection
Connection con = ds.getConnection();
//...
あるいは、コンテキストルックアップサービスを介してデータソースを取得することもできます。
import javax.naming.Context;
import javax.naming.InitialContext;
public class CustomerBean{
private DataSource ds;
public CustomerBean(){
try {
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mkyongdb");
} catch (NamingException e) {
e.printStackTrace();
}
}
public List<Customer> getCustomerList() throws SQLException{
//get database connection
Connection con = ds.getConnection();
//...
リファレンス
6:JNDIデータソースHOW-TO]