文档章节

ibatis的查询操作

刘昌鑫
 刘昌鑫
发布于 2016/06/23 20:25
字数 839
阅读 20
收藏 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
博文 73
码字总数 20757
作品 0
海淀
后端工程师
加载中

评论(1)

i
itxx2016
推荐国内最流行的ibatis、mybatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
iBatis和Hibernate浅析

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

JAVA__
2012/08/16
0
1
iBatis SqlMap的配备总结

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

mjZhang
2014/04/30
0
1
JAVA持久层框架的概述(ibatis>>mybatis)

现在主流的ORM映射框架有Hibernate、Apache OJB;这些基于Java的持久层框架都提供了全自动的对象–关系映射机制,能很好的实现从对象到关系数据的持久化操作。几乎不需要写任何的SQL语句(根据...

battier
2011/06/21
0
2
关于ibatis简单使用的想法

ibatis 是一个成熟的框架,现在已经是改名字叫mybatis了,框架的配置比较烦,如xml,dao的书写,还有每个表还要对应于javabean,没有的话,map 也成,一直在想怎么能通过一些方式使其更好地接入,...

国民
2013/07/01
0
1
ibatis sqlMap 使用

SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: 在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: 如果有用到的全名的地...

为了美好的明天
04/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
43分钟前
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
11
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部