Я использую один простой код для доступа к базе данных SQLite из приложения Java. Мой код
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectSQLite
{
public static void main(String[] args)
{
Connection connection = null;
ResultSet resultSet = null;
Statement statement = null;
try
{
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
statement = connection.createStatement();
resultSet = statement
.executeQuery("SELECT EMPNAME FROM EMPLOYEEDETAILS");
while (resultSet.next())
{
System.out.println("EMPLOYEE NAME:"
+ resultSet.getString("EMPNAME"));
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
resultSet.close();
statement.close();
connection.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
Но этот код дает одно исключение, например
java.lang.ClassNotFoundException: org.sqlite.JDBC
Как я могу это сказать, пожалуйста, помогите мне.
В вашем пути к классам должен быть драйвер JDBC SQLite.
Taro L. Saito (xerial) разветкил проект Zentus и теперь поддерживает его под именем sqlite-jdbc. Он объединяет родные драйверы для основных платформ, поэтому вам не нужно настраивать их отдельно.
VACUUM
; поскольку JDBC на самом деле не интерпретирует SQL (по очень веским причинам), просто отправьте его. Или используйте прагму для каждого соединения, чтобы работать в режиме автоматического вакуума.
Если вы используете netbeans Загрузите драйвер sqlitejdbc Щелкните правой кнопкой мыши папку "Библиотеки" в окне "Проект" и выберите "Добавить библиотеку", затем нажмите кнопку "Создать", введите имя библиотеки (SQLite) и нажмите "ОК"
Вы должны добавить драйвер sqlitejdbc в путь к классу, нажмите на Добавьте кнопку Jar/Folder.. и выберите файл sqlitejdbc, который вы загрузили ранее. Нажмите ОК, и вы готовы к работе!
Если вы используете Netbeans
, используя Maven
, чтобы добавить библиотеку проще. Я попытался использовать вышеуказанные решения, но это не сработало.
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
</dependencies>
Я добавил зависимость Maven
и ошибка java.lang.ClassNotFoundException: org.sqlite.JDBC
.
Я использую Eclipse, и я скопировал ваш код и получил ту же ошибку. Затем я открыл свойства проекта → Java Build Path → Libraries- > Add External JARs... C:\jrun4\Lib\sqlitejdbc-v056.jar Работал как шарм. Возможно, вам потребуется перезапустить веб-сервер, если вы только что скопировали файл .jar.
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import org.sqlite.SQLiteDataSource;
import org.sqlite.SQLiteJDBCLoader;
public class Test {
public static final boolean Connected() {
boolean initialize = SQLiteJDBCLoader.initialize();
SQLiteDataSource dataSource = new SQLiteDataSource();
dataSource.setUrl("jdbc:sqlite:/home/users.sqlite");
int i=0;
try {
ResultSet executeQuery = dataSource.getConnection()
.createStatement().executeQuery("select * from \"Table\"");
while (executeQuery.next()) {
i++;
System.out.println("out: "+executeQuery.getMetaData().getColumnLabel(i));
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
return initialize;
}
dataSource.setDatabaseName(...)
и он не работал. Теперь я вижу, что мне нужно использовать dataSource.setUrl(...)
. Благодарю. :-)
Эй, я разместил видео-учебник по youtube об этом, вы можете проверить это, и вы можете найти здесь пример кода:
http://myfundatimemachine.blogspot.in/2012/06/database-connection-to-java-application.html
Вам нужно загрузить и добавить SQLite JDBC-драйвер в свой путь к классам.
Вы можете скачать отсюда https://bitbucket.org/xerial/sqlite-jdbc/downloads
Если вы используете Gradle, вам нужно будет добавить зависимость SQLite:
dependencies {
compile 'org.xerial:sqlite-jdbc:3.8.11.2'
}
Следующее, что вам нужно сделать, это инициализировать драйвер:
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException eString) {
System.err.println("Could not init JDBC driver - driver not found");
}
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
Вместо этого поставьте
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb");
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Connectdatabase {
Connection con = null;
public static Connection ConnecrDb(){
try{
//String dir = System.getProperty("user.dir");
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
return con;
}
catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Problem with connection of database");
return null;
}
}
}