iBatis for net 框架使用

简介:

介:ibatis 一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,到后面发展的版本叫MyBatis但都是指的同一个东西。最初侧重于密码软件的开发,现在是一个基于Java的持久层框架,渐渐的也把这种模式转移到了net。相对NHibernate等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。

下载地址:http://code.google.com/p/mybatisnet/downloads/list?can=3 

本文开发Demo环境:IBatis.DataMapper.1.6.2.bin + MsSql 2005 + Vs 2010

使用步骤:

在使用之前,为大家推荐一款代码生成器,也是我专为此框架写的一款代码生成器,生成iBatis的Map配置文件,这样一来,用户不用开任何关于框架的说明文档,即可使用此框架。代码生成器(CodeHelper)下载地址与说明:

http://www.cnblogs.com/stone_w/archive/2011/09/26/2192010.html 

第一步:创建数据库与新建网站项目。

创建数据库与表的T-sql:

/*

* iBatisDemo Sql

* Stone (QQ:1370569)

* Date:2011.09.26

*/

create database OrmDB

go

use OrmDB

go

create table People

(

id int primary key identity,

[name] varchar(250),

age int

)

go

打开vs开发工具,新建网站项目。

第二步:为网站添加iBatis框架支持。

为网站添加引用或者直接把下载的iBatis框架中的IBatisNet.Common.dll和IBatisNet.DataMapper.dll复制到Bin目录下。

第三步:添加iBatis配置文件。

iBatis的配置文件只用三种,也必须要有这三种:

1.providers.config[文件名不能修改]此文件为数据库开发商提供的驱动配置集合,是固定不变的,无需修改与配置,复制文件到网站的根目录,代码如下:

ContractedBlock.gif providers.config


2.SQLMap.config[文件名不可修改],配置连接数据库字符串与每个实体类(表)的映射文件配置,复制文件到网站的根目录,代码如下:

<?xml version="1.0" encoding="utf-8"?>

<sqlMapConfig

  xmlns="http://ibatis.apache.org/dataMapper"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <settings>

        <!--/是否使用Satement命名空间,这里的命名空间指的是映射文件中sqlMap节点的namespace属性,默认是false-->

        <setting useStatementNamespaces="false"/>

        <!--是否启用DataMapper的缓存机制,针对全部的SqlMap,默认是true-->

        <setting cacheModelsEnabled="true"/>

        <!--是否启用SqlMapConfig.xsd schema验证映射文件,默认是false-->

        <setting validateSqlMap="false"/>

    </settings>

    <!--配置数据驱动提供类配置文件的路径和文件名-->

    <providers resource="providers.config"/>

    <!--如果在providers.config文件中指定了默认的数据库驱动,那么provider节点就不需要设置了,它的作用是在换数据库驱动时不需要修改providers.config文件。datasource节点用于指定ADO.NET Connection String.-->

    <database>

        <provider name="sqlServer2.0"/>

        <dataSource name="mydb" connectionString="data source=127.0.0.1;database=MyBatisDB;user id=sa;password=sa;"/>

    </database>

    <!--指定映射的文件的位置-->

    <sqlMaps>

        <sqlMap resource="Maps/PeopleMap.xml"/>

    </sqlMaps>

</sqlMapConfig>

3.每个实体类(表)都有一个单独的配置文件类,类型为xml。代码生成器也是生成这个类的,这样一来,用户就可以几秒钟创建开发一个iBatis项目了,实体类的配置文件格式如下,在网站的根目录创建一个Map的文件夹,新建xxxMap.xml格式的配置类,比如:PeopleMap.xml文件,示例代码如下:

<?xml version="1.0" encoding="utf-8" ?>

<!--namespace必须用否者就报错(读取配置文件报:未将对象引用设置到对象的实例)-->

