【问题标题】:Accessing berkeley db from another class in Java从 Java 中的另一个类访问 berkeley db
【发布时间】:2015-04-08 22:08:47
【问题描述】:

我在我的一个 java 类文件中创建了一个数据库,并且想知道如何在另一个 java 类文件中访问/打开该数据库以读取数据。我尝试使用 openDatabase 但它如何知道数据库文件的位置?我搜索了很多论坛,我能找到的只是将代码放在同一个类中,并且只访问数据库对象。

ex.我在我的一个 java 类文件的目录 /documents/ 中创建了一个数据库,而我所有的 java 代码都在其他地方。如何在我的其他源代码中访问和使用该数据库?

编辑:

public static void main(String[] args) {

    try {

        EnvironmentConfig environmentConfig=new EnvironmentConfig();
        environmentConfig.setAllowCreate(true);
        Environment environment=new Environment(new File("user/documents/"),environmentConfig);
        DatabaseConfig databaseConfig=new DatabaseConfig();
        databaseConfig.setAllowCreate(true);
        Database db=environment.openDatabase(null,"mytable",databaseConfig);
    }
    catch (Exception e) {
        throw new RuntimeException(e);
 }

}

我尝试了以下方法,但在编译时不断收到此错误。

openDatabase(com.sleepycat.db.Transaction,java.lang.String,java.lang.String,com.sleepycat.db.DatabaseConfig) in com.sleepycat.db.Environment cannot be applied to (<nulltype>,java.lang.String,com.sleepycat.db.DatabaseConfig)
            Database db=environment.openDatabase(null,key,databaseConfig);
                                   ^
1 error

【问题讨论】:

    标签: java berkeley-db


    【解决方案1】:

    是的,因为它与mysql数据库有关,这意味着您必须有密码和用户名,因为它是一个安全的学校系统,您可以使用mysql连接器访问您创建的数据。

    为了更清楚,你必须有 database.java 文件。

    那么在该文件中,要了解的主要内容是构造函数和要走的路...
    导入java.sql.*;

      public class database
     {
    
       public static database bDatabase = null;
       protected String     connection_url = "";
       protected String     _name    = "";
       protected String     name           = "";
       protected String     user           = "";
       protected String     password       = "";
       protected Class      some_class   = null;
       protected Connection connection     = null;
       protected ResultSet  results        = null;
       protected String     current_table  = "";
       protected Boolean    error          = false;      
    
       public database(String name, String user, String password)
       {
         this(name, user, password, "jdbc:mysql://localhost:3306",    "com.mysql.jdbc.ClassName");
       }
      public database(String name, String user, String password, String       connection_url, String any_name)
       {
        this.name           = name;
        this.user           = user;
        this.password       = password;
        this.connection_url = connection_url;
        this._name    = any_name;
       }
       public static void openDatabase()
       {
         try
         {
          bDatabase = new database("dbname", "user_id",
              "password", "jdbc:mysql://host",
              "com.mysql.jdbc.Anyclass");
          bDatabase.open();
        }
        catch (Exception ex)
        {
          throw new InvalidQueryException("Unable to open database ");
         }
        }  
    

    【讨论】:

    • 哦,我的错。我的意思是说一个Java类文件。
    • 是的,我知道,你会在java中声明你的密码,然后你可以在同一个文件夹中下载mysql连接器来访问。
    • 我可以访问数据库,但想知道如何在源代码中使用它。我编辑了帖子以使其更易于理解。
    • 有没有办法只使用berkeley db api而不使用JDBC来访问数据库?
    • 我不确定,但你可能知道使用 php 是可能的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    相关资源
    最近更新 更多