如果我执行:
Connection conn = null;
PreparedStatement LoginStatement = null;
ResultSet LoginResult = null;
UpdateData();
String LoginQuery = "SELECT * FROM USERS WHERE USER_NAME = ? AND PASSWORD = ? ";
try{
System.out.println(LoginQuery);
conn = DatabaseConnection.getDBCon();
LoginStatement = conn.prepareStatement(LoginQuery);
LoginStatement.setString(1, "ett");
LoginStatement.setString(2, "ett");
LoginResult = LoginStatement.executeQuery(LoginQuery);
我收到异常:63000 - ORA-03115:不支持的网络数据类型或表示
如果我改变了吗?到'?'
Connection conn = null;
PreparedStatement LoginStatement = null;
ResultSet LoginResult = null;
UpdateData();
String LoginQuery = "SELECT * FROM USERS WHERE USER_NAME = '?' AND PASSWORD = '?' ";
try{
System.out.println(LoginQuery);
conn = DatabaseConnection.getDBCon();
LoginStatement = conn.prepareStatement(LoginQuery);
LoginStatement.setString(1, "ett");
LoginStatement.setString(2, "ett");
LoginResult = LoginStatement.executeQuery(LoginQuery);
我得到了
例外:99999 - UngültigerSpaltenindex
这基本上意味着错误的列索引。
这不是真的,我设置了索引1和2,并且有2个占位符,索引以1开头....任何想法?
答案 0 :(得分:3)
简单地:
array_reduce
必须是
executeQuery(LoginQuery); // Statement
有点可怕的API设计和错误消息。
另外,PASSWORD是保留字,请尝试
executeQuery(); // PreparedStatement
答案 1 :(得分:1)
将您的代码更改为
LoginResult = LoginStatement.executeQuery();
您可以在此处查看有关第一个例外的更多信息java.sql.SQLException: ORA-03115: unsupported network datatype or representation
答案 2 :(得分:0)
使用executeQuery()代替executeQuery(LoginQuery)
;
无需将?
更改为'?'
答案 3 :(得分:0)
executeQuery(String query)
方法。使用executeQuery()
答案 4 :(得分:0)
请注意以下呼叫之间的区别:
// PreparedStatement的
PreparedStatement.executeQuery();
//通常用于存储过程
//声明
bool res = Statement.execute(String sql);
ResultSet rs = Statement.executeQuery(String sql);