【问题标题】:JDBC SQLite pathJDBC SQLite 路径
【发布时间】:2017-05-21 08:18:05
【问题描述】:

我正在测试我的程序,它已经是一个 .exe 文件到另一台计算机,我意识到我的数据库的路径是在我的计算机上指定的,应用程序将无法访问数据库。有没有办法改变这条路径,以便我可以在不同的计算机上测试它?这是我连接数据库的代码:

import java.sql.*;
import javax.swing.*;

public class mysqlconn {

Connection conn=null;

 public static Connection ConnectDB(){
    try{
        Class.forName("org.sqlite.JDBC");
        Connection conn= DriverManager.getConnection("jdbc:sqlite:C:\\Users\\PAULO\\Documents\\NetBeansProjects\\Admin_Laptopland\\laptop_land.sqlite");
        JOptionPane.showMessageDialog(null,"Connection Established");
        return conn;
    }catch(Exception e){JOptionPane.showMessageDialog(null, e);return null;}
  }
}

【问题讨论】:

  • 使用相对路径,要求用户选择数据库,使用系统属性user.home等,等等等等。
  • 这是我第一次在 netbeans 中使用 sqlite 作为我的数据库。我该怎么做?
  • 那么有一个不错的tutorial here for you
  • 谢谢,但我还是有问题。我尝试使用此 Connection conn= DriverManager.getConnection("jdbc:sqlite:laptop_land.sqlite");但随后它只是创建了一个没有任何表的新数据库。我想连接我已经创建的数据库。我该怎么做?

标签: java sqlite jdbc netbeans


【解决方案1】:

将 db 文件保存在 mysqlconn 类的同一位置,然后使用 db 字符串的相对路径,这里是代码 - 根据您的需要更改:-

import java.awt.HeadlessException;
import java.sql.*;
import javax.swing.*;

public class mysqlconn {

Connection conn = null;

public static void main(String args[]) {
    try {
        Class.forName("org.sqlite.JDBC");
        Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
        JOptionPane.showMessageDialog(null, "Connection Established");

    } catch (HeadlessException | ClassNotFoundException | SQLException e) {
        JOptionPane.showMessageDialog(null, e);

    }
}

}

这里,db文件的文件名是test.db。

【讨论】:

  • 我正在尝试构建程序,并且正在运行 dist 文件夹中的 jar 文件。该代码的问题在于它只会创建一个新的数据库,而不是获取我创建的数据库。我该如何解决这个问题?
  • 对不起,那么这段代码将无济于事。因为 db 文件(test.db)本身会打包到可执行文件(dist 文件夹中的 jar 文件)文件中,并且您无法连接到它。每次都会创建一个新的数据库。我正在解决这个问题...
  • 没关系。我只是用我做的替换它来修复它。谢谢
猜你喜欢
  • 2015-10-15
  • 2012-01-02
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多