出现异常:ORA-01008: 并非所有变量都已绑定,调试调了很久都不知道咋回事
出现错误:ORA-01008: 并非所有变量都已绑定,调试调了很久都不知道怎么回事
调试调了很久都不知道怎么回事,调了一个下午了。。。
网上百度了很久,大概的意思都是标点符号的那些可能错了,但是我看来看去都没有错吖。。。
怎么回事??
------解决方案--------------------
values中的“?”是preState.setString(1, "asda");来绑定参数的?
不是age么?
package preparedDemo;
//学习数据库很简单的,就只有四个步骤:1.加载驱动;2.链接数据库;3.操作数据;4.关闭数据库;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class PreExcuteUpdateJDBC {
//驱动程序就是之前在classpa中配置的jdbc的驱动程序的jar包中;
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
//链接地址是由各个数据库生产商单独提供的,所以需要单独记住
public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:zhu";
public static final String DBUSER = "scott";//连接数据库用户
public static final String DBPASS = "tiger";//连接数据库密码
public static void main(String[] args)throws Exception{
Connection conn = null;//表示数据库的连接的对象
String sql = "INSERT INTO person(pid,name,age,birthdat,salary) VALUES(2,'ad',?,to_date('1992-01-06','YYYY-MM-DD'),4532.0) ";
Class.forName(DBDRIVER);//1.使用Class加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);//2.连接数据库
PreparedStatement preState = conn.prepareStatement(sql);//3.操作数据
preState.setString(1, "asda");
printf(sql);
preState.executeUpdate(sql);
preState.close();
conn.close(); //4.关闭数据库;
}
public static void printf(Object obj){
System.out.println(obj);
}
}
调试调了很久都不知道怎么回事,调了一个下午了。。。
网上百度了很久,大概的意思都是标点符号的那些可能错了,但是我看来看去都没有错吖。。。
怎么回事??
------解决方案--------------------
values中的“?”是preState.setString(1, "asda");来绑定参数的?
不是age么?