Ibatis.Net 入门示例(一)

  新项目用的是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服务器端的服务名(完整数据库名)。

posted on 2013-08-30 16:53  逆心 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/kissdodog/p/3291760.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IBatisNet.DataMapper 1.6.1.0之简单三层 首先介绍Solution的架构,一共分四个项目: Web :前台应用; BLL :业务处理层,如果嫌麻烦,可以再进一步抽象出来,然后将代码放置Web层的aspx.cs里面; Model :这个就不多说了,地球人都知道(数据实体类) SqlMaps:资源类,把配置文件和sql mapper文件全部打包起来。 二个文件夹: Include :iBatis.Net架构的dll文件 Log :放置log文件的文件夹,在web.config里配置 1.在一些特定的环境下,一站式的解决方案未必有效 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现。(银行大多有这样的限制) 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。 2.iBATIS之于小型、简单系统:非常适用 iBATIS自己就很小并且简单 iBATIS不会对现存应用的设计或者数据库结构强加任何影响 iBATIS非常适合于有成长趋势的系统 3.iBATIS之于大型、企业级系统:为之而设计 iBATIS的某些特性使得它能够高效地处理大型数据集 iBATIS允许你用多种方式建立从对象到数据库的映射关系 MySpace已应用 4.使用于任何类型的关系数据库: 应用数据库 企业数据库 私有数据库 遗留数据库 简单性 性能 明确分工 可移植性:Java、.Net或者其他 开源 5.何时不该使用iBATIS 当你能永远拥有完全控制权 当你的应用需要完全动态的SQL 当你并没有使用关系数据库时 当iBATIS不起作用时 DB_51aspx下为Sql数据库,附加后修改SqlMaps/database.config的Sql配置文件并编译才能生效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值