来源于: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. 在mybatis中写sql语句的一些体会

    本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...

  2. 关于在Java代码中写Sql语句需要注意的问题

    最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...

  3. java中的sql语句中如果有like怎么写

    我先是在SQL server中写了如下语句: 这样是顺利执行的,可是我把这句话复制到Java代码中打出来却报错了, 刚开始我还以为是前端没有传回来值,待我一句一句打印发现,它提示我rs没有next.到 ...

  4. 在myeclipse中写sql语句的细节问题

    注意类型,varchar 和int  在java中表示为sql语句中的细微区别!! 下面的REGISEAT_NUM为int 类型       custid为varchar类型 String sql1= ...

  5. MYSQL中写SQL语句,取到表中按ID降序排列(最新纪录排在第一行)

    'select * from bugdata where id>0 order by id desc'

  6. delphi中写SQL语句中变量的注意事项

    1.procedure TForm1.btn1Click(Sender: TObject); var   s: String; begin   S := 'select * from TMarketI ...

  7. mybatis注解中写SQL语句

    参考: https://blog.csdn.net/gebitan505/article/details/54929287/https://blog.csdn.net/KingBoyWorld/art ...

  8. Excel 中使用sql语句查询

    将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和 ...

  9. EntityFramework中使用sql语句

    https://blog.csdn.net/yangyangafan/article/details/77602133 EntityFramework操作数据库谜一般的方便还不用写数据库,但前提是很简 ...

随机推荐

  1. 利用Squid + DNSPOD 搭建CDN服务器

    首先下载squid for windows安装包 squid-2.7.STABLE5-bin.zip 然后解压缩,放到C盘squid目录内. 进入目录C:\squid\etc内,将所有文件的.defa ...

  2. Tomcat集群Spring+Quartz多次执行解决方案记录

    由于在集群环境下定时器会出现并发和重复执行的问题,我再三考虑记录有5 一.把定时器模块单独拿出来放到一台tomcat或者新建一个Java工程手动启动定时器,这样定时器的任务就可以从原来的集群中抽离开来 ...

  3. maven中net.sf.json报错的解决方法

    今天在用maven添加net.sf.json的jar包的时候,代码如下: <dependency> <groupId>net.sf.json-lib</groupId&g ...

  4. Cesium随笔(5)CZML介绍(介个文章是转的嘿嘿)【转】

    通过czml可以在cesium上实现非常棒的动态效果 (1)Cesium Language (CZML) 入门--CZML Structure(CZML的结构) 原文地址:https://github ...

  5. 3 Sum leetcode java

    题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al ...

  6. ifconfig无输出的解决办法

    问题 执行 ifconfig 命令无任何报错,也无任何输出信息 [root@linuxprobe ~]# ifconfig [root@linuxprobe ~]# 排错 1. 检查PATH变量 [r ...

  7. PCL学习笔记二:Registration (ICP算法)

    原文:http://blog.csdn.net/u010696366/article/details/8941938 PCL Registration API Registration:不断调整,把不 ...

  8. POJ2762 Going from u to v or from v to u? 强连通+缩点

    题目链接: poj2762 题意: 给出一幅单向图.问这张图是否满足   随意两点ab 都能 从a到达b 或  从b到达a 题解思路: 推断一幅图是否满足弱连通 首先想到的是将图中的 强连通分量(能互 ...

  9. idea丢失svn解决办法

    今天打开Idea,习惯用ctrl+t来更新svn,杯具出现了,快捷键失效了,我觉得可能是其他的什么软件占用了这个快捷键,于是把qq,微信,rtx,各种软件都关掉,发现还是不好使,于是重启了一下,发现还 ...

  10. Eclipse开发Android的配置(包括ADT安装,SDK配置)

      1. 下载Android SDK http://code.google.com/android/download.html下载后直接解压就可以使用了. 为了在DOS控制台中直接使用SDK的工具,可 ...