现在的位置: 首页 > 综合 > 正文

一个Struts中数据Connection的Plug-in

2013年11月04日 ⁄ 综合 ⁄ 共 2660字 ⁄ 字号 评论关闭

原代码:
/*
 * 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来配置。。

抱歉!评论已关闭.