配置Struts数据源有很多种方法,我们这里讲解最实用的一种。
配置数据源所需要的JAR包:
commons-dbcp-1.2.2.jar、commons-pool-1.4.jar、struts-legacy.jar
下载地址:
http://www.blogjava.net/Files/biiau/struts-dataSource.rar
1.配置struts-config.xml文件,加入数据源
<!-- ============ Data Source Start ================== -->
<data-sources>
<data-source key="org.apache.struts.action.DATA_SOURCE"
type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="autoCommit" value="true" />
<set-property property="description" value="SQL2000 Data Source" />
<set-property property="
driverClassName"
value="net.sourceforge.jtds.jdbc.Driver" />
<set-property property="maxCount" value="10" />
<set-property property="minCount" value="2" />
<set-property property="username" value="username" />
<set-property property="password" value="password" />
<set-property property="url"
value="jdbc:jtds:sqlserver://localhost:1433/databaseName" />
</data-source>
</data-sources>
<!-- ============ Data Source End ================== -->
2.添加STRUTS插件;添加插件的目的是:任何文件中都可以用到此数据源
首先创建插件,它继承自org.apache.struts.action.PlugIn
package com.xxx.db;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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 implements PlugIn
{

private static DataSource dataSource = null;
private Connection conn = null;
private PreparedStatement preStmt = null;
private Statement stmt = null;

// 得到数据源

public void init(ActionServlet servlet, ModuleConfig config)
{
dataSource = (DataSource) servlet.getServletContext().getAttribute(
"org.apache.struts.action.DATA_SOURCE");
}


public DBConn() throws SQLException
{

if (dataSource != null)
{
conn = dataSource.getConnection();
}
}


public ResultSet executeQuery(String sql)
{
ResultSet rs = null;


try
{

if (stmt == null)
{
stmt = conn.createStatement();
}

rs = stmt.executeQuery(sql);

} catch (SQLException e)
{
e.printStackTrace();
}

return rs;
}


public void executeUpdate(String sql) throws SQLException
{

if (stmt == null)
{
stmt = conn.createStatement();
}

stmt.executeUpdate(sql);
}


public Connection getConnection()
{
return conn;
}


public void prepareStatement(String sqlStr) throws SQLException
{
preStmt = conn.prepareStatement(sqlStr);
}


public void setString(int index, String value) throws SQLException
{
preStmt.setString(index, value);
}


public void setInt(int index, int value) throws SQLException
{
preStmt.setInt(index, value);
}


public void setBoolean(int index, boolean value) throws SQLException
{
preStmt.setBoolean(index, value);
}


public void setLong(int index, long value) throws SQLException
{
preStmt.setLong(index, value);
}


public void setFloat(int index, float value) throws SQLException
{
preStmt.setFloat(index, value);
}


public void setBytes(int index, byte[] value) throws SQLException
{
preStmt.setBytes(index, value);
}


public void clearPreStmt() throws SQLException
{
preStmt.clearParameters();
preStmt = null;
}


public ResultSet executeQuery() throws SQLException
{

if (preStmt != null)
{
return preStmt.executeQuery();

} else
{
return null;
}
}


public void executeUpdate() throws SQLException
{

if (preStmt != null)
{
preStmt.executeUpdate();
}
}


public void close()
{

try
{

if (stmt != null)
{
stmt.close();
stmt = null;
}


if (preStmt != null)
{
preStmt.close();
preStmt = null;
}


if (conn != null)
{
conn.close();
conn = null;
System.out.println("**** a connection is closed ****");
}

} catch (Exception e)
{
System.err.println(e.getMessage());
}
}


public void destroy()
{
}
}


然后配置struts-config.xml文件:
<plug-in className="com.xxx.db.DBConn"></plug-in>
3.到此,数据源完成。用法示例:
Connection conn = new DBCon().getConnection();
本配置只适合初学者。。。。。。
posted on 2008-04-16 17:21
biiau 阅读(1174)
评论(0) 编辑 收藏