【问题标题】:Connection type of JPA when using Kundera with Cassandra?将 Kundera 与 Cassandra 一起使用时 JPA 的连接类型?
【发布时间】:2014-01-03 02:42:54
【问题描述】:

Java 是否使用TCP 连接来处理JPA 对数据库的请求?例如,如果数据库服务器将其IP address 设置为x.x.x.x:xxxx,那么什么样的代理可以处理该连接? HTTPTCP 代理?

【问题讨论】:

  • proxy 是什么意思?你的意思是Network Proxy Server
  • 是的,例如在我的应用程序中,我只需要定义那个代理的IP地址,然后连接就会转移到相应的数据库服务器

标签: java jpa cassandra database-connection kundera


【解决方案1】:

JDBC 驱动程序不一定使用网络连接。 例如,Hypersonic (HSQL) 提供不同的操作模式

如果将其配置为服务器,它将接受 TCP 连接,并且可以使用 JDBC-URL 进行访问,例如:

jdbc:hsqldb:hsql://machine/dbname

在嵌入式模式下,不需要 TCP 连接,URL 没有服务器名称(或 IP) URL 如下所示:

jdbc:hsqldb:mem:dbname

如果您使用数据库服务器,则需要使用机器名称(如果不使用默认值,则为端口号)配置 JDBC URL。不需要代理,驱动会自己建立连接。顺便提一句。 HTTP 与 JDBC 无关。

【讨论】:

  • 谢谢,但是我使用 Cassandra,一个 noSQL 数据库,因此为了连接到我的应用程序,我使用了建立在 JPA 之上的 kundera,为了连接到我的数据库,我的 xml 看起来像 并且无法更改 ip 值因此我想如果我有代理来处理该连接,会更好。
  • @Aptos 看来您应该按照本教程进行操作 github.com/impetus-opensource/Kundera/wiki/… 如果您在一台机器上安装了所有内容,则 localhost (127.0.0.1) 应该没问题。
  • =)) 我有多达 4 个数据库服务器,127.0.0.[1,2,3,4] 并且 kundera 不支持动态创建持久单元,因此使用代理是唯一的选择我现在..
  • @Aptos 您可以使用java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm 之类的代码,但我怀疑这能否解决您的问题。也许需要更多的研究才能使其发挥作用。
【解决方案2】:

请参阅 Oracale pages on JPAJava EE 6 Tutorial

您连接到数据库的方式取决于您使用的数据库和 JDBC 驱动程序。像SQLite 这样的一些数据库不使用any 网络连接。

【讨论】:

  • hmmh,我通过 Kundera 方法连接到 Cassandra 数据库,因此这里没有 JDBC 驱动程序...
【解决方案3】:

人们对这个问题感到困惑,因为 JPA != nosql 实际上是完全不兼容的。有一些相同的东西,但 JPA 确实是为 RDBMS 设计的。

ORM 下的所有 java 客户端都使用 hector、astyanax 等,它们都使用基于 tcp 的 thrift。因此,您可以根据需要代理 tcp,并且可以生成自己的 thrift 库,例如 astyanax 和 hector,并创建您需要的任何类型的代理。

院长

PlayOrm 开发者

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 2017-06-12
    • 2015-05-13
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    相关资源
    最近更新 更多