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)内容如下:
<? xml version ="1.0" encoding ="UTF-8" ?>
 
< sqlMap namespace ="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使用的数据库连接配置信息和应用程序中的映射配置文件所在的位置信息及其它一些配置项。
<? xml version ="1.0" encoding ="utf-8"?>
< sqlMapConfig xmlns : 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文件中的“ < provider name ="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中运行单元测试,检验代码是否能通过单元测试。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值