Sturts在struts-config.xml中已配置好数据源,如何写一个公共类访问?
我写了一个公共类,请大家看有没有更好的方法。
import java.sql.*;import javax.sql.DataSource;import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class DBConn {
DataSource dataSource;
Connection conn;
public void init(ActionServlet servlet, ModuleConfig config){
dataSource = (DataSource) servlet.getServletContext().getAttribute(
"org.apache.struts.action.DATA_SOURCE");
}
public void getConnection() {
try{
if (dataSource != null)
conn = dataSource.getConnection();
} catch (SQLException ex) {
}
} public void closeConnection(){
try {
conn.close();
} catch (SQLException ex) {
}
}
public boolean executeUpdate(String sql){
try {
getConnection();
Statement stmt = conn.createStatement();
closeConnection();
int i = stmt.executeUpdate(sql);
if (i > 0) {
return true;
} else {
return false;
}
} catch (SQLException ex) {
return false;
}
}
public ResultSet executeQuery(String sql){
try {
getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
return rs;
} catch (SQLException ex) {
return null;
}
}}在Action中调用数据库连接:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
// TODO Auto-generated method stub
DBConn dbc=new DBConn();
dbc.getConnection();
//数据连接
System.out.println("Database connection OK!************");
}
我写了一个公共类,请大家看有没有更好的方法。
import java.sql.*;import javax.sql.DataSource;import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class DBConn {
DataSource dataSource;
Connection conn;
public void init(ActionServlet servlet, ModuleConfig config){
dataSource = (DataSource) servlet.getServletContext().getAttribute(
"org.apache.struts.action.DATA_SOURCE");
}
public void getConnection() {
try{
if (dataSource != null)
conn = dataSource.getConnection();
} catch (SQLException ex) {
}
} public void closeConnection(){
try {
conn.close();
} catch (SQLException ex) {
}
}
public boolean executeUpdate(String sql){
try {
getConnection();
Statement stmt = conn.createStatement();
closeConnection();
int i = stmt.executeUpdate(sql);
if (i > 0) {
return true;
} else {
return false;
}
} catch (SQLException ex) {
return false;
}
}
public ResultSet executeQuery(String sql){
try {
getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
return rs;
} catch (SQLException ex) {
return null;
}
}}在Action中调用数据库连接:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
// TODO Auto-generated method stub
DBConn dbc=new DBConn();
dbc.getConnection();
//数据连接
System.out.println("Database connection OK!************");
}
如果感到对您有些帮助,或有其它不清楚的地方,请到我的java技术网站发帖交流,希望本站能成为您java学习路上的一个朋友