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

  最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题。

  先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错。

1 String str = "insert into XXX(a,b,c) values (‘"a.getA()"‘,‘"a.getB()"‘,‘"a.getC()"‘);";

  研究了半天发现应该是连接字符串问题,第一次修改过后将赋值字段前后加“+”号来完成sql语句。改正后代码如下

1 String str = "insert into XXX(a,b,c) values (‘"+a.getA()+"‘,‘"+a.getB()+"‘,‘"+a.getC()+"‘);";

  原来在数据库中给字段动态赋值需要以‘“+···+”’的方式来完成。好的,编译后成功,将运行的str的结果值放入sql数据库中测试,没有问题,自以为一切ok了,结果运行时再次报错。这把自己困扰住了,反复测试,在数据库中用sql语句来对比,没有问题啊,现将我最后成功的代码放上来,大家看看有没有什么不同。

1 String str = "insert into XXX(a,b,c) values (‘"+a.getA()+"‘,‘"+a.getB()+"‘,‘"+a.getC()+"‘)";

  没错,就是最后的分号,原来在java语句中不能讲分号加入到普通的sql语句中,虽然在数据库中没有报错,但是在java中一定还是要注意这种小问题的。

时间: 2025-01-02 06:47:32

关于在Java代码中写Sql语句需要注意的问题的相关文章

mybatis中写sql语句时需要转义的字符

mybatis配置文件,sql语句中含有转义字符: 错误语句: select * from table_base where flag_topic  & #{topic_num} 错误信息: Caused by: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 54; The entity name must immediately follow the '&' in the entity reference. 正确语

mybatis注解中写SQL语句

参考: https://blog.csdn.net/gebitan505/article/details/54929287/https://blog.csdn.net/KingBoyWorld/article/details/78948304https://blog.csdn.net/lisulong1/article/details/40985589 原文地址:https://www.cnblogs.com/lvlin241/p/9313289.html

Excel 中使用sql语句查询

将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和"来自Microsoft query". Oracle数据源的配置 在Excel中,不管实现哪种方式的对那种数据库的访问都需要配置数据源ODBC. 步骤1:打开Microsoft ODBC管理器,点击选项"用户DSN"的"添加"按钮 图 11 步骤2

oracle和java中的sql语句

在调试代码的时候遇到这样一个问题,程序运行到sql语句就抛invalid character异常,那我只好把sql语句拷出来,在oracle中执行一下,然而并没有什么错,这可难坏我了,这样都找不到错误,这到底是啥问题,摸不着头脑,一个老程序员提醒了我,在java中,sql语句的最后不能加分号,去掉之后可以正常执行了.虽然这是一个小问题,但我从来没注意过,以后就不会犯这低级错误了,哈哈.

使用SQLQuery 在Hibernate中使用sql语句

session.createSQLQuery.转载 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.下面来描述如何使用这个API进行查询. 1.标量查询(Scalar queries) 最基本的SQL查询就是获得一个标量(数值)的列表. sess.createSQLQuery("SELECT * FROM CATS").list();sess.createSQLQuery("SELECT ID,

java执行多条SQL语句

一次执行多条SQL的技术要点如下: DatabaseMetaData接口是描述有关数据库的整体综合信息,由于DatabaseMetaData是接口,所以没有构造方法,故不能使用new来创建DatabaseMetaData对象,但是可以通过Connection的getMetaData()方法创建.例如:DatabaseMetaData md=con.getMetaData(). DatabaseMetaData类的supportsBatchUpdates方法用于判断此数据库是否支持批量更新.其返回

hibernate中使用sql语句进行表链接查询,对结果集的遍历方法

今天做了一个在hibernate中使用sql语句进行表链接查询的功能,得到的属性是来自两个表中的字段.下面对结果集遍历的方法进行记录. sql语句不写了.部分代码如下: List<Course_Material> list = new ArrayList<Course_Material>(); @SuppressWarnings("rawtypes") List accountList = query.list(); if(accountList.size()&

在Excel中使用SQL语句查询和筛选

本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQL语句实现精确查询>,觉得非常受用,分享给大家. 微博上有人回复评论说直接用vlookup.或者导入数据库进行查询处理就好了,岂不是更高效.更灵活:其实给人的第一直观感觉是这样子的,但是我们多想一步,这篇文章的应用场景.使用前提条件是什么?我想到的有以下几个方面:①数据量不是很大的时候:②数据结构导入数

Android如何在java代码中设置margin

习惯了直接在xml里设置margin(距离上下左右都是10dip),如: <ImageView android:layout_margin="10dip" android:src="@drawable/image" /> 只是有些情况下,需要在java代码里来写. API中,android.view.ViewGroup.MarginLayoutParams有个方法setMargins(left, top, right, bottom).可是View本身没