SQLite Class Not Found Exception - Maven Project using Tomca



我正在尝试将数据库实现到maven项目中。我决定使用 SQLite,我让它在一个单独的程序中工作,所以认为将其集成到这个项目中应该没有问题。

我收到异常

java.lang.ClassNotFoundException: org.sqlite.JDBC

在线

Class.forName("org.sqlite.JDBC");

所有在线和这里的东西都在谈论添加 jar 文件,但我相信我已经正确添加了它,它位于同一项目的 eclipse 中的引用库中。与我在它所从事的项目上所做的方式相同。

我会在发生它的地方发布课程,希望有人可以提供帮助。我认为发布其他课程没有任何意义?

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import Assignment.rest.model.CD;
public class CDRepositoryStub implements CDRepository {
    private static Connection con;
    private void getConnection() throws ClassNotFoundException, SQLException {
        Class.forName("org.sqlite.JDBC");
        con = DriverManager.getConnection("jdbc:sqlite:C:\Users\Mick\Desktop\Year 4\New folder (2)\restDatabase.sqlite");
    }
    @Override
    public void create(CD cd) {
        // TODO Auto-generated method stub
        //should issue a insert statement to the db
        try {
            if (con == null) {
                getConnection();
            }
            PreparedStatement prep = con.prepareStatement("INSERT INTO data values(?,?,?,?);");
            prep.setString(1, cd.getId());
            prep.setString(2, cd.getTitle());
            prep.setInt(3, cd.getDuration());
            prep.setString(4, cd.getArtistName());
            prep.execute();
        } catch (Exception e) {
            System.out.println("Exception caught " + e);
        }
    }
}

谢谢

检查您的依赖项是否不包含以下语句

<scope>test</scope>

在相应的 maven 存储库中默认设置。

发现您没有在 Maven 中添加相同的 jar,而是将其作为依赖项添加到 pom.xml 文件中。 对于任何希望这样做的人来说,代码是

<dependency>
  <groupId>org.xerial</groupId>
  <artifactId>sqlite-jdbc</artifactId>
  <version>3.16.1</version>
</dependency>

还了解到SQLite不是与Maven结合使用的理想数据库,尽管它适用于小型项目等。

我的解决方案:我运行mvn compile,发现sqlite-jdbc-[version].jar文件的标头不正确,这意味着文件已损坏,在网络上搜索后,我强制rm在我的.m2/repository中的所有目录并再次运行mvn compile,然后它只是编译成功。希望能帮助那些被同一个不寻常的问题迷惑这么久的人。

最新更新