惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
V
Visual Studio Blog
小众软件
小众软件
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
T
Tor Project blog
Jina AI
Jina AI
GbyAI
GbyAI
C
Comments on: Blog
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
A
Arctic Wolf
有赞技术团队
有赞技术团队
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
Security Latest
Security Latest
Webroot Blog
Webroot Blog
C
Cisco Blogs
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
博客园 - 叶小钗
K
Kaspersky official blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
H
Hacker News: Front Page
D
Darknet – Hacking Tools, Hacker News & Cyber Security
D
Docker
P
Palo Alto Networks Blog
The Register - Security
The Register - Security
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - eric.123

人际关系结构 “80后”投资者入市须知 VS2005中通过表达式查找所有中文字符的正则表达式。 window.external的使用 三十岁时你在做什么? 首富不穿名牌不开名车郭台铭的三步人生 软件系统维护方案 软件系统维护方案 SQL语句大全 ORACLE 常用的SQL语法和数据对象 - eric.123 ADO.NET 和 ADO 的比较 对比.NET PetShop和Duwamish来探讨Ado.NET的数据库编程模式 Duwamish深入剖析-结构篇 一齐学习,NHibernate开发范例。 NHibernate 入门范例 C#开源网址大全(转) 开发和使用Web用户控件(转) C#基础概念二十五问(转) Ibatis主站
我的iBatisNet入门
eric.123 · 2007-04-06 · via 博客园 - eric.123
 

这几天有些时间,看到网上好多朋友学习IbatisNet,我也就来学学,和NHibernate一样这种框架也是从java转化过来的,自然配置文件是少不了的,但是配置文件出错也是让人最为郁闷的事了!我也遇到了这样的问题下面以我学IbatisNet 的第一个例子来讲讲

l       准备工作:

框架可以从http://ibatis.apache.org/dotnetdownloads.cgi上下载。

我用的版本是DataMapper 1.5.1 ,DataAccess 1.8.1

建议下载源代码Source Revision 356824

运行环境: Visual Studio 2005 Team Suite, Sql Server 2000

l       开始编码

1.       创建数据表

CREATE TABLE [Persons] (

       [PersonID] [int] IDENTITY (100, 1) NOT NULL ,

       [PersonName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

       [PersonAddress] [varchar] (250) COLLATE Chinese_PRC_CI_AS NULL ,

       [CreateDate] [datetime] NULL ,

       CONSTRAINT [PK_Persions] PRIMARY KEY CLUSTERED

       (

              [PersonID]

       ) ON [PRIMARY]

) ON [PRIMARY]

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>

    <setting cacheModelsEnabled="true"/>

    <setting useStatementNamespaces="false" />

 </settings>

 <providers resource="providers.config" />

<database>

 <provider name="sqlServer2.0"></provider>

 <dataSource name="IBatisNet" connectionString="server=10.1.19.160;database=xx;user id=sa;password=xx;connection reset=false;"/>

</database>

<sqlMaps>

 <sqlMap resource="Person.xml" />

 </sqlMaps>

</sqlMapConfig>

 注意: xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

是必须添加的,我就是因为这个问题出现提示SqlMap.config文件配置有错误.

3.       Person.xml

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

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

 <alias>

    <typeAlias alias="Person" type="IBatisNet.QuickStart.Person,IBatisNet.QuickStart" />

 </alias>

 <statements>

    <select id="SelectAll" resultMap="SelectAllResult">

      select

      PersonID,

      PersonName,

      PersonAddress,

      CreateDate

      from Persons

    </select>

    <insert id="InsertPerson" parameterClass="Person">

      INSERT INTO Persons(

      [PersonName],[PersonAddress],[CreateDate]

      )VALUES(

      #PersonName#,#PersonAddress#,#CreateDate#

      )

    </insert>

 </statements>

 <resultMaps >

    <resultMap id="SelectAllResult" class="Person">

      <result property="PersonID" column="PersonID" />

      <result property="PersonName" column="PersonName" />

      <result property="PersonAddress" column="PersonAddress" />

      <result property="CreateDate" column="CreateDate" />

    </resultMap>

 </resultMaps>

</sqlMap>

4.      实体类如下

namespace IBatisNet.QuickStart

{

    /// <summary>

    /// Person Entity

    /// </summary>

    [Serializable]

    public class Person

    {

        public Person()

        {

        }

        private int _personid;

        private string _personname;

        private string _personaddress;

        private DateTime _createdate;

        /// <summary>

        /// Person ID

        /// </summary>

        public int PersonID

        {

            set { _personid = value; }

            get { return _personid; }

        }

        /// <summary>

        /// Person Name

        /// </summary>

        public string PersonName

        {

            set { _personname = value; }

            get { return _personname; }

        }

        /// <summary>

        /// Person Address

        /// </summary>

        public string PersonAddress

        {

            set { _personaddress = value; }

            get { return _personaddress; }

        }

        /// <summary>

        /// Create Date

        /// </summary>

        public DateTime CreateDate

        {

            set { _createdate = value; }

            get { return _createdate; }

        }

    }

}

5. providers.config

这个文件可以在下载的文件中 IBatisNet.DataMapper-bin-1.5.1\binaries-2.0下找到copy你的项目中就可以了!

注意:在设置你所加载的驱动的属性enabled="true"

以上的配置文件放的位置你的系统必须能够加载到!

有关更多的配置信息可以参看IBatisNet的帮助或是http://pw.cnblogs.com/category/58599.html

6.获取ISqlMapper对象

代码如下:

DomSqlMapBuilder builder = new DomSqlMapBuilder();

//方法一

ISqlMapper Map = builder.Configure("SqlMap.config");

//方法二

ISqlMapper Map = builder.ConfigureAndWatch("SqlMap.config");

7.基本操作

由于我的上面的Person.xml中我只定义了添加和获取全部的方法,别的方法可参照IBatisNet帮助自已添加

using IBatisNet.QuickStart;//person实体类

using IBatisNet.DataMapper;

using IBatisNet.DataMapper.Configuration;

DomSqlMapBuilder builder = new DomSqlMapBuilder();

        ISqlMapper Map = builder.Configure("SqlMap.config");

        //ISqlMapper Map = builder.ConfigureAndWatch("SqlMap.config");

        Person p = new Person();

        p.PersonName = "Test";

        p.PersonAddress = "china";

        p.CreateDate = System.DateTime.Now;

        Map.Insert("InsertPerson", p);

小结:

自已学习这些时出的问题最多的还是配置文件上的问题,我的解决方法是在引用dll时我引用的是自已编译Source-revision-426164后的dll.这样做的目的是我们在出错时可以跟踪到源代码中自已查看其中的错误,要不程序出现一个什么配置错误的异常是让人很郁闷的!

希望我的例子能帮助哪些和我一样刚学IBatisNet的朋友!~