java中写sql语句的小小细节
来源于:http://www.cnblogs.com/reine98/p/6180472.html
看如下一条sql语句
1
2
3
4
5
6
|
String sql="SELECT * FROM bookBasicInfo,bookTypeInfo
WHERE bookBasicInfo.BelongType=bookTypeInfo.BookTypeID
AND bookBasicInfo.bookName like ? AND" +
"bookBasicInfo.BelongType=?" ;
ps.setString( 1 , "%" +bookName+ "%" );
ps.setInt( 2 , typeId);
|
这是一条根据图书名称和图书类型进行查询的sql语句,可能咋一看并没有什么毛病,如果将
上述sql语句在java环境中执行会抛出如下异常
java.sql.SQLException: ORA-00933: SQL 命令未正确结束
这个问题的错误原因,就是一个空格的问题,由于sql过长,用+进行拼接,但是在用+进行拼接的时候是原样进行拼接,
在“+”那处,会变成
...bookBasicInfo.bookName like ? ANDbookBasicInfo.BelongType=?
这样的sql在执行的过程中,当然会报错啦!
解决方式:只需要在最后一个AND后面或者bookBasicInfo.BelongType前面添加“空格”,问题解决了
如果不细细的观察sql语句,这个错误是非常难以发现的。
如果在开发过程中出现这样的问题,可能需要耗费我们很多时间
java中写sql语句的小小细节相关推荐
- java sql范围查询语句,java类中写sql语句,查询条件包含换行
java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...
- java mysql查询字段换行,java类中写sql语句,查询条件包含换行
java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...
- java中的sql语句书写_Java中sql语句之通配符*
在java中执行SQL语句要特别注意通配符的问题,否则是不会成功的: 在ACCESS中的通配符是* 例:select * from student where name like '张*' ...
- ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来
ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来,一般都要写成: [TableName].FieldName,否则较长的中文名表名可能会被不识别.
- python中写sql语句添加for循环和变量。(一种SQL引入循环的思想实现)
为了减少代码的冗余,和脚本的运行可以在服务器上自动化,选择在sql语句中加入循环和变量.mysql常见的三种循环方式:while.repeat和loop循环.没有for,但为了方便需要引入for循环, ...
- java绑定变量怎么加_在JAVA 源程序中编写SQL语句时使用ORACLE 绑定变量
在JAVA中的SQL 语句的编写方面,没有使用ORACLE 绑定变量,很大程度上降低了数据库的性能,表现在两个方面: 1.SQL语句硬分析(Hard Parse)太多,严重消耗CPU资源,延长了SQL ...
- 【8008】解决idea中JDBC写sql语句出现报错Unable to resolve table ‘表名‘?
[8008]解决idea中写sql语句出现报错Unable to resolve table '表名'? 问题背景: 昨天使用JDBC连接数据库中写sql语句,一直爆红,真服了,虽然能运行,但看着不舒 ...
- mysql怎么写sql语句_Navicat如何写sql语句
sql是操作数据库中数据的语句,在不同的数据库中会略有不同.Navicat for MySQL是一款很方便的MySQL客户端工具,能够很好的提供操作数据库可视界面,在同类型的软件中,占有极高的市场份额 ...
- java中sql模糊查询_模糊查询的sql语句(java模糊查询sql语句)
模糊查询的sql语句(java模糊查询sql语句) 2020-07-24 11:06:02 共10个回答 假设表名为product,商品名为name,简界为remark.则可如下写:select[na ...
最新文章
- AI 如何推进全球可持续发展?
- 《大话设计模式》--代理模式
- git 第三天 SSH免密码登录 2
- SOA与微服务基本原则及对比
- C++找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)
- GDCM:gdcm::Command的测试程序
- foxmail邮件加载失败重试_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)...
- QGIS 3.4 3.6 另存栅格图层到GeoPackage出现覆盖问题 解决方案
- C Primer Plus (第6版) 读书笔记_Chapter 1
- 模板方法(Template Method)
- Python生成二维码-qrcode
- RabbitMQ之Topic交换器模式开发
- 机器学习决策树_机器学习-决策树 Decision Tree
- win7 任务计划 任务映像已损坏或篡改(异常来自HRESULT:0x80041321)
- 数学建模国赛 2020B-穿越沙漠 第一关 Lingo 和 C语言 动态规划求解
- ATP-EMTP电缆LCC模型中相数与电缆数的设置
- 华三ASPF技术白皮书
- 20小时快速学习【系统动力学】
- 软件设计与体系结构:设计过程
- 脸书隐藏了未能阻止滥用技术的官僚主义报道的失败
热门文章
- 若依集成aj-captcha实现滑块验证码(单体版)
- 若依如何实现翻页保留选择?
- html清除div浮动,HTML_清除浮动的最优方法:CSS,在CSS森林群里讨论一个margin的 - phpStudy...
- CSS 滤镜学习小结
- Alibaba Druid 源码阅读(三) 数据库连接池初始化探索
- 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...
- java newtonsoft.json_Newtonsoft.Json 的序列化与反序列化
- java button随机颜色_Javascript点击按钮随机改变数字与其颜色
- 代码质量度量标准_Google研发度量改进实践
- inkscape生成g代码_UG NX车削加工编程实例,从创建车削加工到生成G代码,简简单单...