实验室网站所遇技术(一) struts1 数据源配置

我打算把我最近做第一个网站所学的技术,有意思的都贴上来!

 

 

Struts1.2中配置数据源

 

写作说明:

         虽然网上关于这方面的比较多,但是对于struts的初学者而言也是十分难懂,也有的有些错误。自己连接成功了,所以写下来分享一下。貌似struts的不同版本区别很大,注意自己的版本。

 

Struts版本:1.2.9

Tomcat 版本:6.0

 

1.首先还是在struts-config.xml中配置数据源:

<data-sources > 

      <data-source key ="dataSource" type="org.apache.commons.dbcp.BasicDataSource"> 

      <set-property  value="com.microsoft.sqlserver.jdbc.SQLServerDriver" property="driverClassName"/> 

      <set-property  value="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test" property="url"/> 

      <set-property value="lihuabest"  property="username"/> 

      <set-property  value="123" property="password"/> 

      </data-source> 

</data-sources>

 

 

 

这里有个地方和很多网上说的不一样,value="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test" 

网上有很多是这样写的:

value="jdbc:Microsoft:sqlserver://localhost:1433;databasename=test"

我的测试是通过不了,这是第一个注意的地方。

2.在action中使用数据源

在action的execute方法中写入一下代码:

ServletContext context=servlet.getServletContext();

        DataSource ds=

(DataSource)context.getAttribute("MySource");

Connection conn = ds.getConnection();

这里ds.getConnection();的返回值就是一个Connection

3.在非action 中使用数据源连接数据库

前一种方法因为使用到了ServletContext,所以必须在action中使用。但是有的时候我们希望在其非action中使用,怎么办呢?网上搜罗了半天,终于找到一个解决办法,参看网址:

http://blog.sina.com.cn/s/blog_5f17b8e40100cltn.html

这是原文,

这是我的代码

package com.lihua.utils;


import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;


import javax.servlet.ServletException;

import javax.sql.DataSource;

 

import org.apache.struts.action.ActionServlet;

import org.apache.struts.action.PlugIn;

import org.apache.struts.config.ModuleConfig;

public class DBHelp1 implements PlugIn{

   private static DataSource dataSource = null;

   private Connection conn = null;

   private PreparedStatement ps = null;

   private ResultSet rs = null;

 

   public void init(ActionServlet servlet, ModuleConfig config)

         throws ServletException {

      dataSource = (DataSource) servlet.getServletContext().getAttribute("dataSource");

   }

  

   public Connection DBConn() throws SQLException {

      if (dataSource != null) {

            conn = dataSource.getConnection();

         }

      return conn;

   }
public void close() { try { if (rs != null) { rs.close(); rs = null; } if (ps != null) { ps.close(); ps = null; } if (conn != null) { conn.close(); conn = null; } } catch (Exception e) { e.printStackTrace(); } } public void destroy() { System.out.println("系统销毁"); } }

 

这个办法是继承了implements PlugIn,这个接口,实现的关键是:

dataSource = (DataSource) servlet.getServletContext().getAttribute("dataSource");

这里就得到了dataSource, 之后的就不解释了。

 

到这里还没有完,如果只是这样我的测试是没效果的,还必须在中加入这样一句配置:<plug-in className="com.lihua.utils.DBHelp1"></plug-in>

也就是这个类的完整包名,至此,完结。

 

这个在struts1的配置文件里配置数据源用的貌似不多,配置好了也是多了解一点!

 

posted @ 2012-08-02 11:32  lihuabest  阅读(219)  评论(0编辑  收藏  举报