我有一个Java应用程序,我想使用Firebase而不是jdbc数据库。(我希望它在internet上,而不是在本地计算机上)我有一个连接池singleton类,这就是我连接数据库的方式。有人能指导我如何连接到Firebase吗?我真的不知道该怎么做。(我试着阅读和了解它,但没有成功)。
public static ConnectionPool getInstance() throws ShiftException{
if(connectionPool==null)
connectionPool=new ConnectionPool();
return connectionPool;
}
/**
* the actual algorithm of the connection-pool before it get's the instance (private):
* @throws ShiftException
*/
private ConnectionPool() throws ShiftException {
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
for (int i=0;i<CONNECTIONS;i++)
connection.add(DriverManager.getConnection("jdbc:derby://localhost:1527/DBso"));
}catch(Exception e){
throw new ShiftException("there is a problem with the connection to the database, Check to see if it is up and running");
}
}发布于 2018-07-18 01:31:11
java对Firebase的支持旨在通过使用Firebase的sdk来扩展其服务器端功能。要在Firebase实时数据库或Firestore上查询,你应该编写你的android/ios应用程序和/或通过一个用javascript编写的web应用程序。
这里有一个有用的链接:https://firebase.google.com/docs/web/setup
发布于 2020-08-18 12:04:24
背景信息
我从您的问题和其他评论中得到的结论是,您希望在Firebase中使用JDBC SQL配置,即不更改SQL查询、连接类,通常是数据库层的大部分。
不幸的是,这是不可能的。
Firebase实时数据库,甚至是云Firestore,都是NoSQL数据库。它们不能直接映射到您的SQL配置。您可以在此处了解有关Firebase和SQL之间关系的更多信息:Firebase Database for SQL Developers
推荐的解决方案
在这一点上,对于将来有这样问题的用户,我的建议是基于我在相同问题上的经验。我通过使用EJB层解决了这个问题,EJB层的唯一目的是决定使用什么配置。例如,我想要将新冠肺炎医疗用品的数据写入数据库。我要做的是将数据传递给数据库决策层中的EJB类。
根据客户的情绪,我们有不同的配置(我认为-感谢模糊的工作范围),一开始他们希望我们在亚马逊网络服务上使用MySQL,其次是本地MySQL,然后是Firebase实时数据库。
然后,EJB类将根据.properties文件中的属性,为相应的配置调用另一个EJB类;无论是Firebase Realtime DB还是本地MySQL。因此维护SQL实现,然后单独实现Firebase Realtime DB配置。
总而言之,你最终得到了大量的类和代码,但更改数据库配置变得很容易。
https://stackoverflow.com/questions/51383223
复制相似问题