文档章节

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
关于ibatis简单使用的想法

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

国民
2013/07/01
0
1
JAVA持久层框架的概述(ibatis>>mybatis)

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

battier
2011/06/21
0
2
ibatis sqlMap 使用

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

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud SpringBoot mybatis分布式Web应用的统一异常处理

我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用...

itcloud
21分钟前
0
0
c++ std::bind和std::function

定义于头文件 <functional> std::bind 函数绑定,https://zh.cppreference.com/w/cpp/utility/functional/bind // bind 用例#include <iostream>#include <functional> // 自定义的一......

SibylY
24分钟前
0
0
SecureCRT的安装与破解(过程很详细!!!)

SecureCRT的安装与破解(过程很详细!!!) SecureCRT的安装与破解(过程很详细!!!) 使用SecureCRT可以方便用户在windows环境下对linux主机进行管理,这里为大家讲一下SecureCRT的破解方...

DemonsI
28分钟前
0
1
介绍几款可用的web应用防火墙

目前有两款,基于软件和基于应用程序的web应用防火墙。基于软件的产品布置在Web服务器上,而基于应用程序的产品放置在Web服务器和互联网接口之间。两种类型的防火墙都会在数据传入和传出web...

上树的熊
35分钟前
1
0
用Visual Studio开发以太坊智能合约

区块链和以太坊 自从我熟悉区块链、以太坊和智能合约以来,一直失眠。 我一直在阅读,阅读和阅读,最后我能够使用一些工具,他们建议使用以太坊网站官方客户端应用程序(Ethereum Wallet)也...

geek12345
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部