我正在开发一个jframe,以使用文本字段和全部将一些数据存储在数据库中。我有以下数据库连接代码。我正在使用sqlite数据库。
**Connectdatabase.java** /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package shreesai; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.swing.JOptionPane; /** * * @author DeepRocks */ public class Connectdatabase { Connection con = null; public static Connection ConnecrDb(){ try{ Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:G:\\Development\\Project\\database\\shreesai.sqlite"); return con; } catch(ClassNotFoundException | SQLException e){ JOptionPane.showMessageDialog(null,"Problem with connection of database"); return null; } } }****
/ *一切正常,但如果我将这个项目导出到JAR,并且我的客户将从不同的路径运行JAR,那我想知道吗? /**
我尝试使用此代码
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:"+dir+"shreesai.sqlite"); return con; } catch(ClassNotFoundException | SQLException e){ JOptionPane.showMessageDialog(null,"Problem with connection of database"); return null; } } }
即使我尝试了这个:
public class Connectdatabase { Connection con = null; public static Connection ConnecrDb(){ try{ String dir = System.getProperty("user.dir"); String maindir = dir + File.separator + File.separator ; Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:"+maindir+"shreesai.sqlite"); return con; } catch(ClassNotFoundException | SQLException e){ JOptionPane.showMessageDialog(null,"Problem with connection of database"); return null; } } }
但是 NOTHING 我认为必须有问题与双反斜线原因DIR返回: G:\开发\项目\数据库 。我们想要G:\\ Development \\ Project \\ database \\
有什么帮助吗?
尝试的方法没有错,但仅在您的计算机上正确,因此,解决方案很简单,将.sqlite文件放在内src,也许您想创建一个名为的包Database,这不是必需的,但更好。
.sqlite
src
Database
如果.sqlite文件在源中,则将是这样的:
src/shreesai.sqlite
....=DriverManager.getConnection("jdbc:sqlite:src/shreesai.sqlite");
也不要绝对路径,并且\\由于不同的窗口平台,请避免在目录()中使用反斜杠,而应使用斜杠(/)。
\\
/