现在的位置: 首页 > 综合 > 正文

IBatisNet开发使用小结 之二

2012年03月31日 ⁄ 综合 ⁄ 共 2266字 ⁄ 字号 评论关闭

 续 IBatisNet开发使用小结 之一

 

四.   IBatisNet组件使用

1.  DomSqlMapBuilder

DomSqlMapBuilder,其作用是根据配置文件创建SqlMap实例。可以通过这个组件从Stream, Uri, FileInfo, or XmlDocument instance 来读取sqlMap.config文件。

 

2.  SqlMap

SqlMapperIBatisnet的核心组件,提供数据库操作的基础平台。所有的操作均通过SqlMapper实例完成。SqlMapper可通过DomSqlMapBuilder创建。

这个例子中我们可以将所有的配置文件按照嵌入资源文件方式存放,从程序集去加载sqlmap.config文件。也可以直接以文件方式加载sqlmap.config

 

/// <summary>

/// IsqlMapper实例

/// </summary>

/// <returns></returns>

public static ISqlMapper sqlMap ;

private string fileName = "sqlMap.Config";

public BaseSqlMapDao()

{

    //从程序集资源中加载

    //Assembly assembly = Assembly.Load("IBatisNetDemo");

    //Stream stream = assembly.GetManifestResourceStream("IBatisNetDemo.sqlmap.config");           

    //DomSqlMapBuilder builder = new DomSqlMapBuilder();

    //sqlMap = builder.Configure(stream);

 

    //从文件加载创建实例           

    DomSqlMapBuilder builder = new DomSqlMapBuilder();

    sqlMap = builder.Configure(fileName);

}

 

SqlMap是线程安全的,也就是说,在一个应用中,可以共享一个SqlMap实例。

SqlMap提供了众多数据操作方法,下面是一些常用方法的示例,具体说明文档参见 ibatis net doc,或者ibatisnet的官方开发手册。

 

3.  SqlMap基本操作示例

 

1:数据写入操作(insertupdatedelete

 SqlMap.BeginTransaction();

 Person person = new Person();

 Person.FirstName = “li”;

 Person.LastName = “tianping”;

int Id = (int) SqlMap.Insert("InsertPerson", person);

 SqlMap.CommitTransaction();

 

2:数据查询:

Int Id = 1;

Person person = SqlMap.QueryForObject<Person>("", Id);

return person;

 

3:执行批量查询(Select

IList<Person> list = null;

list = SqlMap.QueryForList<Person>("SelectAllPerson", null);

 return list;

 

例4:查询指定范围内的数据(Select

IList<Person> list = null;

list = SqlMap.QueryForList<Person>("SelectAllPerson", null, 0, 40);

return list;

 

例5:结合RowDelegate进行查询:

public void RowHandler(object obj, IList list)

{

  Product product = (Product) object;

  product.Quantity = 10000;

}

SqlMapper.RowDelegate handler = new SqlMapper.RowDelegate(this.RowHandler);

IList list = sqlMap.QueryWithRowDelegate("getProductList", null, handler);

 

4.  存储过程操作

下面特别说明一下ibatisnetStored Procedures的处理,iBatis数据映射把存储过程当成另外一种声明元素。示例演示了一个基于存储过程的简单数据映射。

 

<!-- Microsot SQL Server -->

<procedure id="SwapEmailAddresses" parameterMap="swap-params">

  ps_swap_email_address

</procedure>

...

<parameterMap id="swap-params">

  <parameter property="email1" column="First_Email" />

  <parameter property="email2" column="Second_Email" />

</parameterMap>

 

<!-- Oracle with MS OracleClient provider -->

<procedure id="InsertCategory" parameterMap="insert-params">

 prc_InsertCategory

</procedure>

...

【上篇】
【下篇】

抱歉!评论已关闭.