bf.song的专栏

专注于web开发

iBATIS for .Net 快速入门

iBATIS for .Net 快速入门

1、我们有一张用户信息表PERSON,结构如下:
字段名
类型
长度
PER_ID
Long Integer
4
PER_FIRST_NAME
Text
40
PER_LAST_NAME
Text
40
PER_BIRTH_DATE
Date/Time
8
PER_WEIGHT_KG
Double
8
PER_HEIGHT_M
Double
8
把此表保存到Access文件iBatisTutorial.mdb中。
2、我们希望获取一个用户列表。所以先编写如下的单元测试(PersonTest.cs):
using System.Collections;
using NUnit.Framework;
 
namespace GoldenWater.QuickStart
{
     [TestFixture]
     public class PersonTest
     {
         [Test]
         public void PersonList()
         {
              PersonHelper ph = new PersonHelper();
              // try it
              IList people = ph.SelectAll();
 
              // test it
              Assert.IsNotNull (people, "Person list not returned");
              Assert.IsTrue (people.Count > 0, "Person list is empty");
              Person person = (Person) people[0];
              Assert.IsNotNull (person, "Person not returned");
         }
     }
}
 
 
3、为了让上面的单元测试正常运行,我们需要编写一个Person对象。代码如下(Person.cs):
using System;
 
namespace GoldenWater.QuickStart
{
     public class Person
     {
         private int _Id;
         public int Id
         {
              get { return _Id; }
              set { _Id = value; }
         }
 
         private string _FirstName;
         public string FirstName
         {
              get { return _FirstName; }
              set { _FirstName = value; }
         }
 
         private string _LastName;
         public string LastName
         {
              get { return _LastName; }
              set { _LastName = value; }
         }
 
         private DateTime _BirthDate;
         public DateTime BirthDate
         {
              get { return _BirthDate; }
              set { _BirthDate = value; }
         }
 
         private double _WeightInKilograms;
         public double WeightInKilograms
         {
              get { return _WeightInKilograms; }
              set { _WeightInKilograms = value; }
         }
 
         private double _HeightInMeters;
         public double HeightInMeters
         {
              get { return _HeightInMeters; }
              set { _HeightInMeters = value; }
         }
 
     }
}
 
我们还需要一个PersonHelper类(PersonHelper.cs):
using System;
using System.Collections;
using IBatisNet.DataMapper;
 
namespace GoldenWater.QuickStart
{
     public class PersonHelper
     {
         private SqlMapper mapper ;
 
         public PersonHelper()
         {
              mapper = IBatisNet.DataMapper.Mapper.Instance();
         }
 
         public IList SelectAll ()
         {
              return mapper.QueryForList ("Select", null);
         }
     }
}
 
好,到这里,所有需要编写的代码就都完成了!不过,要想让代码运行起来的话,我们还得再做些工作。
4、编写映射配置文件。
我们使用XML元素来把一条数据库语句映射到一个应用对象。
配置文件(PersonHelper.xml)内容如下:
<?xmlversion="1.0"encoding="UTF-8"?>
 
<sqlMapnamespace="Account"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:næNamespaceSchemaLocation="SqlMap.xsd">
 
     <alias>
         <typeAliasalias="Person"type="GoldenWater.QuickStart.Person, GoldenWater.QuickStart"/>
     </alias>
    
     <resultMaps>
         <resultMapid="SelectResult"class="Person">
              <resultproperty="Id"cælumn="PER_ID"/>
              <resultproperty="FirstName"cælumn="PER_FIRST_NAME"/>
              <resultproperty="LastName"cælumn="PER_LAST_NAME"/>
              <resultproperty="BirthDate"cælumn="PER_BIRTH_DATE"/>
              <resultproperty="WeightInKilograms"cælumn="PER_WEIGHT_KG"/>
              <resultproperty="HeightInMeters"cælumn="PER_HEIGHT_M"/>
         </resultMap>
     </resultMaps>
    
     <statements>
    
         <selectid="Select"parameterClass="int"resultMap="SelectResult">
              select
              PER_ID,
              PER_FIRST_NAME,
              PER_LAST_NAME,
              PER_BIRTH_DATE,
              PER_WEIGHT_KG,
              PER_HEIGHT_M
              from PERSON
              <dynamicprepend="WHERE">
                   <isParameterPresent>
                       PER_ID = #value#
                   </isParameterPresent>
              </dynamic>
         </select>
 
        
     </statements>
    
</sqlMap>
 
5、SqlMap.config文件。此配置文件指定了iBatis使用的数据库连接配置信息和应用程序中的映射配置文件所在的位置信息及其它一些配置项。
<?xmlversion="1.0"encoding="utf-8"?>
<sqlMapConfigxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:næNamespaceSchemaLocation="SqlMapConfig.xsd">
     <settings>
         <settinguseStatementNamespaces="false"/>
         <settingcacheModelsEnabled="true"/>
     </settings>
             
     <database>   
         <providername="OleDb1.1"/>
         <dataSourcename="iBatisTutorial" 
         cænnectionString="Provider=Micros€u102 ?t.Jet.OLEDB.4.0;Data Source=../../Resources/iBatisTutorial.mdb"/>
     </database>
 
     <sqlMaps>
         <sqlMapresource="../../Resources/PersonHelper.xml"/>
     </sqlMaps>
    
</sqlMapConfig>
 
 
 
6、providers.config配置文件。
这个文件是数据库访问方式的配置文件。SqlMap.config文件中的“<providername="OleDb1.1"/>这一行中的“OleDB1.1”就是在此文件中定义的。我们可以事先在此文件中定义好针对不同类型的数据库的访问配置项,在SqlMap.config文件中只需要指定配置项的名称,再提供数据库连接字符串即可。
7、所有需要的文件都已经准备好了,项目目录结构如下:
QuickStart
|-Recources
||-iBatisTutorial.mdb
||-PersonHelper.xml
|-Person.cs
|-PersonHelper.cs
|-PersonTest.cs
|-providers.config
|-SqlMap.config
8、下面我们要做的事就是编译,然后在Nunit中运行单元测试,检验代码是否能通过单元测试。
阅读更多
个人分类: .NET O/R Mapping
上一篇Oracle数据库中对时间字段的处理方法
下一篇iBatis使用点滴
想对作者说点什么? 我来说一句

iBatis简明教程及快速入门

2011年03月19日 35KB 下载

ibatis.net

2010年11月07日 1.9MB 下载

ibatis教程 输入参数详解

2010年03月08日 506KB 下载

asp.net MVC和IBatis.net整合demo程序

2015年11月13日 6.3MB 下载

IBatis.Net for .net framework4.0

2016年10月01日 303KB 下载

没有更多推荐了,返回首页

关闭
关闭