一个Struts中数据Connection的Plug-in
原代码:/* * Created on 2004-8-11 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */package saoo;import java.sql.Connection;impo
原代码:
/*
* Created on 2004-8-11
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package saoo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.UnavailableException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
/**
* @author Huang Jinxiang
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class MyConnectionPlugIn implements PlugIn {
/* (non-Javadoc)
* @see org.apache.struts.action.PlugIn#destroy()
*/
private static Log log = LogFactory.getLog(MyConnectionPlugIn.class);
private static Connection connection;
private String url = null;
private String username = null;
private String password = null;
private String className = null;
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public void destroy() {
// TODO Auto-generated method stub
try {
connection.close();
} catch( SQLException se) {
}
}
/* (non-Javadoc)
* @see org.apache.struts.action.PlugIn#init(org.apache.struts.action.ActionServlet, org.apache.struts.config.ModuleConfig)
*/
public void init(ActionServlet arg0, ModuleConfig arg1)
throws ServletException {
// TODO Auto-generated method stub
try {
Class.forName(className);
connection = DriverManager.getConnection(url,username, password);
} catch (SQLException se) {
log.error(se.getMessage(), se);
throw new UnavailableException("No Resource!");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
log.error(e.getMessage(),e);
throw new UnavailableException("No Resource!");
}
}
/**
* @return Returns the conn.
*/
public static Connection getConn() {
return connection;
}
}
只须要在struts-config.xml中加入plug-in:
<plug-in className="saoo.MyConnection">
<set-property property="password" value="root" />
<set-property property="username" value="root" />
<set-property property="className" value="org.gjt.mm.mysql.Driver" />
<set-property property="url" value="jdbc:mysql:///test" />
</plug-in>
用户可以自己改username, password, className, url的value值。。
然后可以通过MyConnectionPlugin.getConnection()来取当前的Connection。。
这保证了整个Application只有唯一的一个Connection。。
当然也可以通过DataSource来配置。。
更多推荐
所有评论(0)