程序包括:
数据库表 Person(和Tutorial一致,使用Access,用OleDb连接,后面的SqlMap定义连接串)
Name Type Size
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
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
NUnit测试客户端 TestPeron.cs(和Tutorial一致,使用NUnit2.0)
using
System;
using System.Collections;
using IBatisNet.DataMapper;
using NUnit.Framework;
namespace TestPeople
{
[TestFixture]
public class PersonTest
{
[Test]
public void PersonList ()
{
// try it
IList people = Mapper.Instance().QueryForList("SelectAll",null);
// 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");
}
}
}
using System.Collections;
using IBatisNet.DataMapper;
using NUnit.Framework;
namespace TestPeople
{
[TestFixture]
public class PersonTest
{
[Test]
public void PersonList ()
{
// try it
IList people = Mapper.Instance().QueryForList("SelectAll",null);
// 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");
}
}
}
Web页面测试WebForm1.aspx, WebForm1.aspx.cs
<%
@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="TestPeople.WebForm1"
%>
< HTML >
< HEAD >
< title > WebForm1 </ title >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Person" method ="post" runat ="server" >
< asp:Panel ID ="pnlList" Runat ="server" >
< H1 > Person List </ H1 >
< asp:DataGrid id =dgList Runat ="server" ></ asp:DataGrid >
</ asp:Panel ></ form >
</ body >
</ HTML >
< HTML >
< HEAD >
< title > WebForm1 </ title >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Person" method ="post" runat ="server" >
< asp:Panel ID ="pnlList" Runat ="server" >
< H1 > Person List </ H1 >
< asp:DataGrid id =dgList Runat ="server" ></ asp:DataGrid >
</ asp:Panel ></ form >
</ body >
</ HTML >
using
System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using IBatisNet.DataMapper;
using IBatisNet.Common.Utilities;
namespace TestPeople
{
/**//// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgList;
protected System.Web.UI.WebControls.Panel pnlList;
private void List_Load ()
{
dgList.DataSource = Mapper.Instance().QueryForList("SelectAll",null);
dgList.DataBind();
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
List_Load ();
}
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using IBatisNet.DataMapper;
using IBatisNet.Common.Utilities;
namespace TestPeople
{
/**//// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgList;
protected System.Web.UI.WebControls.Panel pnlList;
private void List_Load ()
{
dgList.DataSource = Mapper.Instance().QueryForList("SelectAll",null);
dgList.DataBind();
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
List_Load ();
}
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
值对象Person.cs(这个类和数据库表是一致的,应该用代码生成器生成,网上有很多好的代码生成器,这里推荐一个CodeSmith)
using
System;
namespace TestPeople
{
/**//// <summary>
/// Person 的摘要说明。
/// </summary>
public class Person
{
private int _Id;
private string _FirstName;
private string _LastName;
private DateTime _BirthDate;
private double _WeightInKilograms;
private double _HeightInMeters;
public Person() {}
public int Id
{
get { return _Id;}
set {_Id = value;}
}
public string FirstName
{
get{return _FirstName;}
set{_FirstName = value;}
}
public string LastName
{
get{return _LastName;}
set{_LastName = value;}
}
public DateTime BirthDate
{
get{return _BirthDate;}
set{_BirthDate = value;}
}
public double WeightInKilograms
{
get{return _WeightInKilograms;}
set{_WeightInKilograms = value;}
}
public double HeightInMeters
{
get{return _HeightInMeters;}
set{_HeightInMeters = value;}
}
}
}
namespace TestPeople
{
/**//// <summary>
/// Person 的摘要说明。
/// </summary>
public class Person
{
private int _Id;
private string _FirstName;
private string _LastName;
private DateTime _BirthDate;
private double _WeightInKilograms;
private double _HeightInMeters;
public Person() {}
public int Id
{
get { return _Id;}
set {_Id = value;}
}
public string FirstName
{
get{return _FirstName;}
set{_FirstName = value;}
}
public string LastName
{
get{return _LastName;}
set{_LastName = value;}
}
public DateTime BirthDate
{
get{return _BirthDate;}
set{_BirthDate = value;}
}
public double WeightInKilograms
{
get{return _WeightInKilograms;}
set{_WeightInKilograms = value;}
}
public double HeightInMeters
{
get{return _HeightInMeters;}
set{_HeightInMeters = value;}
}
}
}
数据库映射文件
Person.xml
<?
xml version="1.0" encoding="utf-8"
?>
< sqlMap namespace ="Person" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation ="SqlMap.xsd" >
< alias >
< typeAlias alias ="Person" assembly ="TestPeople.dll" type ="TestPeople.Person" />
</ alias >
< resultMaps >
< resultMap id ="SelectAllResult" class ="Person" >
< result property ="Id" column ="PER_ID" />
< result property ="FirstName" column ="PER_FIRST_NAME" />
< result property ="LastName" column ="PER_LAST_NAME" />
< result property ="BirthDate" column ="PER_BIRTH_DATE" />
< result property ="WeightInKilograms" column ="PER_WEIGHT_KG" />
< result property ="HeightInMeters" column ="PER_HEIGHT_M" />
</ resultMap >
</ resultMaps >
< statements >
< select id ="SelectAll" resultMap ="SelectAllResult" >
select
PER_ID,
PER_FIRST_NAME,
PER_LAST_NAME,
PER_BIRTH_DATE,
PER_WEIGHT_KG,
PER_HEIGHT_M
from PERSON
</ select >
</ statements >
</ sqlMap >
< sqlMap namespace ="Person" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation ="SqlMap.xsd" >
< alias >
< typeAlias alias ="Person" assembly ="TestPeople.dll" type ="TestPeople.Person" />
</ alias >
< resultMaps >
< resultMap id ="SelectAllResult" class ="Person" >
< result property ="Id" column ="PER_ID" />
< result property ="FirstName" column ="PER_FIRST_NAME" />
< result property ="LastName" column ="PER_LAST_NAME" />
< result property ="BirthDate" column ="PER_BIRTH_DATE" />
< result property ="WeightInKilograms" column ="PER_WEIGHT_KG" />
< result property ="HeightInMeters" column ="PER_HEIGHT_M" />
</ resultMap >
</ resultMaps >
< statements >
< select id ="SelectAll" resultMap ="SelectAllResult" >
select
PER_ID,
PER_FIRST_NAME,
PER_LAST_NAME,
PER_BIRTH_DATE,
PER_WEIGHT_KG,
PER_HEIGHT_M
from PERSON
</ select >
</ statements >
</ sqlMap >
SqlMap.xml
<?
xml version="1.0" encoding="UTF-8"
?>
< sqlMapConfig xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation ="SqlMapConfig.xsd" >
< providers file ="providers.config" />
< settings >
< setting useFullyQualifiedStatementNames ="false" />
< setting cacheModelsEnabled ="true" />
</ settings >
< database >
< provider name ="OleDb1.1" />
< dataSource name ="Access" connectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\wwwroot\\TestPeople\\test.mdb" />
</ database >
< sqlMaps >
< sqlMap resource ="Person.xml" />
</ sqlMaps >
</ sqlMapConfig >
< sqlMapConfig xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation ="SqlMapConfig.xsd" >
< providers file ="providers.config" />
< settings >
< setting useFullyQualifiedStatementNames ="false" />
< setting cacheModelsEnabled ="true" />
</ settings >
< database >
< provider name ="OleDb1.1" />
< dataSource name ="Access" connectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\wwwroot\\TestPeople\\test.mdb" />
</ database >
< sqlMaps >
< sqlMap resource ="Person.xml" />
</ sqlMaps >
</ sqlMapConfig >
数据库联接配置providers.config(都是官方标准的,这里就不贴了)