У меня есть следующий Cassandra таблица "пользователи", определенные в пространстве ключей "chemdb"Cassandra JDBC ошибка preparedstatment
CREATE TABLE users (
userid text PRIMARY KEY,
passwd text,
fname text,
lname text,
creationdate timestamp,
isactive text
);
Я создал класс Java JDBConnec.java
для подключения JSP с Кассандрой использованием JDBC:
package dbclasses;
import java.sql.*;
import java.lang.*;
import java.io.*;
public class JDBConnec {
public Statement stmt=null;
public ResultSet rs=null;
public Connection con=null;
public PreparedStatement pstmt = null;
public JDBConnec()
{
try
{
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
con = DriverManager.getConnection("jdbc:cassandra://127.0.0.1:9160/chemdb","okkkkk","12345");
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
}
}
}
Вышеупомянутый класс успешно компилируется.
Однако в моем файле JSP, когда я использую следующий код, чтобы выбрать запись из базы данных с помощью PreparedStatements, я получаю ниже упомянутые ошибки:
JDBConnec db = new JDBConnec();
String query = "select * from users where userid=?";
db.pstmt = db.con.prepareStatement(query);
db.pstmt.setString(1, "henry");
db.rs = db.pstmt.executeQuery();
Это дает следующее сообщение об ошибке
InvalidRequestException(why:Undefined name userid in where clause ('userid EQ ?'))
Поддерживает ли драйвер cassandra jdbc готовые сборки в jsp? Любые мысли о том, почему эта ошибка происходит. Заранее спасибо.
Cassandra версия: 2.0.8 Java: 7 Apache Tomcat: последние скачал вчера
Что такое одинарные кавычки в «Генри»? Это должно быть скорее «Генри». –
извините, что я ошибочно поставил код копирования-вставки здесь. В коде я использовал строковую переменную. –
Похоже, что идентификатор пользователя не распознается. Убедитесь, что userid - это именно тот столбец, который вы ищете в базе данных. –