当前位置: 首页 > 知识库问答 >
问题:

运行project的.jar文件时SQLite数据库未连接

程谭三
2023-03-14
   public Connection connect1() {
    try {

        Class.forName("org.sqlite.JDBC");
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(SQLiteJDBCDriverConnection.class.getName()).log(Level.SEVERE, null, ex);
    }
    String url = "jdbc:sqlite:SaeedGoldCastingDB.sqlite";
    Connection conn = null;
    try {
        conn = DriverManager.getConnection(url);
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return conn;
}
run:

代码如下:

public class SQLiteJDBCDriverConnection {
     /**
     * Connect to a sample database
     */
    public String rate=null;
    public String date=null;


 public Connection connect1() {
    try {
        // SQLite connection string
        Class.forName("org.sqlite.JDBC");
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(SQLiteJDBCDriverConnection.class.getName()).log(Level.SEVERE, null, ex);
    }
    String url = "jdbc:sqlite:C:\\Users\\Hashmi\\Documents\\NetBeansProjects\\Goldsmith-Billing-and-database\\src\\SourceFolder\\SaeedGoldCastingDB.sqlite";
    Connection conn = null;
    try {
        conn = DriverManager.getConnection(url);
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return conn;
}
  public boolean Login(Login l){

   String idLogin = null ;
   String password = null;
   char[] pass = l.jPasswordField1.getPassword();
  String passString = new String(pass);
   String sql = "SELECT idLogin , password from Login where idLogin like '%"+l.jTextField_idLogin.getText()+"%';";
    try (Connection conn = this.connect1();
         Statement stmt  = conn.createStatement();
         ResultSet rs    = stmt.executeQuery(sql)){
        // loop through the result set
        while (rs.next()) {
          idLogin=rs.getString("idLogin");
          password=rs.getString("password");
         }
          if(idLogin.matches(l.jTextField_idLogin.getText() ) && password.matches(passString))
            return true;
           else
               return false;

    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return false;
 }
  public void UpdateLogin(String idLogin,String password){

     String sql = "UPDATE Login SET password=? WHERE idLogin like '%"+idLogin+"%';";
  try (Connection conn = this.connect1();
         PreparedStatement pstmt = conn.prepareStatement(sql))
    {

              pstmt.setString(1,password);
              pstmt.executeUpdate();

    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }

      }     
   public void insertLogin(String idLogin,String password){

     String sql = "insert into Login(idLogin,password)values(?,?);";
  try (Connection conn = this.connect1();
         PreparedStatement pstmt = conn.prepareStatement(sql))
    {

              pstmt.setString(1,idLogin);
              pstmt.setString(2,password);
              pstmt.executeUpdate();



    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }

      }     
  public boolean userCheck(Settings s){

   String idLogin = null ;
   String password = null;
   char[] pass = s.jPasswordField_OldPassword.getPassword();
   String passString = new String(pass);
   String sql = "SELECT idLogin , password from Login where idLogin like '%"+s.jTextField_useName1.getText()+"%';";
    try (Connection conn = this.connect1();
         Statement stmt  = conn.createStatement();
         ResultSet rs    = stmt.executeQuery(sql)){
        // loop through the result set



            while (rs.next())
                 {
                  idLogin=rs.getString("idLogin");
                  password=rs.getString("password");
                 }

                 if(idLogin.matches(s.jTextField_useName1.getText() ) && password.matches(passString))
            return true;
           else
               return false;




    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return false;
 }

共有1个答案

钱飞翼
2023-03-14

使用SQLite数据库文件的相对路径:

jdbc:sqlite:SaeedGoldCastingDB.sqlite

根据saeedgoldcastingdb.sqlite文件的实际位置,Java在执行程序时可能找不到它。

请改用绝对路径。

 类似资料:
  • 我有一个简单的Java项目,它有一个文件输入。Java语言输入代码。java是这样的- 现在,我已经通过导出在Eclipse中创建了一个可执行的jar文件- 现在,当我尝试通过命令提示符打开它时,它工作得非常好。 但是,当我双击runnable jar文件时,我希望打开命令提示符。这里有什么问题? 谢谢

  • 问题内容: 我不知道如何 在 Java .jar文件中包括一个SQLite数据库以进行部署(通过Java WebStart)。 数据库并 没有 需要在运行时更新中…它本质上是一个华而不实的配置文件。 顺便说一下,使用Eclipse。 问题答案: 要考虑的另一个不错的选择可能是derby,javadb。它现在已与Java捆绑在一起,并且安装速度非常快,并且具有良好的性能。 问候,斯特凡

  • 我已经创建了一个商店管理系统的桌面应用程序,它运行得很好(在ide上运行),但是当我创建了一个jar文件并在另一台计算机上运行它时,它什么也没做。 我发现的问题是数据库没有附加.jar文件。 有人能指引我吗? 详细信息:语言:java IDE:netbeans数据库:mysql服务器5.1

  • 当我运行访问目录中其他文件的jar文件时,我得到以下: 线程“main”java.nio.file.nosuchfileException异常:src\filetobeaccessed.txt.lck在sun.nio.fs.windowsException.translateToioException(未知源)在sun.nio.fs.windowsException.reshrowasioExce

  • 我一直试图将一个maven项目打包到一个jar文件中,但它无法运行,因为javafx似乎有一个问题,下面是我的构建路径、项目结构(使用JavaFX14)和依赖关系 我尝试了两种方式来运行,第一种方式是使用提供的vm参数运行我的主应用程序文件。在ide中工作很好,但当试图作为jar文件运行时,会出现以下错误... 下一件我厌倦的事情是创建一个独立的主并从它运行,就像这样 有什么想法吗?

  • 问题内容: 我用记事本创建了一个项目,并且在mysql服务器数据库的cmd中运行良好。 但是在创建相同项目的jar文件之后,jar文件将无法连接到服务器数据库。所以不知道下一步该怎么做?从cmd或jar文件运行后,即使其他系统(仅安装了Java而不是mysql)也无法连接到服务器数据库。 每个系统是否都必须在其他系统上安装java和mysql才能运行?如何克服这样的问题。我想将其分发给用户,但是我