IBatis.net介绍

2023-10-31

从上而下的理解IBatis.net这个简易的ORM框架:

1. DAL层

public class AccountService    
{        
public int TestInsertOne(Accounts account)        
{             Object obj =Mapper.GetMaper.Insert("Account.sql_InsertOne", account);            return (int)obj;        
}         
public Accounts GetAccount(int id)        {            
return (Accounts)Mapper.GetMaper.QueryForObject("Account.sql_selectByid", id);        
}         
public IList<Accounts> GetAccountList()         
{            return Mapper.GetMaper.QueryForList<Accounts>("Account.sql_selectAll", null);        
}


2. Model 层:

public class Accounts    
{        
public int Id { get; set; }         
public string Item { get; set; }         
public float Money { get; set; }         
public int Month { get; set; }         
public int Year { get; set; }         
public int Day { get; set; }         
public DateTime CreateOn { get; set; }         
public string Level { get; set; }    
}


3. 映射层

<?xml version="1.0" encoding="utf-8" ?><sqlMap namespace="Account" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
<alias>    
<!-- alias:取别名                    assembly:表示类所在的文件                    type:表示该类的完整的名称      -->    
<typeAlias alias="Account" assembly="IBatisDemo.Model.dll" type="IBatisDemo.Model.Accounts" />  </alias>   
<resultMaps>    
<resultMap id="Account-result"  class="Account">      
<result property="Id"    column="id"/>      
<result property="Item"    column="Item"/>      
<result property="Year"    column="Year"/>      
<result property="Month"    column="Month"/>      
<result property="Day"    column="Day"/>      
<result property="CreateOn"    column="CreateOn"/>      
<result property="Level"    column="Level"/>    
</resultMap>  
</resultMaps>   
<statements>    
<select id="sql_selectByid" resultMap="Account-result">      
select * from Accounts      
<dynamic prepend="where">        
<isParameterPresent property="id" prepend="">          
[id] = #id#        
</isParameterPresent>      
</dynamic>    
</select>     
<select id="sql_selectAll" resultMap="Account-result">      
select * from Accounts    </select>     
<insert id="sql_InsertOne" parameterClass="Account">      
insert into Accounts (Item,Money,Year,Month,Day,CreateOn,Level)      
values      (#Item#,      #Money#,      #Year#,      #Month#,      #Day#,      #CreateOn#,      #Level#      )      
<selectKey  type="post" resultClass="int" property="Id">        
SELECT CAST(@@IDENTITY as int) as Id      
</selectKey>    
</insert>  
</statements>
</sqlMap>



 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IBatis.net介绍 的相关文章

随机推荐

  • 计算机科学书籍

    下面开始详细了解下书籍 1 计算机程序的构造和解释 数据科学家告诉你哪些计算机科学书籍是你应该看的 麻省理工已经不再使用这本书来教计算机科学导论了 用Python替代Scheme 而Scheme是这本书使用的语言 这背后的原因可能是这个世界
  • Redis 学习笔记(一)-- Redis 基础知识

    Redis 上篇 Linux学习 1 什么是NoSQL 百度百科 https baike baidu com item NoSQL 8828247 fr aladdin NoSQL Not Only SQL 泛指非关系型的数据库 区别于关系
  • vue websocket 实现客服聊天功能(基础实现)

    本文章主要介绍如何实现一个基本的聊天 后续会添加表情包 传照片等功能 其实刚开始接触的时候 我最大的疑惑是聊天功能的前期是否需要搭建什么框架 下载一些什么东西之类的 结果就是 其实websocket可以直接使用 然后前后端搭配 也是免费的
  • OpenVAS的安装、使用及实战(GVM,Metasploit使用)

    目录 简介 环境 openvas的组件构成 安装OpenVAS 失败 安装GVM 使用GVM 更新NVT特征库 WEB页面 登录 报告生成格式 内置扫描配置方案 实战 新建任务 漏洞报告 www dvssc com service com
  • 链表面试题-单链表带环和环的入口点问题

    带环问题 判断链表是否带环 如果带环则环长是多少 求环的入口点 1 判断单链表是否带环 思路 设置一个快指针 每次走两步 再设置一个慢指针每次走一步 然后判断是否有交点即可 就好比你在环形跑道和别人赛跑 不管你俩速度如何 只要他比你快 总会
  • cuda-cnn之mnist文件读取(1)

    https github com zhxfl CUDA CNN 第一步是通过readMnistData读取训练样本和测试样本 mnist train images idx3 ubyte 训练样本 mnist train labels idx
  • 回归分析

    线性回归分析的内容 能否找到一个线性组合来说明一组自变量和因变量的关系 如果能的话 这种关系的强度有多大 也就是利用自变量的线性组合来预测因变量的能力有多强 整体解释能力是否具有统计上的显著性意义 在整体解释能力显著的情况下 哪些自变量有显
  • 【Java】BufferedOutputStream与BufferedInputStream字节缓存输出流和字节缓存输入流的使用

    理解 BufferedInputStream 用于读取文本文件内容 它继承于FilterInputStream BufferedOutputStream 本身带有一个缓冲区 在写入数据时 先放到缓冲区中 实现缓冲的数据流 BufferedO
  • bash测试test详解

    bash测试test详解 概述 任何相对完整的计算机语言都能够测试某个条件 然后根据测试的结果采取不同的动作 对于测试条件 Bash使用test命令 各种方括号和圆括号 if then结构等来测试条件 7 1 Test Constructs
  • c++调用python,传递python的类

    引用yahstudio
  • 设计模式 - abstract class和interface区别

    本文摘自书籍 大话设计模式 此系列文章GitHub地址 abstract class和interface区别 abstract class和interface在Java语言中都是用来进行抽象类 本文中的抽象类并非从abstract clas
  • 斯坦福大学吴恩达教授machine learning(1): octave安装

    刚开始学习 写博客只为督促一下自己 记录一下学习的点滴 菜鸟开始了 一 octave的下载 octave官网 点击打开链接 如图所示 下载地址 点击打开链接 如下图 我选的octave 4 22 w64 installer exe 当前最新
  • ValueError:Shape of `pred` and `label should be equal, but there are [1, 288, 384] and [1, 292, 384]

    在用PaddleSeg训练时遇到问题 ValueError Shape of pred and label should be equal but there are 1 288 384 and 1 292 384 目录 问题分析 批量查询
  • 实现 后台需要显示订单信息,但是订单信息里面涉及到查询2张表 。本代码使用了MapListHandler

    Dao层的代码实现 Service层实现 Servlet层实现 Bean 实现效果 以上是图片展示 一下是部分代码展示 DAO部分 通过查出2个表的数据where u id o id的数据MapListHandler 然后再通过遍历MapL
  • CVE-2021-21287:MiniO未授权SSRF漏洞

    一 介绍 MinIO 是一个基于Apache License v2 0开源协议的对象存储服务 它兼容亚马逊S3云存储服务接口 非常适合于存储大容量非结构化的数据 例如图片 视频 日志文件 备份数据和容器 虚拟机镜像等 而一个对象文件可以是任
  • 尼科彻斯定理

    链接 尼科彻斯定理 牛客题霸 牛客网 nowcoder com 描述 验证尼科彻斯定理 即 任何一个整数m的立方都可以写成m个连续奇数之和 例如 1 3 1 2 3 3 5 3 3 7 9 11 4 3 13 15 17 19 输入一个正整
  • [Machine Learning & Algorithm] 随机森林(Random Forest)

    1 什么是随机森林 作为新兴起的 高度灵活的一种机器学习算法 随机森林 Random Forest 简称RF 拥有广泛的应用前景 从市场营销到医疗保健保险 既可以用来做市场营销模拟的建模 统计客户来源 保留和流失 也可用来预测疾病的风险和病
  • 使用MySQL8.0以上版本和MySQL驱动包8.0以上出现的问题

    目录 1 时区问题 2 驱动程序类问题 1 时区问题 问题代码
  • dll,lib,.a,.so的联系与区别。什么是共享库?与dll的区别是什么?

    dll lib a so的联系与区别 什么是共享库 与dll的区别是什么 区别与联系 静态库与动态库 问题 疑问 什么是共享存档 其他内容 map pdb 文件 区别与联系 本文结合所学和理解进行简单了描述dll与lib a so文件的关系
  • IBatis.net介绍

    从上而下的理解IBatis net这个简易的ORM框架 1 DAL层 public class AccountService public int TestInsertOne Accounts account Object obj Mapp