本文介绍了Android上的SQLite JDBC驱动程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正尝试使用 xerial sqlite-jdbc 在Android中管理我的数据库,但没有成功.我遇到了java.lang.NoClassDefFoundError: org.sqlite.SQLiteConnection异常.我已将此依赖项'org.xerial:sqlite-jdbc:3.18.0'导入了我的摇篮. 我的代码如下,
I'm trying to use xerial sqlite-jdbc to manage my database in Android with no success.I'm getting an java.lang.NoClassDefFoundError: org.sqlite.SQLiteConnection exception.I've imported this dependency 'org.xerial:sqlite-jdbc:3.18.0' in my gradle. My code is as follows,
try { Class.forName("org.sqlite.JDBC"); Connection connection = DriverManager.getConnection("jdbc:sqlite:hs.db"); } catch (ClassNotFoundException eString) {System.err.println("Could not init JDBC driver - driver not found"); } catch (java.sql.SQLException e) {e.printStackTrace();}在我的项目中不能使用android.database.sqlite,因此请不要提出答案.
Using android.database.sqlite in my project is not option so please don't suggest that as an answer.
推荐答案Gradle
compile 'org.sqldroid:sqldroid:1.0.3'JAVA
import java.sql.DriverManager; import java.sql.Connection; import java.sql.Driver; import java.sql.SQLException; public class MainActivity extends AppCompatActivity { private Connection connection; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { DriverManager.registerDriver((Driver) Class.forName("org.sqldroid.SQLDroidDriver").newInstance()); } catch (Exception e) { throw new RuntimeException("Failed to register SQLDroidDriver"); } String jdbcUrl = "jdbc:sqldroid:" + "/data/data/" + getPackageName() + "/my-database.db"; try { this.connection = DriverManager.getConnection(jdbcUrl); } catch (SQLException e) { throw new RuntimeException(e); } } @Override public void onDestroy() { if (connection != null) { try { connection.close(); } catch (SQLException e) { throw new RuntimeException(e); } } super.onDestroy(); } }github/SQLDroid/SQLDroid
更多推荐
Android上的SQLite JDBC驱动程序
发布评论