文档章节

ibatis的查询操作

刘昌鑫
 刘昌鑫
发布于 2016/06/23 20:25
字数 839
阅读 20
收藏 0
点赞 1
评论 1

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
博文 69
码字总数 20757
作品 0
海淀
后端工程师
加载中

评论(1)

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

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

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

ibatis MyBatis区别与联系

简介: 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别,以及从 iBatis 向 MyBatis 移植时需要注意的地方。通过对本文的学习,读者基本能够了解 MyBatis 有哪些方面的改进,并能够顺利使...

为了美好的明天 ⋅ 04/17 ⋅ 0

00fly/springmvc_ibatis_plus

#springmvcibatisplus ** 针对ibatis框架的代码生成器项目不再维护了,sorry。。。 ** 说明:如果数据库表中oracle无blob,clob字段,mysql中无text,blob字段请使用 noSupportBCLOB 分支代码...

00fly ⋅ 06/01 ⋅ 0

MyBatis在注解上使用动态SQL(@select使用if)

1、用标签包围,然后像xml语法一样书写 @Select({"

easonjim ⋅ 2017/08/29 ⋅ 0

MyBatis3-SqlSessionDaoSupport的使用

以下内容引用自http://www.yihaomen.com/article/java/336.htm: 在MyBatis3中这个Mapper接口貌似充当了以前在iBatis2中的DAO层的作用。但事实上,如果有这个Mapper接口不能完成的工作,或者...

easonjim ⋅ 2017/06/22 ⋅ 0

阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准

金三银四的跳槽热潮即将过去,在这两个月的跳槽的旺季中,作为互联网行业的三大巨头,百度、阿里巴巴、腾讯对于互联网人才有很大的吸引力,他们的员工也是众多互联网同行觊觎的资深工程师、管...

javaxuexi123 ⋅ 04/20 ⋅ 0

Java面试----2018年MyBatis常见实用面试题整理

Java面试----2018年MyBatis常见实用面试题整理 1、什么是MyBatis? 答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。 2、讲下MyBatis的缓存 答:MyBatis的缓存分为一级缓存...

优惠券活动 ⋅ 04/29 ⋅ 0

Mybatis中的jdbcType的作用

Mybatis中的jdbcType的作用 使用MyBatis框架做更新操作时,在该字段需要更新的内容为空时,就会出现1111错误,也就是无效的列类型,这个时候你就要使用jdbcType。至于什么时候要使用到javaT...

architect刘源源 ⋅ 05/03 ⋅ 0

Mybatis中Mapper映射文件详解

紧接上文所述,在这篇文章中我将对Mapper映射文件进行详细的说明。 Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd。我们先大体上看看支持哪些配置?如...

u012843873 ⋅ 05/04 ⋅ 0

OceanBase的正确使用方法

OceanBase不是设计出来的,而是在使用过程中不断进化出来的。因此,系统使用以及运维的方便性至关重要。 OceanBase的使用者是业务系统开发人员,并交由专门的OceanBase DBA来运维。为了方便业...

凌洛 ⋅ 05/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 10分钟前 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 14分钟前 ⋅ 0

Nginx + uwsgi @ubuntu

uwsgi 安装 sudo apt-get install python3-pip # 注意 ubuntu python3默认没有安装pippython3 -m pip install uwsgi 代码(test.py) def application(env, start_response): start_res......

袁祾 ⋅ 15分钟前 ⋅ 0

版本控制工具

CSV , SVN , GIT ,VSS

颖伙虫 ⋅ 17分钟前 ⋅ 0

【2018.06.19学习笔记】【linux高级知识 13.1-13.3】

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

lgsxp ⋅ 25分钟前 ⋅ 0

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 53分钟前 ⋅ 0

彻底删除Microsoft Office的方法

参照此链接彻底删除Office https://support.office.com/zh-cn/article/%e4%bb%8e-pc-%e5%8d%b8%e8%bd%bd-office-9dd49b83-264a-477a-8fcc-2fdf5dbf61d8?ui=zh-CN&rs=zh-CN&ad=CN......

Kampfer ⋅ 今天 ⋅ 0

大盘与个股之间关系

大盘走多:积极出手 顺势加码 大盘走空: 少量出手 退场观望 大盘做头:逆势减码 少量操作 大盘做底 : 小量建仓 小量试单

guozenhua ⋅ 今天 ⋅ 0

Day16 LVM(逻辑卷管理)与磁盘故障小案例

lvm详解 简述 LVM的产生是因为传统的分区一旦分区好后就无法在线扩充空间,也存在一些工具能实现在线扩充空间但是还是会面临数据损坏的风险;传统的分区当分区空间不足时,一般的解决办法是再...

杉下 ⋅ 今天 ⋅ 0

rsync实现多台linux服务器的文件同步

一、首先安装rsync,怎样安装都行,rpm,yum,还是你用源码安装都可以。因为我用的是阿里云的ESC,yum install rsync就ok了。 二、配置rsync服务 1.先建立个同步数据的帐号 123 groupadd r...

在下头真的很硬 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部