วันพฤหัสบดีที่ 1 เมษายน พ.ศ. 2553

tomcat use connection pool with msyql

java use apache DBCP connection pooling with mysql Database
create connection pool โดย Database Connection Pool (DBCP) Configurations
environment:
#tomcat 5.5.x
#Eclipse IDE 3.2 or hiher
#MySQL 5.0.x
#jdk 1.5 or hiher

library request :
jdbc mysql connection j :->>mysql-connector-java-5.0.7-bin.jar find download on internet
apache dbcp commons-dbcp-current-bin :->>commons-dbcp-1.4.jar find downloa on internet

step #1:
create your own 'context.xml' file and put in your app_namexxx/META-INF/ location

<Context path="/web-app-pooling" docBase="web-app-pooling" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/Datasource_DBPerson" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db_person"/>

</Context>
Context path= web application name
docBase = web application name

step #2
เพิ่ม tag resource เข้าไปในไฟล์ web.xml (app_namexxx/WEB-INF/)
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/Datasource_DBPerson</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
step #3
ให้นำเอาไฟล์ mysql-connector-java-5.0.7-bin.jar ไปวางไว้ที่ TOMCAT_HOME/common/lib/ เพื่อให้ webapp server โหลดและทำงาน
ส่วนไฟล์ commons-dbcp-1.4.jar ให้ add เข้าไปใน lib ตามมปรกติ (app_namexxx/WEB-INF/lib/)

step #4
เรียกใช้งาน ผ่าน connection pooling สร้างไว้ดังนี้
javax.naming.InitialContext context = new InitialContext();
// Look up the data source
javax.sql.DataSource dataSource =(javax.sql.DataSource)context.lookup ("java:comp/env/jdbc/Datasource_DBPerson");
// Get a connection from the pool
java.sql.Connection conn = dataSource.getConnection();

PreparedStatement stmt = conn.prepareStatement("select * from person_test" );
ResultSet rs = stmt.executeQuery();

while (rs.next())
{
System.out.println("id:"+rs.getString("id"));
System.out.println("fname:"+rs.getString("fname"));
System.out.println("email:"+rs.getString("email"));
.......
}
rs.close();
conn.close();
}
catch ( javax.naming.NamingException e )
{
e.printStackTrace();
}
catch ( java.sql.SQLException e )
{
e.printStackTrace();
}

======END =======
test for you

** หมายเหตุสร้าง project โดยใช้ Eclipse IDE

เพิ่มเติม:http://forums.sun.com/thread.jspa?threadID=639243

ไม่มีความคิดเห็น:

แสดงความคิดเห็น