iBATIS中的sql map参考

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2.   
  3. <!DOCTYPE sqlMap         
  4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"         
  5.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
  6.   
  7. <sqlMap namespace="Category">  
  8.   
  9.     <typeAlias alias="subject" type="com.lhq.prj.bms.po.Subject" />  
  10.     <typeAlias alias="category" type="com.lhq.prj.bms.po.Category" />  
  11.     <typeAlias alias="page" type="com.lhq.prj.bms.core.Page" />  
  12.   
  13.     <parameterMap class="category" id="pm_category_without_id">  
  14.         <parameter property="categoryName" javaType="string" jdbcType="VARCHAR" />  
  15.         <parameter property="subjectId" javaType="integer" jdbcType="NUMBER" />  
  16.         <parameter property="subjectName" javaType="string" jdbcType="VARCHAR" />  
  17.         <parameter property="remark" javaType="string" jdbcType="VARCHAR" />  
  18.     </parameterMap>  
  19.     <sql id="byCategoryIdCondition">  
  20.         <![CDATA[  
  21.            categoryId = #categoryId:NUMBER#  
  22.         ]]>  
  23.     </sql>  
  24.   
  25.     <insert id="save" parameterMap="pm_category_without_id">  
  26.         <![CDATA[  
  27.             INSERT INTO t_category   
  28.                         (categoryName,subjectId,subjectName,remark)   
  29.                  VALUES (?,?,?,?)  
  30.         ]]>  
  31.         <selectKey resultClass="int">  
  32.             <![CDATA[  
  33.                 SELECT @@IDENTITY AS ID  
  34.             ]]>  
  35.         </selectKey>  
  36.     </insert>  
  37.   
  38.     <delete id="deleteById" parameterClass="integer">  
  39.         <![CDATA[  
  40.             delete t_category  
  41.         ]]>  
  42.         <dynamic prepend="WHERE">  
  43.             <include refid="byCategoryIdCondition" />  
  44.         </dynamic>  
  45.     </delete>  
  46.   
  47.     <select id="findAll" resultClass="category">  
  48.         <![CDATA[  
  49.             SELECT * FROM t_category  
  50.         ]]>  
  51.     </select>  
  52.   
  53.     <update id="update" parameterClass="category">  
  54.         <![CDATA[  
  55.             UPDATE t_category  
  56.         ]]>  
  57.         <dynamic prepend="SET">  
  58.             <isNotNull property="categoryName" prepend=",">  
  59.                 <![CDATA[  
  60.                     categoryName = #categoryName:VARCHAR#  
  61.                 ]]>  
  62.             </isNotNull>  
  63.             <isNotNull property="subjectId" prepend=",">  
  64.                 <![CDATA[  
  65.                     subjectId = #subjectId:NUMBER#  
  66.                 ]]>  
  67.             </isNotNull>  
  68.             <isNotNull property="subjectName" prepend=",">  
  69.                 <![CDATA[  
  70.                     subjectName = #subjectName:VARCHAR#  
  71.                 ]]>  
  72.             </isNotNull>  
  73.             <isNotNull property="remark" prepend=",">  
  74.                 <![CDATA[  
  75.                     remark = #remark:VARCHAR#  
  76.                 ]]>  
  77.             </isNotNull>  
  78.         </dynamic>  
  79.         <dynamic prepend="WHERE">  
  80.             <include refid="byCategoryIdCondition" />  
  81.         </dynamic>  
  82.     </update>  
  83.   
  84.     <sql id="findCategoryByPageCondition">  
  85.         <isNotEmpty property="conditions">  
  86.             <iterate property="conditions" open="(" close=")" conjunction="OR">  
  87.                 <![CDATA[  
  88.                     upper(categoryName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'  
  89.                     OR upper(subjectName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'  
  90.                     OR upper(remark) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'   
  91.                 ]]>  
  92.             </iterate>  
  93.         </isNotEmpty>  
  94.     </sql>  
  95.   
  96.     <select id="findByPage" parameterClass="page" resultClass="category">  
  97.         <![CDATA[  
  98.             SELECT TOP $limit$ * FROM t_category   
  99.                     WHERE (categoryId >= (SELECT MAX(categoryId) FROM (SELECT TOP $start$ categoryId FROM t_category   
  100.         ]]>  
  101.         <dynamic prepend="WHERE">  
  102.             <include refid="findCategoryByPageCondition" />  
  103.         </dynamic>  
  104.         <![CDATA[  
  105.             ORDER BY categoryId ) AS T))   
  106.         ]]>  
  107.         <dynamic prepend="AND">  
  108.             <include refid="findCategoryByPageCondition" />  
  109.         </dynamic>  
  110.         <![CDATA[  
  111.             ORDER BY categoryId  
  112.         ]]>  
  113.     </select>  
  114.   
  115.     <select id="findByCount" parameterClass="page" resultClass="int">  
  116.         <![CDATA[  
  117.             SELECT COUNT(*) FROM t_category   
  118.         ]]>  
  119.         <dynamic prepend="WHERE">  
  120.             <include refid="findCategoryByPageCondition" />  
  121.         </dynamic>  
  122.     </select>  
  123.   
  124.     <select id="findCategoryBySubject" parameterClass="subject" resultClass="category">  
  125.         <![CDATA[  
  126.             SELECT * FROM t_category   
  127.         ]]>  
  128.         <dynamic prepend="WHERE">  
  129.             <isNotNull property="subjectId" prepend="OR">  
  130.                 <![CDATA[  
  131.                     subjectId = #subjectId:NUMBER#  
  132.                 ]]>  
  133.             </isNotNull>  
  134.             <isNotNull property="subjectName" prepend="OR">  
  135.                 <![CDATA[  
  136.                     subjectName like '%' +  #subjectName:VARCHAR# + '%'  
  137.                 ]]>  
  138.             </isNotNull>  
  139.         </dynamic>  
  140.     </select>  
  141. </sqlMap>  
sql-map-2.dtd ibatis的dtd约束,版本2,xml文件中标签提示,网址:http://ibatis.apache.org/dtd/sql-map-2.dtd 立即下载

相关推荐

通过ibatis解决sql注入问题

主要介绍了通过ibatis解决sql注入问题,需要的朋友可以参考下

iBATIS SQL Maps入门教程

iBATIS SQL Maps入门教程准备使用SQL MapSQL Map架构能应用于设计不好的数据库模型甚至是设计不好的对象模型。尽管如此,您在设计数据库模型和对象模型时,还是应该遵循最佳的设计原则。这样,您会获得更好的性能和更简洁清晰的设计方案。设计最容易开始的地方是分析应用的业务逻辑。分析什么是应用的业务对象,什么是数据模型以及两者之间的关系。作为快速入门第一个例子,我们使用一个简单的J

大树下那片阴凉 1461

新能源充电桩充电枪口标准

建立的标准确保了新能源汽车充电的安全性、兼容性和效率,促进了新能源汽车产业的发展。

网络安全的研究者、新能源行业的追求者 4687

SQL Injection

摘要 以用户或者外部不可信来源的输入动态构造SQL查询的命令,将可能改变SQL查询语句本来的语义,从而导致执行任意的SQL命令。缺陷描述 SQL injection 错误在以下情况下发生: 1. 数据从一个不可信赖的数据源进入程序。 - 在这种情况下, 静态扫描工具无法确定数据源是否可信赖。 2. 数据用于动态地构造一个 SQL 查询。 示例1以下代...

weixin_42400722的博客 2781

跨越移植陷阱:ESP-IDF下LVGL与ILI9341的组件化集成与常见避坑指南

本文详细解析了在ESP-IDF环境下将LVGL图形库与ILI9341显示屏驱动进行组件化集成的完整流程。重点介绍了移植过程中的关键配置策略、内存管理优化技巧以及常见问题解决方案,帮助开发者有效规避内存溢出、显示异常等典型陷阱,实现高效稳定的嵌入式GUI开发。

yhn456789的博客 623

pwm电机调速的原理介绍与代码实现

1、pwm实现调速的原理与介绍 PWM(Pulse Width Modulation)脉冲宽度调制。 1)占空比 pwm占空比就是一个脉冲周期内有效电平在整个周期所占的比例。 通过调节PWM的占空比就能调节IO口上电压的持续性变化,因此也能够控制外设的功率进行持续性变化,也就能控制直流电机的转速快慢。 那么重点就在于如何调节PWM波形的输出。如下图所示 图中的ARR是我们给定时器的一个预装载值,CCRx的上下变化是产生PWM波的关键。我们假设ARR大于CCRx的部分输出为高电平(即t1-t2、t3-t4

Clichong 7万+

iBatis2学习笔记:SqlMap的配置总结(18条)

iBatis2学习笔记:SqlMap的配置总结(18条)   本来我也不喜欢iBatis,那是因为我当时还不怎么会用它,现在我想说,iBatis是个好东西,不信你试试看。下面是我在项目实践中对iBatis的一个小总结,希望帮助众多在疲于iBatis编码而无暇思考的苦工们找到一些偷懒的机会。   SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 ...

weixin_34071713的博客 407

HPM6E00:PWM V2使用指南

HPM6E00:PWM V2使用指南

xikangsoon的博客 1733

iBatis SQL Maps详解

一、准备使用SQL Map SQL Map架构能应用于设计不好的数据库模型甚至是设计不好的对象模型。尽管如此,您在设计数据库模型和对象模型时,还是应该遵循最佳的设计原则。这样,您会获得更好的性能和更简洁清晰的设计方案。 设计最容易开始的地方是分析应用的业务逻辑。分析什么是应用的业务对象,...

chiju9336的博客 303

简单搭建 可视化日志+链路追踪

JAVA 可视化日志、链路追踪、plumeLog、Tlog、Logback

qq_39535439的博客 1204

<PLC><西门子><工控>西门子博图V18中使用SCL语言编写一个CRC16-modbus校验程序

西门子官方对于SCL语言的介绍如下:SCL 编程语言SCL 编程语言SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的PLCopen 初级水平。语言元素。

用沸腾的热血,支付我们的人生吧! 1436

在ibatis中使用$value$引入变量会引入SQLInjection漏洞

(1)sql语法中的_关键字_.如果sql语句中出现存在用户输入的关键字.比如以下sql: select TABLE_NAME,TABLESPACE_NAME from user_tables order by TABLE_NAME $ordertype$其中ordertype为用户输入的ASC,DESC.对这种关键字请使用 $ordertype:SQLKEYWORD$替换 $ordertype$...

蛋疼先生的手札 425

56、宇宙微波背景辐射(CMB)望远镜及光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统,重点介绍了交叉德拉贡系统的结构特点、偏振测量误差及其控制、以及大型地面望远镜如ACT和SPT的设计与对比。同时,总结了不同光学系统和探测器阵列的优劣势,并展望了未来发展方向,旨在为CMB研究提供更高效的工具和技术支持。

f9g0h的博客 242

介绍iBATIS的SQL Map的简单例子

这篇文章介绍了iBATIS的SQL Map的简单例子。它是一个免费的开放源代码软件。具有以下优点:10、知道怎样操作10种以上的数据库9 、可配置的caching(包括从属)8、支持DataSource、local transaction managemen和global transaction 7、简单的XML配置文档6、支持Map, Collection, List和简单类型包装(如Integ

支持开源,支持java,支持Linux 1876

GEE案例教程:融合Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据,构建完整的洪水监测与影响评估工作流

本文介绍了一个专为巴基斯坦哈扎拉分区设计的洪水监测系统,该系统整合了Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据等多源遥感数据。系统通过VV极化SAR数据的水体提取算法(阈值-13dB)实现洪水范围监测,结合10米分辨率的光学影像进行可视化验证,并利用100米分辨率人口数据评估受灾人口。系统提供完整的技术实现,包括研究区加载、遥感数据处理、日期选择界面和洪水变化检测等功能模块,为灾害应急响应提供科学依据。

此星光明博客 191

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

iBATIS SQL Maps(一)

前段时间写了些 Hibernate 方面的系列文章,网友们反映还不错。在接下来的时间里,我将会引入另外一种 O/R Mapping 解决方案——iBATIS,本系列将沿用 Hibernate 系列文章的风格。什么是 iBATIS ?    和众多的 SourceForge 开源项目一样,iBATIS 曾经也是其中的一员。在2004年11月3日成功地成为了 Apache Incubator 下的子项

成都心情 7239

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ibatis中sql-map-config.xml的settings配置

ibatis中sql-map-config.xml的settings配置 cacheModelsEnabled="true" lazyLoadingEnabled="false" enhancementEnabled="true" maxSessions="64" maxTransactions="8" maxRequests="128" useStatementNamespac

hsgao_water的博客 2019

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IBatis框架的SQL Map映射文件

在IBatis框架中,利用一个映射文件来定义需要持久化的对象,在这个文件中SQL语句是最显眼的,这个映射文件的目的就是将SQL映射到对象。下面先看一下映射文件的主要功能:q        定义一个持久化的Java类。q        映射VO中的变量属性为表字段。q        根据SQL来持久化对象。q        可以定义随意使用的SQL。q        支持各种

dinglinhu的专栏 3270

iBATIS:轻量级SQL映射框架

iBATIS是一个轻量级SQL映射框架,其核心思想是让开发者自主编写SQL语句,框架负责处理Java对象与数据库之间的参数和结果映射。作为MyBatis的前身,它适用于需要精细控制SQL的场景。主要组件包括全局配置文件SqlMapConfig.xml、映射文件SqlMap.xml和运行时入口SqlMapClient。iBATIS通过参数映射、结果映射、动态SQL标签和缓存机制简化了JDBC操作,但需要手写大量XML配置。

yyhdream的博客 1156

iBatis小结

1、isNull, isNotNull与isEmpty, isNotEmpty区别 在iBATIS中isNull用于判断参数是否为Null,isNotNull相反。 isEmpty判断参数是否为Null或者空,满足其中一个条件则其true,isNotEmpty相反,当参数既不为Null也不为空是其为true isNull:  Checks if a property is null. is

caihaijiang的专栏 7626

ibatis 指定返回Map(resultMap)中的字段类型

ibatIS中我们可以定义&lt;parameterMap class="" id=""&gt;&lt;/parameterMap&gt;     &lt;resultMap class="" id=""&gt;&lt;/resultMap&gt; 来定义参数类型Map或者返回值Map类型   转自吕兄:http://mmddonkey.iteye.com/

Only the heart peace will be prosperity 1123

ibatis Could not find SQL statement to include with refid 'xxx' 问题

ibatis启动报错: Could not find SQL statement to include with refid 'xxx'。 网上找的资料都是名称空间的问题,后来试着将这个被引用的sql片段放到使用它的sql前面,就可以了。 这可能是一个bug吧,使用的时候注意就是了。 注意:按照上面的配置好后,在Sql-Map-Config.xml中需要设置useStatementNa

Mexican的博客 1万+

ibatis中sql xml的基础写法

ibatis中sqlxml的基础写法 在工作中整理的ibatis sql配置文件的一些基础写法。 ibatis sql xml文件基本构成 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <sqlMap namespace="USER">

lewenson的博客 1670

iBATIS SQL Maps(二)

    让我们重回到车辆管理系统和张三的故事中。    在 iBATIS SQL Maps 的世界里也存在 one-to-many、many-to-one 的关系,想必你已经对这些概念驾轻就熟了。好!还是每个 People 对应多条 AutoInfo 信息。    本系列文章第一部分提到过 iBATIS SQL Maps 的映射文件个数可以人为设定,但是,把一组有共性的操作放在一起是首选策略。下面

成都心情 1万+

ibatis中的iterate遍历属性值

收集了一下“黑咖啡”的介绍: http://www.blogjava.net/kyleYang/archive/2010/02/02/311688.html 感谢能与大家分享 Iterate:这个属性遍历整个集合,并为List集合中的元素重复素体的内容。 Iterate 的属性:       prepend  - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)       pro...

ruanjianzhong的专栏 1889
上一篇: SQLPLUS下,实现中-英字符集转换
下一篇: SQL高级应用
nmx253
博客等级 码龄19年 3粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值