<div dir="ltr">S2Dao.NET$B$r;H$$;O$a$?$P$+$j$N=i?4<T$G$9!#(B<br>ML$B$NEj9F$b=i$a$F$$$?$7$^$9!#(B<br>SQLite$B$N(BDB$B%"%/%;%9$KBP$7$F(BS2Dao.NET$B$rMxMQ$7$F$_$h$&$H;W$$!"(BConsole$B%"%W%j$N%5%s%W%k$r:n@.$7$F$_$^$7$?!#(B<br>$B$7$+$7!":n@.$7$?(BDao$B%$%s%?%U%'!<%9$N%a%=%C%I8F$S=P$7$GNc30H/@8$7!"860x$,J,$+$i$:$K:$$C$F$$$^$9!#(B<br>$BD9$/$J$j$^$9$,!"4D6-$J$I$r>\:Y$K=q$-$^$9$H0J2<$N$h$&$K$J$C$F$$$^$9!#(B<br><br>


$B4D6-(B----------------------------------<br>OS$B!'(BWindows XP SP3<br>$B8@8l!'(BC#(.NET Framework3.5)<br>$B3+H/4D6-!'(BVisualStudio 2008<br>DB$B!'(BSQLite(SQLite.dll <a href="http://1.0.59.0" target="_blank">1.0.59.0</a>)<br>S2Dao.NET$B!'(B1.3.11<br>--------------------------------------<br>


<br>$B9=@.(B----------------------------------<br>$B!Z%=%j%e!<%7%g%s![(B<br>MyS2DaoSample<br>&nbsp;&nbsp; $B(1(,!Z%W%m%8%'%/%H![(BMyS2DaoSample<br>&nbsp;&nbsp; $B!!!!!!(2(,!Z;2>H![(BSeasar.dll$B!"(BSeasar.Dao.dll$B!"(BSQLite.dll<br>&nbsp;&nbsp; $B!!!!!!(2(,!Z@_Dj%U%!%$%k![(Bapp.config$B!"(Bapp.dicon,Dao.dicon,S2Dao.dicon,Ado.dicon($B$=$l$>$l!"!V>o$K%3%T!<$9$k!W$K@_Dj(B)<br>


&nbsp;&nbsp; $B!!!!!!(2(,!Z%/%i%9![(BILibraryDao.cs, Library.cs, Program.cs<br>&nbsp;&nbsp; $B!!!!!!(1(,!Z(BDB$B%U%!%$%k![(BLibrary.SQ3<br>&nbsp; <br>--------------------------------------<br><br>app.config----------------------------<br>&lt;configuration&gt;<br>&nbsp; &lt;configSections&gt;<br>


&nbsp;&nbsp;&nbsp; &lt;section name=&quot;seasar&quot; type=&quot;Seasar.Framework.Xml.S2SectionHandler, Seasar&quot; /&gt;<br>&nbsp; &lt;/configSections&gt;<br>&nbsp; &lt;seasar&gt;<br>&nbsp;&nbsp;&nbsp; &lt;configPath&gt;App.dicon&lt;/configPath&gt;<br>&nbsp;&nbsp;&nbsp; &lt;assemblys&gt;<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;assembly&gt;Seasar.Dao&lt;/assembly&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;assembly&gt;System.Data.SQLite&lt;/assembly&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/assemblys&gt;<br>&nbsp; &lt;/seasar&gt;<br>&lt;/configuration&gt;<br>--------------------------------------<br>


<br>App.dicon-----------------------------<br>&lt;components&gt;<br>&nbsp; &lt;include path=&quot;Dao.dicon&quot;/&gt;<br>&lt;/components&gt;<br>--------------------------------------<br><br>Dao.dicon-----------------------------<br>


&lt;components namespace=&quot;Dao&quot;&gt;<br>&nbsp; &lt;include path=&quot;S2Dao.dicon&quot;/&gt;<br>&nbsp; &lt;component class=&quot;MyS2DaoSample.ILibraryDao&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;aspect&gt;S2Dao.Interceptor&lt;/aspect&gt;<br>

&nbsp; &lt;/component&gt;<br>
&lt;/components&gt;<br>--------------------------------------<br><br>S2Dao.dicon---------------------------<br>&lt;components namespace=&quot;S2Dao&quot;&gt;<br>&nbsp; &lt;include path=&quot;Ado.dicon&quot; /&gt;<br>&nbsp; &lt;component class=&quot;Seasar.Extension.ADO.Impl.BasicDataReaderFactory&quot; /&gt;<br>


&nbsp; &lt;component class=&quot;Seasar.Extension.ADO.Impl.BasicCommandFactory&quot; /&gt;<br>&nbsp; &lt;component class=&quot;Seasar.Dao.Impl.FieldAnnotationReaderFactory&quot; /&gt;<br>&nbsp; &lt;component class=&quot;Seasar.Dao.Impl.DaoMetaDataFactoryImpl&quot; /&gt;<br>


&nbsp; &lt;component name&nbsp; =&quot;Interceptor&quot;<br>&nbsp;&nbsp;&nbsp; class =&quot;Seasar.Dao.Interceptors.S2DaoInterceptor&quot;/&gt;<br>&lt;/components&gt;<br>--------------------------------------<br><br>Ado.dicon-----------------------------<br>


&lt;components namespace=&quot;Ado&quot;&gt;<br>&nbsp; &lt;component name=&quot;SQLiteClient&quot; class=&quot;Seasar.Extension.ADO.DataProvider&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;property name=&quot;ConnectionType&quot;&gt;&quot;System.Data.SQLite.SQLiteConnection&quot;&lt;/property&gt;<br>


&nbsp;&nbsp;&nbsp; &lt;property name=&quot;CommandType&quot;&gt;&quot;System.Data.SQLite.SQLiteCommand&quot;&lt;/property&gt;<br>&nbsp;&nbsp;&nbsp; &lt;property name=&quot;ParameterType&quot;&gt;&quot;System.Data.SQLite.SQLiteParameter&quot;&lt;/property&gt;<br>


&nbsp;&nbsp;&nbsp; &lt;property name=&quot;DataAdapterType&quot;&gt;&quot;System.Data.SQLite.SQLiteDataAdapter&quot;&lt;/property&gt;<br>&nbsp; &lt;/component&gt;<br>&nbsp; <br>&nbsp; &lt;component name=&quot;DataSource&quot; class=&quot;Seasar.Extension.Tx.Impl.TxDataSource&quot;&gt;<br>


&nbsp;&nbsp;&nbsp; &lt;property name=&quot;DataProvider&quot;&gt;SQLiteClient&lt;/property&gt;<br>&nbsp;&nbsp;&nbsp; &lt;property name=&quot;ConnectionString&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Data Source=Library.SQ3;New=True;Compress=False;Synchronous=Off;UTF8Encoding=False;Version=3&quot;<br>


&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br>&nbsp; &lt;/component&gt;<br>&nbsp; <br>&lt;/components&gt;<br>--------------------------------------<br>$B$3$N$h$&$J@_Dj%U%!%$%k$r:n@.$7$^$7$?!#(B<br>$B$3$l$KBP$7$F!":n@.$7$?(BDao$B%$%s%?%U%'!<%9$N%=!<%9$O!"(B<br>ILibraryDao.cs ===========================<br>

namespace MyS2DaoSample {<br>
&nbsp;&nbsp;&nbsp; [Bean(typeof(Library))]<br>&nbsp;&nbsp;&nbsp; public interface ILibraryDao&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Library[] GetAllLibraries();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int Insert(Library library);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int Update(Library library);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int Delete(Library library);<br>


&nbsp;&nbsp;&nbsp; }<br>}<br>=======================================<br>$B$N$h$&$K$J$C$F$*$j!"(BEntity$B%/%i%9$O!"(B<br>Library.cs ===============================<br>namespace MyS2DaoSample{<br>&nbsp;&nbsp;&nbsp; [Table(&quot;lib_mgmt_list_tbl&quot;)]<br>&nbsp;&nbsp;&nbsp; public class Library<br>


&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private String _libID;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private String _libName;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private String _userName;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private DateTime _creationTime;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private DateTime _lastAccessTime;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private DateTime _lastWriteTime;<br>


<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Library() {}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String LibID&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return _libID; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { _libID = value; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String LibName {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return _libName; }<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { _libName = value; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String UserName {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return _userName; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { _userName = value; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public DateTime CreationTime {<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return _creationTime; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { _creationTime = value; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public DateTime LastAccessTime {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return _lastAccessTime; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { _lastAccessTime = value; }<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public DateTime LastWriteTime {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return _lastWriteTime; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { _lastWriteTime = value; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>}<br>=======================================<br>


$B$N$h$&$K$7$^$7$?!#$3$l$r(BMain$B4X?t$G(B<br>Program.cs ===============================<br>namespace MyS2DaoSample{<br>&nbsp;&nbsp;&nbsp; class Program {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void Main(string[] args) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SingletonS2ContainerFactory.ConfigPath = &quot;App.dicon&quot;;<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SingletonS2ContainerFactory.Init();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IS2Container container = SingletonS2ContainerFactory.Container;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ILibraryDao libraryDao = (ILibraryDao)container.GetComponent(typeof(ILibraryDao));<br>


<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Library[] libs = libraryDao.GetAllLibraries();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(&quot;$B=*N;(B&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ($BN,(B)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<br>=======================================<br>


$B$N$h$&$K$7$F!"(BGetAllLibraries$B%a%=%C%I$r8F$S$^$7$?!#(B<br>$B$3$3$G!"!V%*%V%8%'%/%H;2>H$,%*%V%8%'%/%H%$%s%9%?%s%9$K@_Dj$5$l$F$$$^$;$s!#!W(B<br>$B$H$$$&Nc30$,H/@8$7$^$9!#(BStackTrace$B$O!"(B<br>=======================================<br>$B>l=j(B Seasar.Extension.Tx.Impl.TxDataSource.GetConnection()<br>$B>l=j(B Seasar.Dao.Dbms.DbmsManager.GetDbms(IDataSource dataSource)<br>


$B>l=j(B Seasar.Dao.Impl.DaoMetaDataImpl.Initialize()<br>$B>l=j(B Seasar.Dao.Impl.DaoMetaDataFactoryImpl.CreateDaoMetaData(Type daoType)<br>$B>l=j(B Seasar.Dao.Impl.DaoMetaDataFactoryImpl.GetDaoMetaData(Type daoType)<br>$B>l=j(B Seasar.Dao.Interceptors.S2DaoInterceptor.Invoke(IMethodInvocation invocation)<br>


$B>l=j(B Seasar.Framework.Aop.Proxy.AopProxy.Invoke(IMessage msg)<br>$B>l=j(B System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type)<br>$B>l=j(B MyS2DaoSample.ILibraryDao.GetAllLibraries()<br>$B>l=j(B MyS2DaoSample.Program.Main(String[] args)<br>


$B>l=j(B C:\Documents$B!D(B\Visual Studio 2008\Projects\MyS2DaoSample\MyS2DaoSample\Program.cs:$B9T(B 22<br>=======================================<br>$B$N$h$&$K$J$C$F$*$j$^$9!#(B<br>$B860x$K$D$$$F!"$465<x$$$?$@$1$J$$$G$7$g$&$+!)(B</div>