Я столкнулся с проблемой выдачи очень простого выбора с использованием SQLite и java в MacOS.
вот мой код:
public class TestJDBC1
{
public static Connection connect_DB() throws ClassNotFoundException {
Class.forName("org.sqlite.JDBC");
Connection conn = null;
try {
// db parameters
String url = "jdbc:sqlite:/Users/Shared/DB_Farmaci/oracle-sample.db";
// create a connection to the database
conn = java.sql.DriverManager.getConnection(url);
System.out.println("Connection a SQLite stabilita.");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
public static void main( String[] args ) throws ClassNotFoundException, InterruptedException, SQLException
{
Connection conn = connect_DB();
try
{
conn.setAutoCommit(false);
} catch (SQLException ex) {
Logger.getLogger(TestJDBC1.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
Statement S = null ;
ResultSet rs = null ;
S = conn.createStatement();
String queryS = "select deptno, dname, loc from dept ;" ;
rs = S.executeQuery(queryS);
S.close();
conn.close();
int x = 0;
while (rs.next())
{
x++;
System.out.println(rs.getInt("deptno") + "\t" +
rs.getString("dname") + "\t" +
rs.getDouble("loc"));
}
if (x > 0)
{
System.out.println("# rows returned => " + x);
} else
{
System.out.println("no rows returned");
}
} catch (SQLException se) {
System.out.println(se);
System.out.println("errore DB");
}
}
Как видите, это действительно просто, но не возвращает никаких данных.
Моя среда выглядит следующим образом:
- NetBeans 8,2
- sqlite-jdbc-3.21.0.jar (текущая версия)
Используя подобный код, я могу создавать таблицы и вставлять строки в БД, поэтому настройка среды должна быть в порядке (Свойства => Библиотеки => как при компиляции, так и при запуске).
Я также попробовал Eclipse, с тем же отрицательным результатом. Я также попробовал все обратные версии драйверов JDBC, которые я нашел, та же самая ситуация. Я использую DB Browser для SQLite 3.10.1 и могу читать данные, которые ищу.
У меня установлен Macite на моем Mac, и я могу читать данные с помощью команд командной строки.
Это похоже на неисправность драйвера, если я не пропустил что-то очень важное.