无法连接到SQLite数据库
问题描述:
try {
con = DriverManager.getConnection("jdbc:sqlite:db/Freepark.sqlite");
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("error al buscar la base de datos");
}
我想在SQL数据库上做我的第一次查询,但是我遇到问题连接到它,我认为问题是确定的URL,项目名称是BaseTest并在项目文件夹内我有一个名为数据库的子文件夹,里面它是Freepark.sqlite。当我运行该项目时,出现println消息,所以我知道问题在于url。像class.forName之类的东西已经在这个代码示例之上完成了。无法连接到SQLite数据库
答
你为什么不尝试要么投入名称与相对路径\这样的:DB \ Freepark.sqlite
,或者也可以尝试在sqlite的文件的完整路径。
也包括你的语句来启用sqlite的,如驱动程序之前。
Class.forName("SQLite.JDBCDriver").newInstance();
或
Class.forName("org.sqlite.JDBC");
答
使用这个例子
进口的java.sql。*;
公共类的测试{
公共静态无效的主要(字串[] args)抛出异常{
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists people;");
stat.executeUpdate("create table people (name, occupation);");
PreparedStatement prep = conn.prepareStatement(
"insert into people values (?, ?);");
prep.setString(1, "Gandhi");
prep.setString(2, "politics");
prep.addBatch();
prep.setString(1, "Turing");
prep.setString(2, "computers");
prep.addBatch();
prep.setString(1, "Wittgenstein");
prep.setString(2, "smartypants");
prep.addBatch();
conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);
ResultSet rs = stat.executeQuery("select * from people;");
while (rs.next()) {
System.out.println("name = " + rs.getString("name"));
System.out.println("job = " + rs.getString("occupation"));
}
rs.close();
conn.close();
}
}
这是一个非常不好的习惯吞下例外。发生了什么异常?你需要类似e.printStackTrace(); – Paul 2010-12-05 19:55:24