博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态sql
阅读量:6141 次
发布时间:2019-06-21

本文共 2436 字,大约阅读时间需要 8 分钟。

动态sql:

             以前的sql如果你有3列数据,你要修改数据、那你就要写修改的第一列的,一二列的,一二三列的,这样操作很麻烦。

             但是如果你用sql预处理的话他就会根据你输入你对象,来判断你要修改的参数,让sql变得很灵活。

注意事项!!

                  封装属性的时候 有一定不能用基本数据类型 要用封装数据类型

                  基本数据类型没有赋值的时候是零

                  封装数据类型 没有赋值的时候是null

if:

    test  条件,可以取属性值或者参数 可以用and加入多个判断

set:

      update生成的,可以生成 set 关键字 还有就是去除最后逗号

-- 动态sql好处让sql变得灵活,修改他可以进行判断,根据你传入的对象的参数来判断你要修改的值 update kecheng
-- 这里用《set》可以帮助你自动去除 逗号多参数是就有好处
kname=#{kname},
where kid=#{kid}-- 这里要注意的是动态sql的值都是键值对,对象参数对应数据库的的的参数

trim:

         去除或添加

         suffixOverrides  末尾去除符号(如果你声明的话,他就会你最后的值后面加个,例如(name,)无法识别sql语句)

         suffix  末尾添加符号

         prefix  前面添加符号

         prefixOverrides 前面去除符号

insert into student(
-- 这里要注意取出末尾逗号,不取出的话如果你在插入时,如果你插入一个值不去除逗号他就会默认你后面还要插入会报sql语法错误
address,
sname,
cid,
)values(-- 还要注意这些都是在括号中执行的
#{address},
#{sname},
#{cid},
)

查询动态sql查询可以根据你选择的条件进行查询

List
seleStu(String sname,String address,Integer cid,Integer sid); //这里可以根据你输入的值来判断你要查询的值,不选择输入null就可以这里要注意要用封装数据类型,因为基本数据类型不为空,为0

如果上面动态查询中发生: Parameter 'uid' not found. Available parameters are [arg3, arg2, param5, arg5, arg1, arg0, param3, ] 错误

可以试试下面写法

and写前面<where>标记会自动去除and

转载地址:http://dluya.baihongyu.com/

你可能感兴趣的文章
整理看到的好的文档
查看>>
Linux磁盘管理和文件系统管理
查看>>
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>
命令查询每个文件文件数
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
RAC表决磁盘管理和维护
查看>>
Apache通过mod_php5支持PHP
查看>>
发布一个TCP 吞吐性能测试小工具
查看>>
java学习:jdbc连接示例
查看>>
PHP执行批量mysql语句
查看>>
Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模块
查看>>
Silverlight 如何手动打包xap
查看>>
建筑电气暖通给排水协作流程
查看>>
JavaScript面向对象编程深入分析(2)
查看>>
linux 编码转换
查看>>
POJ-2287 Tian Ji -- The Horse Racing 贪心规则在动态规划中的应用 Or 纯贪心
查看>>
Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月7日-1月14日)
查看>>
关于C#导出 文本文件
查看>>
使用native 查询时,对特殊字符的处理。
查看>>