[学习]IBatisNet的Demo

原创 2005年05月25日 15:24:00
这个Demo是按IBatisNet的Tutorial的代码修改,并可以完整的运行(Tutorial写了入门,但它提供的代码说明做的不好,还要看DevGuide)

程序包括:
数据库表 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

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");
        }

    }

}


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>

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 窗体设计器生成的代码

    
    }

}




值对象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;}
        }

    }

}


数据库映射文件
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.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>

恩,不错

IbatisNet初学者教程

一、什么是 IbatisNet   :       应该有很多人都听说过Ibatis吧,没错IbatisNet就是Ibatis在.net上的一个移植版本,所以它们俩基本是差不多的。所...
  • hy6688_
  • hy6688_
  • 2014年08月24日 21:04
  • 3797

跟初学者学习IbatisNet第一篇

写在前面的话:我自己也是一个初学者,写这个专题只是为了对学过知识的巩固,如果有什么不对的地方,欢迎大家指正……………………     第一篇就简单介绍一下什么是IbatisNet,然后写一个简单的De...
  • dyllove98
  • dyllove98
  • 2013年07月27日 20:41
  • 3027

IbatisNet开发使用小结 之一

一.   介绍   平常做企业级应用,需求变化是经常的事,而很多基础代码重复也是很让人头疼的问题。所以很多人会使用一些ORM框架来增强项目的可维护性、可扩展性。IBatis.Net就是一个比较易用的O...
  • litp
  • litp
  • 2009年05月03日 12:18
  • 7352

IBatisNet 之 自动生成主关键字和Insert返回主键ID

IBatisNet 之 自动生成主关键字和Insert返回主键ID很多系统支持自动生成主关键字。一些数据库厂商预先生成(oracle),一些数据库厂商之后生成(mssal mysql).。如果你在元素...
  • zfrong
  • zfrong
  • 2008年11月14日 17:42
  • 3559

Ibatisnet源码解读(1)--Commons

Ibatis源码解读(1)--Commons 2005-12-8 一.简介     IbatisNet一下简称Ibatis包括DataAccess和DataMapper两部分。整个Solutio...
  • zaocha321
  • zaocha321
  • 2013年02月25日 11:16
  • 747

IbatisNet内容的学习

前段时间,在一个业务组件中使用了IbatisNet(Ibatis for net),作为一个轻量级的ORM框架,感觉还不错,在代码上只需要指定一下id,然后在xml中定义就好了,虽然还是写SQL,但是...
  • zsh0809
  • zsh0809
  • 2009年08月21日 10:04
  • 877

VUE2.0 全套 demo 讲解(学习笔记)

https://juejin.im/user/580327ee0e3dd900570cf3ab 基础一: 模板语法 1.文本 数据绑定最常见的形式就是使用 “Mustache” 语...
  • Lucky_LXG
  • Lucky_LXG
  • 2017年03月28日 11:09
  • 4665

IBatis.Net中提供了方便的日志处理,可以输出sql语句等调试信息。

常用的有两种: 1、输出到控制台:                                                           ...
  • zzy7075
  • zzy7075
  • 2012年07月08日 15:49
  • 2252

Ibatisnet日志记录功能

1。Ibatisnet具有非常方便的日志记录功能。操作步骤如下:a。添加引用”log4net.dll“ ,和“IBatisNet.Common.Logging.Log4Net.dll”两个文件。b。w...
  • gooddasenlin
  • gooddasenlin
  • 2007年11月01日 17:08
  • 898

iBATIS.net直接执行sql语句

在用iBatis.net与数据库打交道的过程中,发现iBatis.net拼接字符串不能直接拷贝然后在dbms里执行(获取runtime时的sql语句都是带@param1,@param2,@param3...
  • jumtre
  • jumtre
  • 2015年04月21日 00:00
  • 2379
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[学习]IBatisNet的Demo
举报原因:
原因补充:

(最多只允许输入30个字)