我必须从一个属性中读取下面的SQL语句.update scoreconfig set scorestatus=0 where scoreversion=props.getProperty(scoreversion);分数版本的值我将从其他属性文件中获取它.但是,当我在java函数中准备一个语句...
我必须从一个属性中读取下面的SQL语句.
update scoreconfig set scorestatus=0 where scoreversion=props.getProperty("scoreversion");
分数版本的值我将从其他属性文件中获取它.
但是,当我在java函数中准备一个语句时如下:
final String query = strLine;
PreparedStatement ps=con.prepareStatement(query);
查询的位置
update scoreconfig set scorestatus=0 where scoreversion=props.getProperty("scoreversion");
但我明白了
Error: ORA-00911: invalid character
…当我做ps.execute();
解决方法:
我认为道具是一个Properties实例或类似的.如果是这样,props.getProperty(“scoreversion”)部分意味着发生在Java层,而不是数据库中.代替:
String sql = "update scoreconfig set scorestatus=0 where scoreversion=?";
PreparedStatement ps = con.prepareStatement(sql);
// If scoreversion is a String:
ps.setString(1, props.getProperty("scoreversion"));
ResultSet rs = ps.executeQuery();
…或者如果scoreversion是int,请使用this而不是setString行:
// It scoreversion is an int:
ps.setInt(1, Integer.parseInt(props.getProperty("scoreversion")));
……等,适当转换.
基本上,当你使用prepareStatement时,你使用?参数应该去哪里,然后在PreparedStatement实例上使用setXyz来设置这些参数. (奇怪的是,它们从1开始,而不是0.)请注意,即使参数是String,也不要在传入prepareStatement的SQL中放置引号;这是为你处理的(以及正确转义该字符串以防止SQL injection,所以PreparedStatement和setXyz是你的朋友,你会很好地了解它们).
本文标题为:在Java函数中执行SQL语句
基础教程推荐
- Java实现截取字符串的操作详解 2023-03-06
- Java实现添加,读取和删除Excel图片的方法详解 2022-12-02
- Java实现世界上最快的排序算法Timsort的示例代码 2023-02-10
- AQS同步组件CyclicBarrier循环屏障用例剖析 2023-04-06
- 如何在Java中创建进度条 2023-10-08
- JUC系列学习工具类CountDownLatch详解 2023-04-17
- 一文搞懂Spring循环依赖的原理 2023-02-27
- 【深入Java虚拟机(1)】:Java内存区域与内存溢出 2023-09-01
- Java 流处理之收集器详解 2023-05-18
- jsp中获得路径的两种方法和获得url路径的方法(推荐) 2023-08-01
