博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

最简单的IBatis for .net实现

Posted on 2010-12-09 23:48  ☆Keep★Moving☆  阅读(513)  评论(0编辑  收藏  举报

看过IBatis在Java下简单的实现所以写个.net下IBatis最简单的实现,下面我来介绍下我的做法。
       需要引入Castle.DynamicProxy.dll、IBatisNet.Common.dll、IBatisNet.DataAccess.dll和IBatisNet.DataMapper.dll四个DLL。
       首先是需要一个测试的用的数据库(Test)下的一张表(Table1)有两个字段:col1,col2,还有一个和数据库对应的类Table1,代码如下:
     public class Table1
    {
        private string _col1;
        private string _col2;
        public string col2
        {
           get { return _col2; }
            set { _col2 = value; }
        }
        public string col1
        {
            get { return _col1; }
            set { _col1 = value; }
        }  
}
然后,需要添加三个配置文件:provider.config,dao.config,SqlMap.config,其中provider.config可以直接添加IBatis提供的文件,dao.config主要配置数据库连接和接口类,SqlMap存储具体的XML路径。将IBatis提供的三个XML模板复制到Microsoft Visual Studio 8\Xml\Schemas下面。
dao.config:
<?xmlversion="1.0"encoding="utf-8"?>
<daoConfig     xmlns="http://ibatis.apache.org/dataAccess"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <providers resource="providers.config"/>
   <contextid="SqlMapDao"default="true">
       <!-- Database connection information -->
       <database>
           <providername="sqlServer2.0"/>
           <dataSource name="Test"connectionString="server='localhost';uid=**;password=****;database='Test';Min Pool Size=7;Max Pool Size=50"/>
       </database>
       <daoSessionHandlerid="SqlMap">
           <propertyname="sqlMapConfigFile"value="SqlMap.config"/>
       </daoSessionHandler>       
       <daoFactory>
           <!—因为是简单实现所以不演示接口实现------>
       </daoFactory>
 
   </context>
</daoConfig>
 
SqlMap.config:
<?xmlversion="1.0"encoding="utf-8"?>
<sqlMapConfig   xmlns="http://ibatis.apache.org/dataMapper"   http://www.w3.org/2001/XMLSchema-instance">
 <settings>
    <settinguseStatementNamespaces="false"/>
 </settings>
   <sqlMaps>
    <sqlMapresource ="Maps/Table1.xml"/>
   </sqlMaps>
</sqlMapConfig>
sqlMap.config中有一个Table1.xml,我就是通过它来存储具体的SQL语句的.
Table1.XML:
<?xmlversion="1.0"encoding="utf-8" ?>
<sqlMapxmlns="http://ibatis.apache.org/mapping"namespace ="Table1">
 <alias>
    <typeAliasalias ="Table1"type ="MyIBatis.Table1"/>
 </alias>
 
 <statements>
    <insertid ="InsertTable1"parameterClass ="Table1">
      insert into Table1
      (col1,col2)
      values(#col1#,#col2#)
    </insert>
 </statements>
</sqlMap>
 
最后通过我们来实现在一个类里面实现在Table1.XML里的InsertTable1的方法,具体如下:
using System;
using System.Collections.Generic;
using System.Text;
using IBatisNet.DataAccess.Configuration;
using IBatisNet.DataMapper;
using IBatisNet.DataAccess;
using IBatisNet.DataAccess.DaoSessionHandlers;
 
namespace MyIBatis
{
    public class Test
    {
        public void TestInert()
        {
            DomDaoManagerBuilder builder = new DomDaoManagerBuilder();
            builder.Configure();//用来注册dao.config
            Table1 t1= new Table1();
            t1.col1="col";
            t1.col2="col2";
 
            IDaoManager daoManager = DaoManager.GetInstance();
            daoManager.OpenConnection();
            SqlMapDaoSession sqlMapDaoSession = (SqlMapDaoSession)daoManager.LocalDaoSession;
            ISqlMapper sqlMapper = sqlMapDaoSession.SqlMap;
            sqlMapper.Insert("InsertTable1",t1);
        }
    }
}
 
这样就实现了一个简单的IBatis应用,怎么样是不是很简单?这个东西其实一点都不简单,很适用哦。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kolacowboy/archive/2007/09/01/1768593.aspx