<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-2022-jp">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2>tomcat6.0 <BR>Seasar2.3.19 <BR>SqlServer2005 
<BR>JDK1.6 </FONT></DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2>Seasar2 
$B$O(Btomcat$B%5!<%P!<$G(BSqlServer$B$r@\B3$9$k;~!"0l$D$N(BService$B$G(B2$B7o$N(BUpdate$BJ8$r<B9T$9$k$H!"0lHVL\$O@.8y$9$k$,!"(B2$BHVL\$O<:GT$9$k!#(B 
<BR>$B%m%0$G!"!V%H%i%s%6%/%7%g%s$r%m!<%k%P%C%/$7$^$7$?!W$H$$$&%a%C%;!<%8$r=P$7$?$,!"(BDB$B$G0lHVL\$N(BUpdate$BJ8$O99?7$7$?FbMF$,0MA3$H$7$FB8:_(B 
<BR>$B$7$F$$$F!"@5>o$K%m!<%k%P%C%/$7$J$$!#$3$l$O2?8N$+(B</FONT></DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2>$B%0$O2<5-$NDL$j!#(B <BR>2008/01/10 09:26:27.812 [DEBUG] 
$B%H%i%s%6%/%7%g%s$r3+;O$7$^$7$?(B <BR>2008/01/10 09:26:27.984 [DEBUG] UPDATE dbo.test <BR>SET 
USER_PWD = 'tcl' <BR>WHERE USER_NO = '15' <BR>2008/01/10 09:26:28.375 [DEBUG] 
$BJ*M}E*$J%3%M%/%7%g%s$r<hF@$7$^$7$?(B <BR>2008/01/10 09:26:28.375 [DEBUG] $BO@M}E*$J%3%M%/%7%g%s$r<hF@$7$^$7$?(B 
<BR>2008/01/10 09:26:28.531 [DEBUG] $BO@M}E*$J%3%M%/%7%g%s$rJD$8$^$7$?(B <BR>2008/01/10 09:26:28.531 
[DEBUG] $BJ*M}E*$J%3%M%/%7%g%s$rJD$8$^$7$?(B <BR>2008/01/10 09:26:28.609 [DEBUG] UPDATE dbo.test1 
<BR>SET USER_PWD = 'abc' <BR>WHERE USER_NO = '16' <BR>2008/01/10 09:26:28.625 
[DEBUG] $BJ*M}E*$J%3%M%/%7%g%s$r<hF@$7$^$7$?(B <BR>2008/01/10 09:26:28.625 [DEBUG] $BO@M}E*$J%3%M%/%7%g%s$r<hF@$7$^$7$?(B 
<BR>2008/01/10 09:26:28.625 [DEBUG] $BO@M}E*$J%3%M%/%7%g%s$rJD$8$^$7$?(B <BR>2008/01/10 09:26:28.625 
[DEBUG] $BJ*M}E*$J%3%M%/%7%g%s$rJD$8$^$7$?(B <BR>2008/01/10 09:26:28.625 [DEBUG] $B%H%i%s%6%/%7%g%s$r%m!<%k%P%C%/$7$^$7$?(B 
<BR>2008/01/10 09:26:28.671 [ERROR] 
org.seasar.framework.exception.SQLRuntimeException: 
<BR>[ESSR0071]SQL$B$GNc30(B(ErrorCode=208, SQLState=42S02)$B$,H/@8$7$^$7$?!#M}M3$O(B 
<BR>org.seasar.framework.exception.SSQLException: [ESSR0072]SQL$B$GNc30(B(SQL=[UPDATE 
dbo.test <BR>....</FONT></DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2>j2ee.dicon 
<BR>--------------------------------<BR>&lt;?xml version="1.0" 
encoding="Shift_JIS"?&gt; <BR>&lt;!DOCTYPE components PUBLIC "-//SEASAR//DTD 
S2Container//EN" <BR>"<A 
href="http://www.seasar.org/dtd/components.dtd">http://www.seasar.org/dtd/components.dtd</A>"&gt; 
<BR>&lt;components namespace="j2ee"&gt; <BR>&lt;!-- Seasar2$B%H%i%s%6%/%7%g%s%^%M!<%8%c(B --&gt; 
<BR>&lt;component name="transactionManager" 
<BR>class="org.seasar.extension.jta.TransactionManagerImpl"/&gt; <BR>&lt;!-- 
$B%H%i%s%6%/%7%g%sB0@-(B --&gt; <BR>&lt;component name="requiredTx" 
class="org.seasar.extension.tx.RequiredInterceptor"&gt; <BR>&lt;initMethod 
name="addRollbackRule"&gt; 
<BR>&lt;arg&gt;@java.lang.RuntimeException@class&lt;/arg&gt; 
<BR>&lt;/initMethod&gt; <BR>&lt;/component&gt; <BR>&lt;component 
name="basicResultSetFactory" 
<BR>class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/&gt; 
<BR>&lt;component name="basicStatementFactory" 
<BR>class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/&gt; 
<BR>&lt;!-- SQL Server 2005 --&gt; <BR>&lt;component name="sqlConnection" 
class="org.seasar.extension.dbcp.impl.XADataSourceImpl"&gt; <BR>&lt;property 
name="driverClassName"&gt;"com.microsoft.jdbc.sqlserver.SQLServerDriver"&lt;/property&gt; 
<BR>&lt;property 
name="URL"&gt;"jdbc:microsoft:sqlserver://192.168.1.216:1433;DatabaseName=test"&lt;/property&gt; 
<BR>&lt;property name="user"&gt;"sa"&lt;/property&gt; <BR>&lt;property 
name="password"&gt;"sa"&lt;/property&gt; <BR>&lt;/component&gt; 
<BR>&lt;component name="sqlConnectionPool" 
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl"&gt; <BR>&lt;property 
name="timeout"&gt;600&lt;/property&gt; <BR>&lt;property 
name="maxPoolSize"&gt;5&lt;/property&gt; <BR>&lt;property 
name="allowLocalTx"&gt;true&lt;/property&gt; <BR>&lt;property 
name="XADataSource"&gt;sqlConnection&lt;/property&gt; <BR>&lt;destroyMethod 
name="close"/&gt; <BR>&lt;/component&gt; <BR>&lt;component name="dataSource" 
class="org.seasar.extension.dbcp.impl.DataSourceImpl"&gt; 
<BR>&lt;arg&gt;sqlConnectionPool&lt;/arg&gt; <BR>&lt;/component&gt; 
<BR>&lt;/components&gt; </FONT></DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2>test.dicon 
<BR>--------------------------------<BR>&lt;components&gt; <BR>&lt;!--Aspect 
auto regist. --&gt; <BR>&lt;component 
class="jp.co.business.service.impl.testServiceImpl"&gt; 
<BR>&lt;aspect&gt;j2ee.requiredTx&lt;/aspect&gt; <BR>&lt;/component&gt; 
<BR>&lt;/components&gt; </FONT></DIV>
<DIV><FONT face="$B#M#S(B $B%4%7%C%/(B" size=2><BR>testServiceImpl.java 
<BR>--------------------------------<BR>public class testServiceImpl extends 
PagerService implements testService { <BR>private testDao dao; <BR>public void 
setTestDao(testDao dao) { <BR>this.dao = dao; <BR>} <BR>public int 
updatePassWord(String strNo, String strPwd) { <BR>int iRtnValue = -1; 
<BR>iRtnValue = dao.updatePassWord("15", "tcl"); <BR>iRtnValue = 
dao.updatePassWord1("16", "abc"); <BR>return iRtnValue; <BR>} </DIV>
<DIV>================================================================<BR>$B>.NS$5$s(B</DIV>
<DIV>&nbsp;</DIV>
<DIV>$B$42sEzBgJQ$"$j$,$H$&$4$6$$$^$7$?!#(B<BR>dao $B$rDj5A$7$F$$$k(B dicon $B%U%!%$%k$O2<5-$NDL$j$G$9!#(B<BR>test.dicon 
<BR>--------------------------------<BR>&lt;!-- Component auto regist. 
--&gt;<BR>&nbsp; &lt;component<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;property name="autoNaming"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;component 
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;/property&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;initMethod 
name="addClassPattern"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;arg&gt;"jp.co.domain.dao.impl"&lt;/arg&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;arg&gt;".*DaoImpl"&lt;/arg&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;/initMethod&gt;<BR>&nbsp; &lt;/component&gt;<BR>&nbsp; 
&lt;component<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;property name="autoNaming"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;component 
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;/property&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;initMethod 
name="addClassPattern"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;arg&gt;"jp.co.business.service.impl"&lt;/arg&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;arg&gt;".*ServiceImpl"&lt;/arg&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;/initMethod&gt;<BR>&nbsp; &lt;/component&gt;<BR>&nbsp; 
&lt;component<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;property name="instanceDef"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
@org.seasar.framework.container.deployer.InstanceDefFactory@REQUEST<BR>&nbsp;&nbsp;&nbsp; 
&lt;/property&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;property 
name="autoNaming"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;component 
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;/property&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;initMethod 
name="addClassPattern"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;arg&gt;"jp.co.web.action"&lt;/arg&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;arg&gt;".*Action"&lt;/arg&gt;<BR>&nbsp;&nbsp;&nbsp; 
&lt;/initMethod&gt;<BR>&nbsp; &lt;/component&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV>testService $B$r8F$S=P$7$F$$$k%3!<%I(B<BR>--------------------------------<BR>public class 
LoginAction extends BaseAction{<BR>&nbsp;private testService 
service;<BR>&nbsp;public void setTestService(testService service) 
{<BR>&nbsp;&nbsp;this.service = service;<BR>&nbsp;}<BR>&nbsp;public String 
doExecute(ActionMapping mapping,<BR>&nbsp;&nbsp;&nbsp;ActionForm 
form,<BR>&nbsp;&nbsp;&nbsp;HttpServletRequest 
request,<BR>&nbsp;&nbsp;&nbsp;HttpServletResponse response) {<BR>&nbsp;&nbsp;int 
iUpdateFlg = -1;<BR>&nbsp;&nbsp;iUpdateFlg = service.updatePassWord("15", 
"tcl");<BR>&nbsp;&nbsp;return 
SUCCESS;<BR>&nbsp;}<BR>}<BR>$B!V%H%i%s%6%/%7%g%s$r3+;O$7$F$$$k%3!<%I!W$O%=!<%9$G=q$$$F$$$^$;$s!#(B<BR>$B%H%i%s%6%/%7%g%s$N4IM}$O(BS2$B4pDl$h$j<B9T$5$l$k$N$G$7$g$&$+!"%=!<%9$GL@J8$K5-=R$9$kI,MW$,$"$j$^$9$+!#(B<BR>$B>0!"(BS2Container$B$,:n@.$5$l$?$+$r$I$N$h$&$KH=CG$7$^$9$+!#(B<BR>================================================================<BR>$B$R$,$5$s(B</DIV>
<DIV>&nbsp;</DIV>
<DIV>$B$42sEzBgJQ$"$j$,$H$&$4$6$$$^$7$?!#(B<BR>web.xml$B$K2<5-$NG[CV$,$"$j$^$9!#(B<BR>web.xml<BR>--------------------------------<BR>&lt;servlet&gt;<BR>&nbsp;&lt;servlet-name&gt;s2servlet&lt;/servlet-name&gt;<BR>&nbsp;&lt;servlet-class&gt;org.seasar.framework.container.servlet.S2ContainerServlet&lt;/servlet-class&gt;<BR>&nbsp;&lt;init-param&gt;<BR>&nbsp;&nbsp;&lt;param-name&gt;configPath&lt;/param-name&gt;<BR>&nbsp;&nbsp;&lt;param-value&gt;app.dicon&lt;/param-value&gt;<BR>&nbsp;&lt;/init-param&gt;<BR>&nbsp;&lt;init-param&gt;<BR>&nbsp;&nbsp;&lt;param-name&gt;debug&lt;/param-name&gt;<BR>&nbsp;&nbsp;&lt;param-value&gt;false&lt;/param-value&gt;<BR>&nbsp;&lt;/init-param&gt;<BR>&nbsp;&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<BR>&lt;/servlet&gt;<BR>&lt;servlet-mapping&gt;<BR>&nbsp;&lt;servlet-name&gt;s2servlet&lt;/servlet-name&gt;<BR>&nbsp;&lt;url-pattern&gt;/s2servlet&lt;/url-pattern&gt;<BR>&lt;/servlet-mapping&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt;S2Container$B$N@8@.$O!"(BS2ContainerServlet$B$KG$$;$F$/$@$5$$!#(B<BR>$B$=$l$G$O!"4{$K(BS2Container$B$N@8@.$O(BS2ContainerServlet$B$KG$$;$?$3$H$r@bL@$9$k$N$G$7$g$&$+!#(B<BR>$B$[$+$K2?$+$NG[CV$,MW$j$^$9$+!#(B<BR>================================================================<BR>$B:#ED$5$s(B</DIV>
<DIV>&nbsp;</DIV>
<DIV>$B$42sEzBgJQ$"$j$,$H$&$4$6$$$^$7$?!#(B<BR>DaoImpl:<BR>--------------------------------<BR>public 
class TestDaoImpl extends BaseDao implements TestDao {<BR>&nbsp;public int 
updatePassWord(String strNo, String strPwd) {<BR>&nbsp;&nbsp;Object[] args=new 
Object[]{strPwd, strNo};<BR>&nbsp;&nbsp;return super.updateSQL("updatePassWord", 
args);<BR>&nbsp;}<BR>&nbsp;public int updatePassWord1(String strNo, String 
strPwd) {<BR>&nbsp;&nbsp;Object[] args=new Object[]{strPwd, 
strNo};<BR>&nbsp;&nbsp;return super.updateSQL("updatePassWord1", 
args);<BR>&nbsp;}<BR>}</DIV>
<DIV><BR>BaseDao:<BR>--------------------------------<BR>public abstract class 
BaseDao {<BR>&nbsp;private final static String DICON_DIR = 
"jp/co/dicon/";<BR>&nbsp;private final static String DICON_EX = 
".dicon";<BR>&nbsp;public int updateSQL(String component, Object[] args) 
{<BR>&nbsp;&nbsp;int result;<BR>&nbsp;&nbsp;String classFullName = 
this.getClass().getName();<BR>&nbsp;&nbsp;String diconPath = 
getDiconPath(classFullName);<BR>&nbsp;&nbsp;S2Container container = 
S2ContainerFactory.create(diconPath);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
container.init();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Object obj = 
container.getComponent(component);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;UpdateHandler handler = 
(UpdateHandler)obj;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result = handler.execute(args);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
finally {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
container.destroy();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;return 
result;<BR>}<BR>$B%H%i%s%6%/%7%g%s$N=hM}$O%=!<%9$GL@J8$K5-=R$7$J$$!"$b$&(BS2Container$B$KG$$;$k!#(B<BR>$B2?LdBj$,$"$l$P!"65$($F$*4j$$$7$^$9!#(B</DIV>
<DIV>&nbsp;</DIV>
<DIV>$B$I$&$7$F%m%0$G!VJ*M}E*$J%3%M%/%7%g%s$rJD$8$^$7$?!W$rI=<($7$^$9$+!#(B</FONT></DIV></BODY></HTML>