java 带有 derby 数据库的便携式应用程序

java portable app with derby database

好的,我想用 derby 数据库制作一个 portable jar 文件。我的 table 仅供阅读。所以我只在上面进行搜索,我有我的代码。我想要的是向我解释如何将 derby 数据库粘贴到我的文件中,以及在任何设备中读取的正确路径是什么我 运行 它 ... ty 当我创建 jar 文件时只有代码而不是数据库...

这是我的连接和搜索查询代码

package ARMY;

import com.sun.glass.events.KeyEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import org.apache.derby.jdbc.EmbeddedDriver;

/**
 *
 * @author Ccompany
 */
public class Menu extends javax.swing.JFrame {

    /**
     * Creates new form Menu
     */
    public Menu() {
        initComponents();
        findUsers();
    }
 String driver ="org.apache.derby.jdbc.EmbeddedDriver"; 
     String url ="jdbc:derby://localhost:1527/ABYP;create=true";
     String user ="db";
     String pass ="sql!123";


      public Connection getConnection()
     {
         Connection con;
      try {
         Class.forName(driver);  
         con=DriverManager.getConnection(url, user, pass);
         return con;
       }catch (Exception e){
           e.printStackTrace();
           return null;
       }

     }

      public ArrayList <Tablearray>ListUsers(String ValToSearch){
      ArrayList <Tablearray> usersList  = new ArrayList <Tablearray>();
      Statement st;
      ResultSet rs;

      try {
            Connection con = getConnection();
            st = con.createStatement();
            String searchQuery = "SELECT * FROM ABYP WHERE  Id_Search||Tyl||Apothkh||Parathrhseis||Ti LIKE '%"+ValToSearch+"%'";
          // String searchQuery = "SELECT * FROM ABYP WHERE CONCAT ('Id_Search) LIKE '%||"+ValToSearch+"||%'";
            //String searchQuery = "SELECT *FROM ABYP where ID_SEARCH =? ";
            rs = st.executeQuery(searchQuery);
      Tablearray tablearray;
      while (rs.next()){
      tablearray = new Tablearray (
        rs.getString("Id_Search"),
        rs.getString("Tyl"),
        rs.getString("Apothkh"),
        rs.getString("Parathrhseis"),
        rs.getString("Ti")
          );
      usersList.add(tablearray);
      }
      }catch(Exception ex){
            System.out.println(ex.getMessage());
        }

        return usersList;


      }
      public void findUsers()
    {
        ArrayList<Tablearray> users = ListUsers(jText_Searchh.getText());
        DefaultTableModel model = new DefaultTableModel();
        model.setColumnIdentifiers(new Object[]{"Id_Search","Tyl","Apothkh","Parathrhseis","Ti"});
        Object[] row = new Object[5];

        for(int i = 0; i < users.size(); i++)
        {
            row[0] = users.get(i).getid_Search();
            row[1] = users.get(i).gettyl();
            row[2] = users.get(i).getapothkh();
            row[3] = users.get(i).getparathrhseis();
            row[4] = users.get(i).getti();
            model.addRow(row);
        }
       jTable_Userss.setModel(model);

    } 

我认为我的 derby 数据位于我的 derby netbeans 文件夹中,我应该将带有 seg0 文件的日志文件复制粘贴到某处吗? finnaly 我从 netbeans derby 数据库中插入所有行,而不是使用 create table 方法将其设为 portable 可以吗?

好的,我在对那些想要让它工作的人进行一些测试后找到了答案我们在将连接 url 更改为此

后清理并构建文件夹
 String driver ="org.apache.derby.jdbc.EmbeddedDriver"; 
     String url ="jdbc:derby:.\ABYP";
     String user ="db";
     String pass ="sql!123";

然后我们从下面的 netbeans 项目 dist 文件中复制文件(lib、jar、自述文件),并在我们复制包含日志的数据库文件夹 e.x ABYP 后将其粘贴到我们 usb 中的一个文件中seg 以及来自 derby netbeans destination 的其他内容。然后我们将它一起粘贴到我们的 usb 文件夹中,它工作正常!!!