我正在尝试将数据库实现到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);
}
}
由于
答案 0 :(得分:2)
检查您的依赖项是否包含以下语句
<scope>test</scope>
默认情况下在相应的maven存储库中设置。
答案 1 :(得分:0)
想象你不要在Maven中添加相同的jar,而是将它作为pom.xml文件中的依赖项添加。对于任何想要这样做的人,代码是
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.16.1</version>
</dependency>
同时学习SQLite并不是与Maven结合使用的理想数据库,尽管它适用于小型项目等。
答案 2 :(得分:0)
我的解决方案:我运行std::thread scanCOMPort(CheckCOMPort, readVals);
并发现sqlite-jdbc- [版本] .jar文件的标题不正确,这意味着该文件已损坏,在网络上搜索后我强制rm中的所有目录.m2 / repository并再次运行mvn compile
,然后它就编译成功了。
希望能帮助那些被同样异常问题迷惑的人。