フォーラム

GroupSession

フォーラム
GroupSessionについての自由な情報交換の場としてご利用ください

GroupSessionフォーラム:投稿一覧

 
フォーラム:03_プラグイン開発フォーラム
施設予約からスケジュールSID取得
[ 1785 ] 施設予約からスケジュールSID取得

施設予約からスケジュールへ同時登録できるように改造しているのですが、新規登録は
作成することができましたが、既に登録している施設予約からスケジュールSIDを取得
するところで解決でいないところが出てきました。

 施設予約の登録画面(rsv110)から、変更登録する時にスケジュールSIDを取得する方法
なのですが、スケジュールSIDをSCD_RSSIDとSCD_USR_SIDから取得します。

 しかし、SchDatadao.daoのpreparaStatementでNullPointerException
が発生し、問題がどうして発生しているのか判らない状況です。

[SchDataDao.dao]に追加
public SchDataModel selectSchRsvRel(SchDataModel bean) throws SQLException {

PreparedStatement pstmt = null;
ResultSet rs = null;
Connection con = null;
SchDataModel ret = null;
con = getCon();

try {
//SQL文
SqlBuffer sql = new SqlBuffer();
sql.addSql(" select");
sql.addSql(" SCD_SID,");
sql.addSql(" SCD_USR_SID,");
sql.addSql(" SCD_GRP_SID,");
sql.addSql(" SCD_USR_KBN,");
sql.addSql(" SCD_FR_DATE,");
sql.addSql(" SCD_TO_DATE,");
sql.addSql(" SCD_DAILY,");
sql.addSql(" SCD_BGCOLOR,");
sql.addSql(" SCD_TITLE,");
sql.addSql(" SCD_VALUE,");
sql.addSql(" SCD_BIKO,");
sql.addSql(" SCD_PUBLIC,");
sql.addSql(" SCD_AUID,");
sql.addSql(" SCD_ADATE,");
sql.addSql(" SCD_EUID,");
sql.addSql(" SCD_EDATE,");
sql.addSql(" SCD_EDIT,");
sql.addSql(" SCE_SID,");
sql.addSql(" SCD_RSSID");
sql.addSql(" from");
sql.addSql(" SCH_DATA");
sql.addSql(" where ");
sql.addSql(" SCD_RSSID = ?");
sql.addSql(" and");
sql.addSql(" SCD_USR_SID = ?");
sql.addValue(bean.getScdRsSid());
sql.addValue(bean.getScdUsrSid());


log__.error(bean.getScdRsSid());
log__.error(bean.getScdUsrSid());
log__.error(sql.toLogString());

pstmt = con.prepareStatement(sql.toSqlString());  ←ここでエラー


log__.error(pstmt);

log__.info(sql.toLogString());
sql.setParameter(pstmt);
rs = pstmt.executeQuery();
if (rs.next()) {
ret = __getSchDataFromRs2(rs);
}
} catch (SQLException e) {
throw e;
} finally {
JDBCUtil.closeResultSet(rs);
JDBCUtil.closeStatement(pstmt);
}
return ret;
}

投稿者snip
最新書き込み2009/02/09 16:51:55
[ 1786 ] 施設予約からスケジュールSID取得の続き

SchDataDao.daoの呼び出し元[Rsv110Biz]
RsvSisYrkModel selParam = new RsvSisYrkModel();
selParam.setRsySid(form.getRsv110RsySid());
RsvSisYrkDao yrkDao = new RsvSisYrkDao(con);
selParam = yrkDao.select(selParam); ←RSY_SIDからSCD_RSSIDを取得

SchDataDao schDao = new SchDataDao();
//SCD_USR_SIDセット
scdMdl0.setScdUsrSid(Integer.parseInt(form.getRsv110SelectUsrSid())); 
//SCD_RSSIDセット
scdMdl0.setScdRsSid(selParam.getScdRsSid());

scdMdl = schDao.selectSchRsvRel(scdMdl0); ←ここでスケジュールSIDをゲット


 DBAプラグインを用いて、下記ログのselect文を実行しましたが、正常に結果を取得できて
います。何が悪いのか全く検討がつかない状態です。
 ヒントでもかまいませんのでアドバイス頂けますよう宜しくお願い致します。m(_ _)m

----------------ここからCatalinaのlog---------------------------------------
2009-02-09 16:25:49,890 ERROR jp.groupsession.v2.sch.dao.SchDataDao:681 - 71
2009-02-09 16:25:49,890 ERROR jp.groupsession.v2.sch.dao.SchDataDao:682 - 101
2009-02-09 16:25:49,890 ERROR jp.groupsession.v2.sch.dao.SchDataDao:683 -
select
SCD_SID,
SCD_USR_SID,
SCD_GRP_SID,
SCD_USR_KBN,
SCD_FR_DATE,
SCD_TO_DATE,
SCD_DAILY,
SCD_BGCOLOR,
SCD_TITLE,
SCD_VALUE,
SCD_BIKO,
SCD_PUBLIC,
SCD_AUID,
SCD_ADATE,
SCD_EUID,
SCD_EDATE,
SCD_EDIT,
SCE_SID,
SCD_RSSID
from
SCH_DATA
where
SCD_RSSID = 71
and
SCD_USR_SID = 101

2009-02-09 16:25:49,890 ERROR jp.groupsession.v2.struts.AbstractGsAction:133 - AbstractActionで例外がスローされました。
java.lang.NullPointerException
at jp.groupsession.v2.sch.dao.SchDataDao.selectSchRsvRel(SchDataDao.java:685)
at jp.groupsession.v2.rsv.rsv110.Rsv110Biz.getInitData(Rsv110Biz.java:292)
at jp.groupsession.v2.rsv.rsv110.Rsv110Action.__doInit(Rsv110Action.java:134)
at jp.groupsession.v2.rsv.rsv110.Rsv110Action.executeAction(Rsv110Action.java:103)
at jp.groupsession.v2.struts.AbstractGsAction.execute(AbstractGsAction.java:123)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)

投稿者snip
最新書き込み2009/02/09 16:54:04
[ 1787 ] Re: 施設予約からスケジュールSID取得の続き

> SchDataDao schDao = new SchDataDao();
> //SCD_USR_SIDセット
> scdMdl0.setScdUsrSid(Integer.parseInt(form.getRsv110SelectUsrSid())); 
> //SCD_RSSIDセット
> scdMdl0.setScdRsSid(selParam.getScdRsSid());
>
> scdMdl = schDao.selectSchRsvRel(scdMdl0); ←ここでスケジュールSIDをゲット

Connection がnullなんでしょうね。
SchDataDao のインスタンスを生成するのにConnection を渡す必要がありますね。

例)
SchDataDao schDao = new SchDataDao(con);

投稿者良良良
最新書き込み2009/02/09 17:18:03
[ 1800 ] Re: Re: 施設予約からスケジュールSID取得の続き

 解説ありがとうございます。全くもってそのとおりでした。
当初は既存コードを見ながらやっていたのですが、最近は既存コードを見なくて
コーディングしているため、ちょっとしたミスが発生するような感じがします。

 ただ、エラーログからでは判断できないのが、結構つらいです。

> Connection がnullなんでしょうね。
> SchDataDao のインスタンスを生成するのにConnection を渡す必要がありますね。
>
> 例)
> SchDataDao schDao = new SchDataDao(con);
 

投稿者snip
最新書き込み2009/02/10 14:17:10
スレッドURLhttps://groupsession.jp/wbs/bulletin/bbs080.do?bbs010forumSid=3&threadSid=575
 


TOP