【软件系肖潇】解决使用DButils进行jdbc多表联合操作时抛出sql异常的问题
2017-12-12 20:02
393 查看
问题叙述:
使用DButils进行多表联合时抛出java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: 无法绑定由多个部分组成的标识符
代码如下:
将sql语句在数据库执行则正常显示,代码如下:
解决思路:
在sql 语句正确无误的前提下,执行方法抛出异常。所以考虑到sql正确,但是否符合dbutils的书写规范?
将数据库中语句粘贴至方法中进行对比,发现除属性位置之外没有任何不同。
得出初步结论,在使用DButils进行多表操作时,where后属性名的位置顺序要和from后表格的位置保持一致。
验证结论:
修改位置重新执行,编译通过。
使用DButils进行多表联合时抛出java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: 无法绑定由多个部分组成的标识符
代码如下:
public KindVO scanKindName(int productId) { String kindNameSQL = "SELECT [kind_name]" + " FROM [t_product] , [t_kind]" + " WHERE t_kind.[kind_id] = t_product.[kind_id]" + " AND t_product.[product_id] = ?"; KindVO kinvo = null; try { kinvo = qr.query(kindNameSQL, new BeanHandler<KindVO>(KindVO.class),productId); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return kinvo; }
将sql语句在数据库执行则正常显示,代码如下:
SELECT [kind_name] FROM [t_product] , [t_kind] WHERE t_kind.[kind_id] = t_product.[kind_id] AND t_product.[product_id] = 4
解决思路:
在sql 语句正确无误的前提下,执行方法抛出异常。所以考虑到sql正确,但是否符合dbutils的书写规范?
将数据库中语句粘贴至方法中进行对比,发现除属性位置之外没有任何不同。
得出初步结论,在使用DButils进行多表操作时,where后属性名的位置顺序要和from后表格的位置保持一致。
验证结论:
修改位置重新执行,编译通过。
相关文章推荐
- 解决使用OpenAI gym进行调试时抛出异常的问题
- 使用apache ant jar包 进行zip 打包操作 (解决中文问题)
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- hibernate使用原生sql查询Hibernate原生SQL多表查询字段名重复问题以及解决方法
- 本地开发使用JDBC时update操作失败的问题分析和解决
- 使用fat jar打包后抛出异常(sqljdbc签名引起)
- 基于CDH5.x 下面使用eclipse 操作hive 。使用java通过jdbc连接HIVESERVICE 创建表出现的问题及解决
- 使用JNDI配置数据池问题Cannot create JDBC driver of class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' f解决方法
- 通过转成SQL来进行查询,解决hql不能在distinct,group by结果集上使用count的问题
- 树莓派 Learning 002 装机后的必要操作 11 解决在使用SecureCRT软件链接树莓派时,SecureCRT软件的终端中显示树莓派的中文字体乱码的问题
- 使用hta在本地注入远程网页进行操作,解决hta不共享ie session和某些权限问题
- 解决tomcat上运行servlet使用jdbc异常的问题
- 使用zxing识别二维码时抛出com.google.zxing.NotFoundException异常问题的解决
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 使用MyEclipse 6.0连接SQL 2000和2005数据库(JDBC) 遇到的问题,急需解决
- 联合两个索引查询,已解决: 还有个进行多条件搜索 and 与 or 的操作
- 使用commons-dbutils进行JDBC项目开发
- 关于在java中连接MS SQL Server 2005 JDBC的问题及解决办法
- [网络问题,截图以后再传]本实验是设计性实验。目的在于使用关系数据库标准语言SQL,掌握视图和索引的操作。
- 完全卸载Microsoft SQL Server 2005软件,解决多次安装软件失败问题