文档章节

ibatis的查询操作

刘昌鑫
 刘昌鑫
发布于 2016/06/23 20:25
字数 839
阅读 21
收藏 0

1.xml文件添加和修改:

ibatis的xml文件主要有以下几个节点

(1)<alias></alias>

<alias>
    <typeAlias alias="Client" type="Group.IBatis.Pro.Model.Table.Client,Group.IBatis.Pro.Model" />
  </alias>

alias是别名,本例中在该配置文件中需要引用Group.Ibatis.Pro.Model.Table.Client的时候就可以用Client来代替, type是实体类所在的路径

(2)<resultMaps>..</resultMaps>

该节点是结果集映射节点,是实体类中的属性和数据库字段的映射

  <resultMaps>
    <resultMap id="ClientList" class="Client">
      <result property="ClientID" column="ClientID" />
      <result property="ClientNo" column="ClientNo"    />
      <result property="ShortName" column="ShortName"    />
      <result property="FullName" column="FullName"    />
      <result property="Type" column="Type"    />
      <result property="ClientManager" column="ClientManager"    />
      <result property="Address" column="Address" />
      <result property="InvoiceInformation" column="InvoiceInformation"    />
      <result property="ContactWay" column="ContactWay"    />
      <result property="Remar" column="Remar"    />
      <result property="Editor" column="Editor"    />
      <result property="EditTime" column="EditTime"    />
      <result property="CreditStatus" column="CreditStatus"    />
    </resultMap>
  </resultMaps>

id是一个标识,在下面的select或者各种操作时可以定义ResultMap=这里的ID

(3)<parameterMaps></parameterMaps>

参数集映射,

<parameterMaps>
    <parameterMap id="ClientLsit" class="Client">
      <parameter property="Id"/>
    </parameterMap>
  <parameterMaps>

简单情况下,可以将Parameter Maps和Result Maps作为输入、输出参数。

(4)<statement></statement>

在该节点内可以写增删改查的操作,sql语句里用#实体类属性#来作为参数

<statements>
    <select id="ClientList" resultMap="ClientList" >
      select * from TSos_ClientInfo a join TSos_Client_Controlled b on  a.ClientID = b.ClientID where a.Client=#ClientID#
    </select>


<statements>

<select>中的id是一个标识,可以在代码中指定该id,执行该节点中的sql语句或操作

resultMap是结果的MapID,对应上边的resultMap节点。可以定义parametersClass属性,为参数的数据类型,还可以定义resultClass,是返回结果的数据类型。

(5)在sqlmap.config配置文件中加载该xml文件

2.创建一个model实体类

字段必须要和resultMap对应,这部分代码可以用代码生成器生成。

using System.Text;
using System.Threading.Tasks;

namespace Group.IBatis.Pro.Model.Table
{
    [Serializable]
    public class Client : Entity
    {
        public Client()
        { }

        /// <summary>
        /// Id
        /// </summary>		
        private int _clientid;
        public int ClientID
        {
            get { return _clientid; }
            set { _clientid = value; }
        }
        /// <summary>
        /// ClientNo
        /// </summary>		
        private string _clientno;
        public string ClientNo
        {
            get { return _clientno; }
            set { _clientno = value; }
        }
        /// <summary>
        /// ClientName
        /// </summary>		
        private string _shortname;
        public string ShortName
        {
            get { return _shortname; }
            set { _shortname = value; }
        }

        /// <summary>
        /// FullName
        /// </summary>		
        private string _fullname;
        public string FullName
        {
            get { return _fullname; }
            set { _fullname = value; }
        }
        /// <summary>
        /// Type
        /// </summary>		
        private string type;
        public string Type
        {
            get { return type; }
            set { type = value; }
        }
        /// <summary>
        /// ClientManager
        /// </summary>		
        private string _clientmanager;
        public string ClientManager
        {
            get { return _clientmanager; }
            set { _clientmanager = value; }
        }
        /// <summary>
        /// Address
        /// </summary>		
        private string _address;
        public string Address
        {
            get { return _address; }
            set { _address = value; }
        }
        /// <summary>
        /// InvoiceInformation
        /// </summary>		
        private string _invoiceinformation;
        public string InvoiceInformation
        {
            get { return _invoiceinformation; }
            set { _invoiceinformation = value; }
        }
        /// <summary>
        /// Address
        /// </summary>		
        private string _contactway;
        public string ContactWay
        {
            get { return _contactway; }
            set { _contactway = value; }
        }
        /// <summary>
        /// Remar
        /// </summary>		
        private string _remar;
        public string Remar
        {
            get { return _remar; }
            set { _remar = value; }
        }
        /// <summary>
        /// Editor
        /// </summary>		
        private string _editor;
        public string Editor
        {
            get { return _editor; }
            set { _editor = value; }
        }
        /// <summary>
        /// EditTime
        /// </summary>		
        private DateTime _edittime;
        public DateTime EditTime
        {
            get { return _edittime; }
            set { _edittime = value; }
        }
        /// <summary>
        /// CreditStatus
        /// </summary>		
        private DateTime _creditstatus;
        public DateTime CreditStatus
        {
            get { return _creditstatus; }
            set { _creditstatus = value; }
        }
    }
}

