并且對初學(xué)者也推薦用RESIN做服務(wù)器,配置簡單(開發(fā)不需要配置APACHE)。
所以把我自己在用的數(shù)據(jù)庫連接BEAN發(fā)出來來,供參考。
由于RESI本身也提供了連接池,就更省事了,訪問量不大時(shí)都夠了。
* 數(shù)據(jù)庫連接 bean ,用來連接 resin 的連接池
package net.asales.mysql;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
public class DBConnection {
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
private int resultNum = 0;
/**
* 構(gòu)造函數(shù)
* 找到數(shù)據(jù)源,并用這個(gè)數(shù)據(jù)源創(chuàng)建連接
*/
public DBConnection() {
try {
Context env = new InitialContext();
DataSource pool = (DataSource) env.lookup
("java:comp/env/jdbc/asales");
if (pool == null)
throw new Exception("jdbc/asales is
an unknown DataSource");
conn = pool.getConnection();
stmt = conn.createStatement();
} catch (Exception e) {
System.out.println("naming:" + e.getMessage());
}
}
* 執(zhí)行SQL語句:查詢記錄
* @param sql SQL語句
* @return ResultSet 記錄集
public ResultSet executeQuery(String sql) {
rs = null;
try {
rs = stmt.executeQuery(sql);
} catch(SQLException se) {
System.out.println("Query error:" + se.getMessage());
}
return rs;
}
/**
* 執(zhí)行SQL語句 :插入與更新記錄
* @param sql SQL語句
* @return int resultNum 更新的記錄數(shù)
*/
public int executeUpdate(String sql) {
resultNum=0;
try {
resultNum = stmt.executeUpdate(sql);
} catch (SQLException se) {
System.err.println("Update error:" + se.getMessage());
}
return resultNum;
}
/**
* 關(guān)閉連接
*/
public void close() {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException se) {
System.out.println("close error: " + se.getMessage());
}
}
}
以下是RESIN配置文件中關(guān)于數(shù)據(jù)源的配置例: