2010-12-03 136 views
0
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數據庫

+0

這是一個非常不好的習慣吞下例外。發生了什麼異常?你需要類似e.printStackTrace(); – Paul 2010-12-05 19:55:24

回答

1

你爲什麼不嘗試要麼投入名稱與相對路徑\這樣的:DB \ Freepark.sqlite

,或者也可以嘗試在sqlite的文件的完整路徑。

也包括你的語句來啓用sqlite的,如驅動程序之前。

Class.forName("SQLite.JDBCDriver").newInstance(); 

Class.forName("org.sqlite.JDBC"); 
0

使用這個例子

進口的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(); 

}

}