ibatis的查询操作
ibatis的查询操作
刘昌鑫 发表于2年前
ibatis的查询操作
  • 发表于 2年前
  • 阅读 20
  • 收藏 0
  • 点赞 1
  • 评论 1

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: ibatis.net通过实体类映射数据库的字段,实现操作对象的方式操作数据库

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,再进行操作。

 

 

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

共有 人打赏支持
粉丝 4
博文 53
码字总数 11955
评论 (1)
itxx2016
推荐国内最流行的ibatis、mybatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
×
刘昌鑫
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: