我需要在Android应用程序上使用数据库,因为在使用时用户将无法访问Internet。为此,我想通过JDBC与SQL Lite建立数据库连接。经过一些研究后,我发现Android API不支持它,但有一个项目可以做到这一点:SQLDroid
我下载了jar并遵循主要教程,但是当我想与DriverManager创建连接时,我一直收到sql异常java.sql.SQLException: No suitable driver
。
String url = "jdbc:sqldroid:" + "/data/data/com.mypackage.droid" + "/main.sqlite";
Connection con = DriverManager.getConnection(url);
我做错了什么? 顺便说一下,我的活动名为“AndroidActivity”,包名为com.mypackage.droid。
编辑:完整代码:
public class AndroidActivity extends Activity {
String url = "jdbc:sqldroid:" + "/data/data/com.mypackage.droid" + "/main.sqlite";
static Connection con;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Class.forName("SQLite.JDBCDriver");
con = DriverManager.getConnection(url);
} catch (java.sql.SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:2)
您是否声明:
Class.forName("SQLite.JDBCDriver");
在声明连接之前?
修改强>
抱歉,我想,你想使用原生的Android JDBC驱动程序。在这种情况下,这将是我的方法。
但是由于你使用的是带有自己驱动程序的SQLDroid库,你必须先用smth注册驱动程序。像:
Class.forName("org.sqldroid.SqldroidDriver").newInstance();
答案 1 :(得分:1)
使用sqldroid-1.0.0RC1.jar我正在使用
Class.forName("org.sqldroid.SqldroidDriver");
con = DriverManager.getConnection(url);
有时驱动程序可以通过drivermanager加载,有时会失败。
作为一个工作,我直接使用SQLDroidDriver,这一直都有用。
con = new org.sqldroid.SQLDroidDriver().connect(url , new Properties());