How To Configure MySQL DataSource In Tomcat 6
Posted on December 7, 2010
By mkyong
Here’s a guide to show you how to configure MySQL datasource in Tomcat 6.
1. Get MySQL JDBC Driver
Get JDBC driver here – http://www.mysql.com/ products/connector/ , for example,
mysql-connector-java- 5.1.9.jar
, and copy it to $TOMCAT\lib folder.2. Create META-INF/context.xml
Add a file
META-INF/context.xml
into the root of your web application folder, which defines database connection detail :
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 configuration
In
web.xml
, defines your MySQL datasource again :<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>
See a full
web.xml
example below :
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. Run It
Resource injection (
@Resource
) is the easiest way to get the datasource from Tomcat, see below :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(); //...
Alternatively, you can also get the datasource via context lookup service :
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(); //...
0 comments:
Post a Comment