来源于: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语句的小小细节相关推荐

  1. java sql范围查询语句,java类中写sql语句,查询条件包含换行

    java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...

  2. java mysql查询字段换行,java类中写sql语句,查询条件包含换行

    java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...

  3. java中的sql语句书写_Java中sql语句之通配符*

    在java中执行SQL语句要特别注意通配符的问题,否则是不会成功的: 在ACCESS中的通配符是* 例:select  *  from student  where  name like  '张*' ...

  4. ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来

    ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来,一般都要写成: [TableName].FieldName,否则较长的中文名表名可能会被不识别.

  5. python中写sql语句添加for循环和变量。(一种SQL引入循环的思想实现)

    为了减少代码的冗余,和脚本的运行可以在服务器上自动化,选择在sql语句中加入循环和变量.mysql常见的三种循环方式:while.repeat和loop循环.没有for,但为了方便需要引入for循环, ...

  6. java绑定变量怎么加_在JAVA 源程序中编写SQL语句时使用ORACLE 绑定变量

    在JAVA中的SQL 语句的编写方面,没有使用ORACLE 绑定变量,很大程度上降低了数据库的性能,表现在两个方面: 1.SQL语句硬分析(Hard Parse)太多,严重消耗CPU资源,延长了SQL ...

  7. 【8008】解决idea中JDBC写sql语句出现报错Unable to resolve table ‘表名‘?

    [8008]解决idea中写sql语句出现报错Unable to resolve table '表名'? 问题背景: 昨天使用JDBC连接数据库中写sql语句,一直爆红,真服了,虽然能运行,但看着不舒 ...

  8. mysql怎么写sql语句_Navicat如何写sql语句

    sql是操作数据库中数据的语句,在不同的数据库中会略有不同.Navicat for MySQL是一款很方便的MySQL客户端工具,能够很好的提供操作数据库可视界面,在同类型的软件中,占有极高的市场份额 ...

  9. java中sql模糊查询_模糊查询的sql语句(java模糊查询sql语句)

    模糊查询的sql语句(java模糊查询sql语句) 2020-07-24 11:06:02 共10个回答 假设表名为product,商品名为name,简界为remark.则可如下写:select[na ...

最新文章

  1. AI 如何推进全球可持续发展?
  2. 《大话设计模式》--代理模式
  3. git 第三天 SSH免密码登录 2
  4. SOA与微服务基本原则及对比
  5. C++找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)
  6. GDCM:gdcm::Command的测试程序
  7. foxmail邮件加载失败重试_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)...
  8. QGIS 3.4 3.6 另存栅格图层到GeoPackage出现覆盖问题 解决方案
  9. C Primer Plus (第6版) 读书笔记_Chapter 1
  10. 模板方法(Template Method)
  11. Python生成二维码-qrcode
  12. RabbitMQ之Topic交换器模式开发
  13. 机器学习决策树_机器学习-决策树 Decision Tree
  14. win7 任务计划 任务映像已损坏或篡改(异常来自HRESULT:0x80041321)
  15. 数学建模国赛 2020B-穿越沙漠 第一关 Lingo 和 C语言 动态规划求解
  16. ATP-EMTP电缆LCC模型中相数与电缆数的设置
  17. 华三ASPF技术白皮书
  18. 20小时快速学习【系统动力学】
  19. 软件设计与体系结构:设计过程
  20. 脸书隐藏了未能阻止滥用技术的官僚主义报道的失败

热门文章

  1. 若依集成aj-captcha实现滑块验证码(单体版)
  2. 若依如何实现翻页保留选择?
  3. html清除div浮动,HTML_清除浮动的最优方法:CSS,在CSS森林群里讨论一个margin的 - phpStudy...
  4. CSS 滤镜学习小结
  5. Alibaba Druid 源码阅读(三) 数据库连接池初始化探索
  6. 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...
  7. java newtonsoft.json_Newtonsoft.Json 的序列化与反序列化
  8. java button随机颜色_Javascript点击按钮随机改变数字与其颜色
  9. 代码质量度量标准_Google研发度量改进实践
  10. inkscape生成g代码_UG NX车削加工编程实例,从创建车削加工到生成G代码,简简单单...