jdbc 使用谨记
jdbc是java操作数据库的杀手锏。所有java程序员,对jdbc应该都不陌生。
但是,应该你也曾经被其折磨的抓耳挠腮,咬牙切齿吧,也许正因为这样你才对其记忆犹新,刻骨铭心。
这里有一些使用jdbc中所必知的东西,罗列一下,提醒后来人,解脱后来人!
预编译设置参数:
预编译就是,首先将sql语句发送给数据库服务器,进行编译,生产sql语句模板,类似function(p1,p2,p3)等,然后通过我们设置参数进行执行。预编译时,单引号内的参数时不会解析出来的,每个参数的类型是已经确定的,所以,我们设置参数的时候,可能会被默认添加to_number,to_char等函数,这个根据经验推断出来的,否则事实无法进行科学解释!
- 单引号内的变量无效,不会设置单引号内的变量;‘:user_id’,user_id不会被当成变量。
- 字符串无需添加单引号。like :name ,name的值在java中“‘%a%’”,使用时会报错,是“%a%”. to_date(:date,'yyyy-mm-dd'),date的java字符串"2012-10-10"即可,如果加上双引号反而画蛇添足,报错!
- 设置变量的时候,变量会根据相关属性类型调用to_char,to_number函数。delete from user where id in(:id),如果id是number类型,设置id参数的时候会to_number(:id),如果此时id中包含,就会报无效数字的错误!
- 字符串设置参数,会调用to_char()函数,是字符串类型,所以delete from user where id in(:id) 如果id为“123,456,789”,参数设置后相当于delete from user where id in(to_char(‘123,456,789’)), 也等同于delete from user where id in
(‘123,456,789’).所以还是达不到in的效果。可使用instr函数实现。delete from user where instr(:id,id) != 0.,更加安全的是delete from user where instr(:id,‘,’||id||',') != 0, :id = ',4,3,2,1,'
jdbc 使用谨记的更多相关文章
- 谨记给UpdatePanel中动态添加的控件赋ID
原文:谨记给UpdatePanel中动态添加的控件赋ID 昨天下定决 心对上次做的布局编辑器控件加以改进,其中最主要变化的就是要完全使用ASP.NET AJAX!但是很遗憾,虽然耳闻已久,但目前对AS ...
- virtualbox谨记:续....
接“virtualbox谨记:win7上只有4.3.x的版本支持ubuntu14.04.3虚拟机安装Oracle Rac,其他的版本3.x和5.0.2(至2015-08-30)均不可以”, 续 me自 ...
- virtualbox谨记:win7上只有4.3.x的版本支持ubuntu14.04.3虚拟机安装Oracle Rac,其他的版本3.x和5.0.2(至2015-08-30)均不可以
virtualbox谨记:win7上只有4.3.x的版本支持ubuntu14.04.3虚拟机安装Oracle Rac,其他的版本3.x和5.0.2(至2015-08-30)均不可以
- alibaba的JSON.toString会把值为null的字段去掉,谨记
alibaba的JSON.toString会把值为null的字段去掉,谨记 Map<String,Object> map = new HashMap<>(); map.put( ...
- 搞IT产品,请谨记Mobile First
我们在哪儿? 作为一名企业IT的老鸟,发现一个比较有意思的事情,就是我们的企业IT产品,仍然投入大量的精力,在基于PC的WEB端的设计和交付上,而在APP上的,移动端的考虑,一直都是在PC搞完之后,再 ...
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...
- 【M16】谨记80-20法则
1.开始编写代码时,不要过多考虑效率,而应该首先考虑逻辑的清晰性和代码的可读性. 2.后期通过测试找到效率的瓶颈所在,而不是靠猜测.然后,针对性地去解决.也就是80%的时间去解决这20%的代码.
- Git安装和使用(谨记)
刚开始用git的小白适用,,转自http://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下 ...
- 指针超强汇总(谨记优先级:() > [] > *)
参考:http://blog.chinaunix.net/uid-20120277-id-5760985.html C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则 ...
随机推荐
- PHP中HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR使用详解
1.REMOTE_ADDR:浏览当前页面的用户计算机的ip地址 2.HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关 3.HTTP_CLIENT_IP:客户端的ip 在PHP ...
- Weakness and Poorness CodeForces - 578C 三分搜索 (精度!)
You are given a sequence of n integers a1, a2, ..., an. Determine a real number x such that the weak ...
- Visual Assist X破解版安装(vs2010助手)
从网上下载了Visual Assist X 版本号的破解版,安装文件夹为默认的c://program files/Visual Assist X/,当我把破解的VA_X.dll粘贴到该文件夹下,VC+ ...
- STM8S PWM 应用 呼吸灯
//主功能接受:使用MCU STM8S105C6 的PWM通道2 PC2 来做呼吸灯 已经验证OK,呵 //呵,这个PWM设置刚開始用还是有点麻烦,由于是自己摸索.花点时间.还是解决了 . //所用子 ...
- 从打击App刷榜看苹果的底线
这两天苹果打击App刷榜者的消息刷屏了,从腾讯科技.appying多个媒体渠道看到,<安居客>.<友秘>.<微在>.<秦时明月2>.<悟空与貂蝉& ...
- Android studio一些设置项
------Appearance选项------------------------------------------------------------- Cylic scrolling in l ...
- 处理new分配内存失败情况
转自:http://www.51testing.com/html/70/n-827070.html 在C++语言中,我们经常会使用new给一个对象分配内存空间,而当内存不够会出现内存不足的情况.C++ ...
- 常用的java方法,为程序添点小功能
一.生成随机数 Random类使用示例 使用Random类,一般是生成指定区间的随机数字,下面就一一介绍如何生成对应区间的随机数字.以下生成随机数的代码均使用以下Random对象r进行生成: Rand ...
- MT4调用Windows API进行文件读写操作
/*导入相关函数*/ #import "kernel32.dll" int CreateDirectoryW(string directoryName,int type); int ...
- [BZOJ 1698] 荷叶池塘
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1698 [算法] 最短路 [代码] #include<bits/stdc++.h ...