新项目用的是Ibatis.Net。哥的感觉是NHibernate才是哥的最爱。没办法,即使重复,也要抽时间学习。努力做好这份工作再说吧。

一、Ibatis.Net-SQLServer2008

  还是以哥一贯的学习方式,先千方百计拼出一个DEMO,看看效果,然后修改各个参数就可以看你出对DEMO的影响。

  第一次配置Itabis.Net看到这样的错误提示,哥崩溃了,这也算提示?跟没提示有区别吗?

  

  不过经过后来的提示,注意上面是Validate,有可能还会出现loading等,也注意最后的文件名,到底是哪个文件出错。

  经过两个小时候,终于配好了第一个程序,先发上这一个简单的DEMO。然后下一篇文章,再来详细了解下,其他的配置属性。

1、打开SQLServer 2008,建一个数据库Test,一张表Person,添加入数据如下:

  

2、新建一个控制台程序如下:

  

  其中,DAO是数据访问层,Domain是实体层。然后Dao层引入这两个文件:

  • IbatisNet.Common.dll
  • IbatisNet.DataMapper.dll

  先放上简单的代码吧。

  其中PersonDao的代码如下:

namespace Ibatis.Net.Dao
{
public class PersonDao
{
public IList<PersonModel> GetList()
{
ISqlMapper mapper = Mapper.Instance();
IList<PersonModel> ListPerson = mapper.QueryForList<PersonModel>("SelectAllPerson", null); //这个"SelectAllPerson"就是xml映射文件的Id
return ListPerson;
}
}
}

  PersonModel代码如下:

namespace Ibatis.Net.Domain
{
public class PersonModel
{
public int Id
{
get;
set;
} public string Name
{
get;
set;
}
}
}

3、配置(包括xml映射文件,SqlMap,provider)

  首先当然是最重要的SqlMap了:

<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig
xmlns="http://ibatis.apache.org/dataMapper"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--<properties resource="../../../properties.config"/>这个东西是变量用的,这里以最简单的实现说明,因此注释--> <settings>
<setting useStatementNamespaces="false"/>
</settings> <providers resource="providers.config"/> <!--数据库连接字符串-->
<database>
<provider name="sqlServer2008"/>
<dataSource name="Test" connectionString="server=KISSDODOG-PC;uid=sa;pwd=123;database=Test"/>
</database> <sqlMaps>
<sqlMap resource="Person.xml" />
<!--这个是指定映射文件的位置-->
</sqlMaps> </sqlMapConfig>

  然后是映射文件Person.xml:

<?xml version="1.0" encoding="utf-8" ?>
<sqlMap namespace="Ibatis" xmlns="http://ibatis.apache.org/mapping" xmlns:xls="http://www.w3.org/2001/XMLSchema-instance">
<statements>
<select id="SelectAllPerson" resultClass="Ibatis.Net.Domain.PersonModel">  <!--这个Id在程序中会用到,resultClass是类所在的程序位置(带命名空间)-->
select * from person
</select>
</statements>
</sqlMap>

  最后是Provider.config。这个直接复制下载进来的安装包就可以了。把不是你指定的全部删除,然后将enabled="true",.Net版本改成你正在用的,此处发上SQLServer2008的。

<?xml version="1.0" encoding="utf-8"?>
<providers
xmlns="http://ibatis.apache.org/providers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<clear/>
<provider
name="sqlServer2008"
enabled="true"
default="true"
description="Microsoft SQL Server, provider V4.0.0.0 in framework .NET V4.0"
assemblyName="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
allowMARS="true"
/>
</providers>

  注意,以上3个配置文件,在控制台程序中,放到debug/bin目录里。

  Program.cs代码如下:

    class Program
{
static void Main(string[] args)
{
PersonDao dao = new PersonDao();
IList<PersonModel> ListPerson = dao.GetList();
foreach (PersonModel p in ListPerson)
{
Console.WriteLine(p.Id + p.Name);
} Console.ReadKey();
}
}

  运行程序,显示结果如下:

  

  就上面这些点东西,哥配了两个多小时。下一篇再学习其他的要点。

二、Ibatis.Net - Oracle 10g

对于上面的程序,将数据库由SQLServer改为Oracle10g,上面不用改代码,只需要将providers.config文件改为:

