先看如下代码:
PreparedStatement pstmt = conn.prepareStatement(sql);
//执行查询
pstmt.executeQuery(sql);
//执行更新
pstmt.executeUpdate(sql);
使用上面的代码在不同数据库中分别出现错误如下:
(1)Oracle
执行查询:ORA-03115: unsupported network datatype or representation
执行更新:ORA-01008: not all variables bound
(2)MySQL
MySQL Exception:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
(3)SQLServer
SQLServer 2000 Exception: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid call Statement method: {0}
原因:PreparedStatement在创建时已经缓存了sql语句,以便后面设置参数,所以你在执行查询或更新时在附加sql语句,像这样:pstmt.executeQuery(sql),就不会设置参数,导致报错!
分享到:
相关推荐
主要介绍了Java使用PreparedStatement接口及ResultSet结果集的方法,结合实例形式分析了PreparedStatement接口及ResultSet结果集的相关使用方法与操作注意事项,需要的朋友可以参考下
在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个...
//使用executeupdate方法添加信息(注意括号和单双引号的打法) //使用preparedstatment进行数据库事务的预处理 psta= connection.prepareStatement(sqlstr); psta.setString(1, username);
1.多使用PreparedStatement代替Statement这样可以避免在拼接字符串的时候出现 "select * from emp where name = '"+name+"'"单引号过多的情况 2 sql语句过长的时候尽量避免使用sql="str1"+"str2"; 而使用...
首先注意Statement 和PreparedStatement的问题 Statement sm = cn.createStatement(); sm.addBatch(sql1); sm.addBatch(sql2); … sm.executeBatch() 用Statement的好处就是每次可以直接传一个SQL语句进去,不用管...
5.8.1 使用继承的注意点 155 5.8.2 利用组合实现复用 156 学生提问:使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大? 159 5.9 初始化块 159 5.9.1 使用初始化块 ...
PreparedStatement ResultSet Spring的JdbcTemplate: Spring中对jdbc的简单封装 Apache的DBUtils: 它和Spring的JdbcTemplate很想,也是对Jdbc的简单封装 以上这些都不是框架 JDBC是规范 Spring的...
c3p0 c3p0是成熟的,高度并发的JDBC连接池库,支持缓存和重用PreparedStatements。 您可以选择根据或获得许可。 c3p0现在在维护。... 注意: c3p0在通过Sonatype的Central Security Project报告安全漏洞方面具有丰
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch() throws SQLException Adds a set of ...
因为很多人没有注意到这点,学完 Java 基础语言就直接去学 J2EE,有的甚至鸭子赶架,直接使用起 Weblogic 等具体 J2EE 软 件,一段时间下来,发现不过如此,挺简单好用,但是你真正理解 J2EE 了吗?你在具体案例中的...
4:抽象:忽略与当前主题无关的那些方面,将注意力集中在与当前目标有关的方面 运行时异常和一般异常有何异同? 答:运行时异常时(JVM)java虚拟机在运行过程中发生的问题,比如:内存溢出等问题。这类异常没法...
使用switch时有哪些注意事项 instanceof有什么作用 什么是不可变类 类型转换 Math类的round,ceil和floor方法 值传递和引用传递有什么不同? char型变量是否可以存储一个中文汉字 s=null和s=” ”是否相同 new String...
│ Java面试题34.jdbc中preparedStatement比Statement的好处.mp4 │ Java面试题35.数据库连接池的作用.mp4 │ Java面试题36.HTML.mp4 │ Java面试题37.简单介绍了一下Ajax.mp4 │ Java面试题38.js和JQuery的关系.mp4...
JAVA程序设计实验报告 ... " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "报告提交日期 " " (注意:内容写不下时可另附页。) 附: // DBconfig.java(续) /** * 建立连接 * @return conn */ pub
9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中...
在代码中添加 注意:引的包全是sql包 引完后会报异常,抛出异常即可 如出现这个问题 解决⽅法: <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.7</version> <scope>...
使用时候还应注意什么? 14 6、short s1=1;s1=s1+1;有什么错?short s1 = 1;s1+=1 有什么错? 14 7、char为什么能存贮一个汉字? 15 9、final关键字的用法? 15 10、静态变量和实例变量的区别? 15 11、面向对象的...
031311_【第13章:Java类集】_Map接口使用的注意事项笔记.pdf 031312_【第13章:Java类集】_IdentityHashMap类笔记.pdf 031313_【第13章:Java类集】_SortedMap类笔记.pdf 031314_【第13章:Java类集】_集合工具类:...
查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...