从 Java 中的另一个类访问 berkeley db
Posted
技术标签:
【中文标题】从 Java 中的另一个类访问 berkeley db【英文标题】:Accessing berkeley db from another class in Java 【发布时间】: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
【问题讨论】:
【参考方案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 是可能的以上是关于从 Java 中的另一个类访问 berkeley db的主要内容,如果未能解决你的问题,请参考以下文章