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

COMSOL 6.4安装全攻略:安装包获取、许可证配置与避坑指南

多物理场仿真是现代工程与科研中不可或缺的技术手段,其核心原理在于将电磁、结构、流体、传热等不同物理过程的耦合效应置于统一环境中求解,从而真实模拟复杂系统行为。这类仿真平台能大幅提升产品研发与设计验证效率,广泛应用于电子散热、声学分析、电力设备等领域。在部署最新版本仿真软件时,安装与许可证配置往往成为影响工作效率的关键环节。本文系统梳理COMSOL 6.4在Windows平台的安装全流程,涵盖安装包获取、系统依赖准备、许可证配置、常见报错排查等实用经验,帮助工程师与科研人员一次性完成环境搭建,把更多时间投入真

weixin_30000735的博客 1342

SQL Injection

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

weixin_42400722的博客 2781

支持向量机算法(带你了解原理 实践)

支持向量机作为一种强大的分类算法,在各个领域都取得了显著的成果。其基于统计学习理论的原理使得它能够在高维空间中找到最优分类超平面,并通过核函数处理非线性问题。

2303_79387663的博客 3736

基于deepseek本地模型的本地知识库构建

通过以上步骤,你已经成功构建了一个基于 AnythingLLM 和 LM Studio 的本地知识库。这个系统不仅能够高效地存储和检索知识,还能结合强大的语言模型生成准确的回答。你可以根据自己的需求进一步扩展和优化这个系统,比如增加更多的文档格式支持、优化检索算法等。

qq_30178745的博客 1381

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

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

weixin_34071713的博客 407

从零到一:基于Blazor和Elsa Workflows的工作流系统开发实战

本文详细介绍了如何利用Blazor和Elsa Workflows构建高效的工作流系统,从技术选型到生产环境部署,涵盖动态工作流建模、Blazor前端集成及性能优化等核心内容。通过实战案例,展示如何实现订单处理系统的自动化与灵活性,提升企业流程效率。

weixin_26875109的博客 428

iBatis SQL Maps详解

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

chiju9336的博客 303

低功耗 AI 人体存在检测系统:智能照明与安防的高效解决方案

低功耗 AI 人体存在检测系统通过 “ESP32-C3 主控 + HX7110 AI 模块” 的硬件组合,搭配双重检测算法与深度睡眠机制,既解决了传统检测方案的误报问题,又满足了长时间低功耗运行需求。系统接线简单、代码可直接移植,可快速集成到智能照明、安防监控等物联网设备中,具备广泛的应用前景。

weixin_42300449的博客 226

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

在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

15、导频辅助信道估计:挑战与解决方案

本文探讨了导频辅助信道估计在双选择性信道中的挑战,分析了传统方法的局限性,并提出了一种新的导频子载波结构。该结构综合考虑相干频率带宽与相干时间,通过动态移动导频位置并结合时间与频率分集,提升了高速移动环境下的信道估计性能。文章还讨论了其硬件实现、系统开销及兼容性等实际问题,并展望了优化策略、降低开销及与其他技术融合的未来研究方向。

o4p5q6r7s的博客 103

介绍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

9.6华为OD机试真题 新系统 - 仓储货物有序出库 (Java/Py/C/C++/Js/Go)

9.6华为OD机试真题 新系统 - 仓储货物有序出库 (Java/Py/C/C++/Js/Go)

算法大师! 1198

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iBATIS SQL Maps(一)

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

成都心情 7239

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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、付费专栏及课程。

余额充值