我想在Sqlite db
中使用Dynamic Web Project
。我正在使用sqlite4java来连接数据库。我已经创建了一个db文件,现在尝试从我的Dynamic Web Project访问它。代码是这样的 -
StringBuilder res = new StringBuilder();
SQLiteConnection db = null;
SQLiteStatement st = null;
try {
db = new SQLiteConnection(new File("dbfile.dbf"));
db.open();
st = db.prepare("SELECT * FROM tbl_Tblsignscores");
// st.bind(1, minimumQuantity);
while (st.step()) {
res.append(String.format("ID: %d, Score: %d \n",
st.columnInt(0), st.columnInt(1)));
// orders.add(st.columnLong(0));
}
} catch (Exception ex) {
} finally {
st.dispose();
db.dispose();
}
return res.toString();
但是连接始终在db.open()
处失败。它表示Nullpointerexception。我尝试将dbfile放在web-inf>lib
,web-int
项目根目录中,但似乎没有任何效果。有人能指出我正确的方向吗?
答案 0 :(得分:1)
我也像你的ploblem。我用自己的解决方案修复了它,但我不确定它是不是很好的解决方案。解决方案是使用class-path
。
Web应用程序目录struture
- app-root
- WEB-INF
- classes
- mydb.db
程序
protected Connection getConnection() {
Connection con = null;
try {
Class.forName("org.sqlite.JDBC");
con = DriverManager.getConnection("jdbc:sqlite:" + this.getClass().getResource("/").getPath() + "/mydb.db");
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
return con;
}
现在,我不需要担心丢失db
文件。它在我的类路径目录中是肯定的。