<?xml version="1.0" encoding="utf-8"?>
<providers
xmlns="http://ibatis.apache.org/providers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<provider
name="oracle10.1"
description="Oracle, oracle provider V10.1.0.301"
enabled="true"
assemblyName="Oracle.DataAccess, Version=10.1.0.301, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection"
commandClass="Oracle.DataAccess.Client.OracleCommand"
parameterClass="Oracle.DataAccess.Client.OracleParameter"
parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"
parameterDbTypeProperty="OracleDbType"
dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"
commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"
usePositionalParameters="true"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix=":"
useDeriveParameters="false"
allowMARS="false"
/>
</providers>

  SqlMap.cofig改为里的database节点改为:

  <!--数据库连接字符串-->
<database>
<provider name="oracle10.1"/>
<dataSource name="Test" connectionString="Data Source=comit-jun/ajun.db;Persist Security Info=true;User ID=scott;Password=tiger;Connection Timeout=15;Pooling=true;Connection Lifetime=30;Max Pool Size=500;Min Pool Size=0"/>
</database>

  如果连接不上,大部分情况下,都是Oracle的设置问题了。

  其中Data Source=comit-jun/ajun.db;

  comit-jun是计算机名,当然也可以是IP地址,而后面的ajun.db是Oracle服务器端的服务名(完整数据库名)。

 
 
原文地址:http://www.cnblogs.com/kissdodog/p/3291760.html
 

Ibatis.Net 入门示例(一)的更多相关文章

  1. iBatis.net入门指南

    iBatis.net入门指南    - 1 - 什么是iBatis.net ?    - 3 - iBatis.net的原理    - 3 - 新人指路    - 3 - iBatis.net的优缺点 ...

  2. [WCF编程]1.WCF入门示例

    一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...

  3. Maven入门示例(3):自动部署至外部Tomcat

    Maven入门示例(3):自动部署至外部Tomcat 博客分类:  maven 2012原创   Maven入门示例(3):自动部署至外部Tomcat 上一篇,介绍了如何创建Maven项目以及如何在内 ...

  4. 1.【转】spring MVC入门示例(hello world demo)

    1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...

  5. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  6. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

  7. Couchbase之个人描述及入门示例

    本文不打算抄袭官方或者引用他人对Couchbase的各种描述,仅仅是自己对它的一点理解(错误之处,敬请指出),并附上一个入门示例. ASP.NET Web项目(其他web开发平台也一样)应用规模小的时 ...

  8. Velocity魔法堂系列一:入门示例

    一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...

  9. OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit

    第1章  OUYA游戏入门示例——StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...

随机推荐

  1. (三)主控板生级uboot与内核

    一.升级uboot 把我的电脑增加一个192.168.1.3的ip,方便升级boot. 1.连接串口,连接网口到GE1; 2.登陆电脑后到D:\MTG3000MAIN\first目录打开tftp32 ...

  2. TCP及IP报头及协议

    看到有道题目要问:tcp头多少字节?哪些字段?(必问) 这个... 看了这篇文章做参考:http://blog.163.com/tianshuai11@126/blog/static/61894543 ...

  3. epoll中et+多线程模式中很重要的EPOLL_ONESHOT实验

    因为et模式需要循环读取,但是在读取过程中,如果有新的事件到达,很可能触发了其他线程来处理这个socket,那就乱了. EPOLL_ONESHOT就是用来避免这种情况.注意在一个线程处理完一个sock ...

  4. hdu 1573 X问题

    数论题,本想用中国剩余定理,可是取模的数之间不一定互质,用不了,看到网上有篇文章写得很好的:数论——中国剩余定理(互质与非互质),主要是采用合并方程的思想: 大致理解并参考他的代码后便去试试hdu上这 ...

  5. Oracle查看表结构的几种方法

    1,DESCRIBE 命令 使用方法如下: SQL> describe nchar_tst(nchar_tst为表名) 显示的结果如下:  名称                         ...

  6. 转:union 联合体(共用体)

    转自:http://blog.csdn.net/xiao3404/article/details/22276485 2.共用体 2.1共用体的概念 共用体是一种构造类型的数据结构.在一个“共用体”内可 ...

  7. virtualbox中centos系统配置nat+host only上网(zhuan)

    http://www.cnblogs.com/leezhxing/p/4482659.html **************************************************** ...

  8. SecureCRT设置

    SecureCRT设置 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39890569 本文主要介绍SecureCRT的使用方法和技巧. ...

  9. Windows不重启就使环境变量修改生效

    以修改环境变量“PATH”为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口.再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”->“属 ...

  10. JavaScript document

    window -- document用于表现HTML页面当前窗体的内容 document,中文"文档" document是BOM中最重要对象之一 document对象是window ...