如何在java中使用jdbc prepared语句读取sqlite文本列?

时间:2016-06-15 01:21:54

标签: java sqlite jdbc

这是我的sqlite表

CREATE TABLE hello ( 
    id INTEGER PRIMARY KEY AUTOINCREMENT,  
    import_data text,  
    export_data text
);

这是我的java代码

Connection sqliteConnection = DriverManager.getConnection(db);
PreparedStatement preparedStatement = sqliteConnection.prepareStatement("select * from hello where export_data = ?;");
preparedStatement.setString(1, "ABD19E3C63"); // hex string
  ResultSet resultSet = preparedStatement.executeQuery();
  resultSet.next();
  importData  = resultSet.getString("import_data");
  System.out.println(importData); // prints nothing although I checked in the sqlite database that it exists.

所以importData什么都不打印,虽然我可以在sqlite数据库中看到它存在。不确定为什么?

sqlite查询

select hex(import_data) from hello where hex(export_data)="ABD19E3C63"; // This works

上述查询在sqlite中有效,但我将两列都声明为文本

2 个答案:

答案 0 :(得分:0)

你应该试试吗?

PreparedStatement preparedStatement = sqliteConnection.prepareStatement("select * from hello where hex(export_data) = ?;");

答案 1 :(得分:-1)

您应该使用循环语句,如下所示。

var clone = $("#my_form").clone();
clone.find("input:last").remove();
var formData = new FormData(clone[0]);