3.代码


        public datatable getClientList(string ClientInfo, DateTime edittime)
        {
            string[] list = ClientInfo.Split('^');
            //实例化一个实体类的对象,把改对象的属性赋值
            Model.Table.Client client = new Model.Table.Client();
            client.ClientID= list[0].ToString();
            client.Type = list[1].ToString();
            client.ShortName = list[2].ToString();
            client.FullName = list[3].ToString();
            client.ClientManager = list[4].ToString();
            client.Address = list[5].ToString();
            client.InvoiceInformation = list[6].ToString();
            client.Remar = list[7].ToString();
            client.EditTime = edittime;
           //这里的“ClientList”是对应的xml文件里的节点ID,client是参数对象,可在节点sql语句中直接#该对象参数#
            datatable dt = MyBatis.QueryForDataTable("ClientList", client);
            return dt;
        }

然后在需要的地方调用getClientList()就可以获取到查询的datatable,再进行操作。

 

 

个人才疏学浅刚刚用这个框架写一些积累难免有错误,如有错误还请帮忙指正。

© 著作权归作者所有

共有 人打赏支持
刘昌鑫
粉丝 6
博文 74
码字总数 21655
作品 0
海淀
后端工程师
私信 提问
加载中

评论(1)

i
itxx2016
推荐国内最流行的ibatis、mybatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
深入分析 iBATIS 框架之系统架构与映射原理

简介: iBATIS 通过 SQL Map 将 Java 对象映射成 SQL 语句和将结果集再转化成 Java 对象,与其他 ORM 框架相比,既解决了 Java 对象与输入参数和结果集的映射,又能够让用户方便的手写使用 ...

老盖
2010/11/11
2.2K
3
iBatis和Hibernate浅析

iBatis和Hibernate浅析 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hiber...

JAVA__
2012/08/16
0
1
[IBM DW] 深入分析 iBATIS 框架之系统架构与映射原理

简介: iBATIS 通过 SQL Map 将 Java 对象映射成 SQL 语句和将结果集再转化成 Java 对象,与其他 ORM 框架相比,既解决了 Java 对象与输入参数和结果集的映射,又能够让用户方便的手写使用 ...

红薯
2010/11/13
1K
2
使用 ibatis 处理复杂对象数据关系的实例

ibatis 基本介绍 起源于 2001 年的开放源代码项目 ibatis,是一个基于 Java 的持久层框架。与 Hibernate, Toplink 等持久化框架不同,ibatis 是一个 “半自动化”的 ORM 实现。ibatis 没有对...

红薯
2010/09/05
1K
4
iBatis SqlMap的配备总结

iBatis SqlMap的配置总结 核心提示:SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: sqlMap namespace=Account,在此空间外要引用此空间的元素...

mjZhang
2014/04/30
0
1

没有更多内容

加载失败,请刷新页面

加载更多

/etc/profile和/etc/profile.d/的区别

/etc/profile 是文件, /etc/profile.d/ 是目录,用在设置环境变量方面,/etc/profile 文件和 /etc/profile.d/ 目录实现效果是一样的,可根据自己对环境变量配置的需求场景,选择一种最好的方...

calmsnow
5分钟前
0
0
支付系统设计

概述 支付系统是连接消费者、商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付金额等),金额对账等功能,根据不同公司对于支付业务...

小致dad
6分钟前
0
0
解决Docker Image镜像无法删除问题的方法

前言 Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运...

临江仙卜算子
10分钟前
0
0
centos 7 redis_install.sh

#!/bin/bashprintf "============开始安装redis\n"printf "============输入redis下载url,按enter默认下载5.0.3版本\n"download_url='';while truedoread download_url...

偶遇一只小仙女
13分钟前
0
0
分布式消息通信ActiveMQ原理-消费消息策略-笔记

消费端消费消息的原理 我们通过上一节课的讲解,知道有两种方法可以接收消息, 一种是使用同步阻塞的MessageConsumer#receive方法。 另一种是使用消息监听器MessageListener。 这里需要注意的...

Java搬砖工程师
15分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部