【发布时间】:2015-07-20 04:40:57
【问题描述】:
在我的项目中,我应该同时使用 SQLiteDB 和 MariaDB。
所以,我在eclipse项目中导入了jdbc驱动文件(*.jar)。
但是我收到了这样的错误:
代码:
public DBHelper() {
try {
driver = (Driver) Class.forName("org.sqlite.JDBC").newInstance();
DriverManager.registerDriver(driver);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
makeConnections();
}
public synchronized boolean makeConnections() {
try {
switch (ConnectionManager.getDatabaseType()) {
case SQLITE:
if (conn == null || conn.isClosed()) {
SQLiteConfig config = new SQLiteConfig();
config.setJournalMode(JournalMode.WAL);
conn = DriverManager.getConnection("jdbc:sqlite:data.sqlite", config.toProperties());
conn.setAutoCommit(false);
}
break;
case MARIADB:
if (conn == null || conn.isClosed()) {
conn = DriverManager.getConnection("jdbc:mariadb://data.mariadb");
conn.setAutoCommit(false);
}
break;
}
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
错误信息:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid connection URL url jdbc:sqlite:data.sqlite
at org.mariadb.jdbc.JDBCUrl.parse(JDBCUrl.java:144)
at org.mariadb.jdbc.Driver.connect(Driver.java:95)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at database.DBHelper.makeConnections(DBHelper.java:96)
at database.DBHelper.<init>(DBHelper.java:60)
at database.DBHelper.getSingleton(DBHelper.java:28)
我清楚地注册了名称为“org.sqlite.JDBC”的jdbc驱动程序。但我不知道为什么日志消息包含“at org.mariadb.jdbc.Driver.connect(...)”。
MariaDB jdbc文件(*.jar)删除后,程序执行成功。
【问题讨论】:
-
发布您的 DBHelper 的完整代码
标签: java eclipse sqlite jdbc mariadb