У меня есть программа, которая выбирает из базы данных данные таблицы и столбца.SQLite Query с параметрами, не работающими в Java
public void selectAllFrom(String table, String column){
String sql = "SELECT ? FROM ?";
try (Connection conn = this.connect();
PreparedStatement pstmt = conn.prepareStatement(sql)){
pstmt.setString(1, column);
pstmt.setString(2, table);
ResultSet rs = pstmt.executeQuery();
while (rs.next()){
System.out.println(rs.getString(column));
}
} catch (SQLException e){
System.out.println(" select didn't work");
System.out.println(e.getMessage());
}
}
По какой-то причине он не работает, и это происходит прямо на улов
Вот подключение функции(), а также:
private Connection connect(){
Connection conn = null;
// SQLite connection string
String url = "jdbc:sqlite:C:/sqlite/db/chinook.db";
try{
// creates connection to the database
conn = DriverManager.getConnection(url);
System.out.println("Connection to SQLite has been established");
} catch (SQLException e){
System.out.println(e.getMessage());
System.out.println("Connection didn't work");
}
return conn;
}
Я знаю, что проблема заключается не в с базой данных, потому что я могу запускать другие запросы выбора без параметров. Это параметры, которые дают мне проблему. Может ли кто-нибудь сказать, в чем проблема?
Любопытный ... Почему бы вам даже потрудился пройти через все это беспорядок, когда это гораздо проще просто место ваши переменные непосредственно в строку SQL, как предложил @Gurwinder Singh. – DevilsHnd