odbc连接成功
oracle的classes12.jar包加到了C:\Tomcat5.5\common\lib
数据源在struts-config里配置如下
<!-- ============================================ Data Source Configuration -->
 <data-sources>
<data-source  type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="initialSize" value="10"/>
<set-property property="password" value="tqbs"/>
<set-property property="maxActive" value="10"/>
<set-property property="maxIdle" value="5"/>
<set-property property="username" value="tqbsuser"/>
<set-property property="driverClassName"
value="oracle.jdbc.driver.OracleDriver"/>
<set-property property="description" value="ORACLE DataSource"/>
<set-property property="url"
value="jdbc:oracle:thin:@127.0.0.1:1521:bsj"/>
<set-property property="autoCommit" value="false"/>
<set-property property="readOnly" value="false"/>
<set-property property="removeAbandonedTimeout" value="300"/>
</data-source>
</data-sources>


<!-- ================================================ Form Bean Definitions -->
连接数据库的的文件是BaseAction.javaprotected Connection getConnection(HttpServletRequest request) throws Exception {
Connection connection = null;
try {
if (dataSource == null) {
dataSource = getDataSource(request);
}
if (connection == null || connection.isClosed()) {
connection = dataSource.getConnection();
} else {
connection = null;
}
connection.setAutoCommit(false);
} catch (Exception e) {
throw e;
}
return connection;
}
然后我在调式的时候dataSource 和 connection 都显示为null

解决方案 »

  1.   

    dataSource没有取到connection肯定是null。应该还是配置的问题,好好检查下配置文件吧
      

  2.   

     try {
             TQBS0000Form loginForm = (TQBS0000Form) form;
                // 儐乕僓僐乕僪傪庢摼偡傞
                String userID = loginForm.getUserID();            // 僷僗儚乕僪傪庢摼偡傞
                String password = loginForm.getPassword();
                conn = getConnection(request);
                TQBS0000Model loginModel = new TQBS0000Model(userID, password);
                isLogin = loginModel.checkLogin(conn);
                // 儘僌僀儞儐乕僓偑懚嵼偟側偄応崌
                if (isLogin == 1) {
                    msg = MessageUtil.E00029 + Constants.LINE_BREAK;
                    request.setAttribute(Constants.REQ_ERR_MSGS, msg);
                    log.error(msg);
                    return mapping.findForward("commonError");
                    // 僷乕僗儚乕僪偑晄惓応崌
                } else if (isLogin == 2) {
                 msg = MessageUtil.E00014 + Constants.LINE_BREAK;;
                    request.setAttribute(Constants.REQ_ERR_MSGS, msg);
                    log.error(msg);
                    return mapping.findForward("commonError");
                } else {
                    // 惉岟応崌
                    // 儘僌僀儞儐乕僓僐乕僪傪儕僋僄僗僩偵曐懚偡傞
                
                 Hashtable hashtable = new Hashtable();
                 TQBS0000DAO loginDao = new TQBS0000DAO();
                 hashtable = loginDao.getKengen_SyainNo(conn, userID);
                 loginForm.setHdnClose("1");
                 session.setAttribute(Constants.SES_USERNAME, hashtable.get("SYAIN_NAME"));
                 session.setAttribute(Constants.SES_KENGEN,hashtable.get("SYUBETU_NAME2"));
                 session.setAttribute(Constants.SES_SYAIN_NO,hashtable.get("SYAIN_NO"));
                 session.setAttribute(Constants.SES_HAIZOKU1,hashtable.get("HAIZOKU1"));
                 session.setAttribute(Constants.SES_HAIZOKU2,hashtable.get("HAIZOKU2"));
                 session.setAttribute(Constants.SES_HAIZOKU3,hashtable.get("HAIZOKU3"));
                         
                
                }
            } catch (Exception e) {
                request.setAttribute(Constants.REQ_ERR_MSGS, e.getMessage());
                log.error("Error丗" + e.getMessage());
                return mapping.findForward("systemErrorMain");
            } finally {
                closeConnection(conn);
            }
            if (log.isDebugEnabled()) {
                log.debug("userLogin() Normal End");
            }
            return mapping.findForward("display");
        }
    直接显示Error丗
      

  3.   

    <Resource name="jdbc/oracleds" auth="Container"
     type="javax.sql.DataSource" maxIdle="30" maxWait="1000"
     maxAction="10" username="system" password="manager" 
     driverClassName="oracle.jdbc.OracleDriver"
     url="jdbc:oracle:thin:@localhost:1521:myoracle"/>
    context.xml里面action里面 
     
       Context context = new InitialContext();
       DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
       QueryRunner qr = new QueryRunner(ds);
       qr.update(sql,params);楼主这样配置下试试!