<sqlMap namespace="" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <statements>

        <select id="GetPeopleById" parameterClass="string" resultClass="HashTable">

            SELECT * FROM People WHERE Id=#Id#

        </select>

        <insert id="Add" parameterClass="hashtable">

            INSERT  dbo.People (name ,age)

            VALUES  (#Name# , #Age#)

        </insert>

        <delete id="Delete" parameterClass="int" restultClass="int">

            DELETE FROM dbo.People WHERE Id=#Id#

        </delete>

        <update id="Update" parameterClass="hashtable" restltClass="int">

            UPDATE People SET name=#Name# WHERE Id=#Id#

        </update>

        <select id="GetAll" resultClass="HashTable">

            SELECT * FROM People

        </select>

    </statements>

</sqlMap>

这三类配置文件必须都要有,与其他orm框架不同的是,web.config什么也不用配置,及时练数据库连接字符串也不是在它的文件中配置的,也就是web.config是没有被用到的。

第四步:iBatis框架语法与使用。

使用之前先来加入一个DB辅助类IBatisHepler.cs,代码如下:

ContractedBlock.gif IBatisHepler.cs


使用语法如下:

// 添加引用

using System.Collections;

using IBatisNet.DataMapper;

using IBatisNet.DataMapper.Configuration;

// 1.添加

Hashtable ht_add = new Hashtable();

ht_add["Name"] = "IBatis";  // [注意]大小写要和xxxMap.xml里保持一致

ht_add["Age"] = 2001;

IBatisHepler.ExcuteInsert("Add", ht_add);

// 2.修改

Hashtable ht_up = new Hashtable();

ht_up["Id"] = "1";

ht_up["Name"] = "IBatis";

ht_up["Age"] = 2001;

IBatisHepler.ExcuteUpdate("Update", ht_up);

// 3.删除

IBatisHepler.ExcuteDelete("Delete", 14);

// 4.查询

Repeater1.DataSource = IBatisHepler.ExcuteSelectObj("GetPeopleById""1");

Repeater1.DataBind();


我对此框架的评价:配置文件有点多,用户需要去写东西比较多,调用查询不是很好用,尤其是条件查询很不方便。

代码下载:【①.本Demo下载


Orm框架相关文章链接:

1.NHibernate使用之详细图解

2.iBatis for net 框架使用

3.iBatis for Net 代码生成器(CodeHelper)附下载地址

4.NBear简介与使用图解 

5.SubSonic框架使用图解

6.GentleNet使用之详细图解







本文转自王磊的博客博客园博客,原文链接:http://www.cnblogs.com/vipstone/archive/2011/09/26/2192155.html,如需转载请自行联系原作者

目录
相关文章
|
18天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
2月前
|
开发框架 JavaScript 前端开发
5个.NET开源且强大的快速开发框架(帮助你提高生产效率)
5个.NET开源且强大的快速开发框架(帮助你提高生产效率)
|
4月前
|
开发框架 缓存 Cloud Native
微软发布 .NET 云原生开发框架—— .NET Aspire
微软于 2023-11-14日 发布了 .NET 8 的正式版。伴随着这个重要 .NET 版本的发布,微软也发布了一个全新的 .NET云原生开发框架 —— .NET Aspire,它提供了如下 3 个方面的能力,来帮助我们使用 .NET 开发分层、云就绪的可观测、本地与生产环境一致的分布式云原生应用程序。
200 0
|
1月前
|
开发框架 网络协议 .NET
深入.net框架
深入.net框架
11 0
|
2月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
3月前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
|
3月前
|
开发框架 前端开发 JavaScript
一款基于.NET Core的快速开发框架、支持多种前端UI、内置代码生成器
一款基于.NET Core的快速开发框架、支持多种前端UI、内置代码生成器
100 0
|
3月前
|
SQL JavaScript NoSQL
3个.NET开源简单易用的任务调度框架
3个.NET开源简单易用的任务调度框架
110 0
|
3月前
|
数据采集 开发框架 JavaScript
C#/.NET/.NET Core优秀项目和框架2023年12月简报
C#/.NET/.NET Core优秀项目和框架2023年12月简报
|
4月前
|
C# Android开发 iOS开发
9 个 .NET UI 框架,您的选择是?
介绍 9 款 .NET UI 框架,有你的菜麽。
208 1
9 个 .NET UI 框架,您的选择是?