当前位置: 首页 > 面试题库 >

使用HSQL内存数据库作为JPA数据源

壤驷子安
2023-03-14
问题内容

我有一个内存中的数据源:

java.sql.Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "sa", "");            
emf = Persistence.createEntityManagerFactory("manager");

但是现在我被卡住了。我想将其用作J2SE应用程序中的JPA数据源。我已经搜索了整个网络,但是所有信息都与J2EE有关。

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="manager">

        <jta-data-source>/*What to enter here?*/</jta-data-source>

        <properties>

            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />

        </properties>

    </persistence-unit>

</persistence>

问题答案:

/ 在这里输入什么? /

好吧,什么都没有。在Java SE环境中,您必须使用来自JPA提供程序的内置连接池,并且设置如下所示:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
  <persistence-unit name="manager" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.acme.Foo</class>
    ...
    <properties>
      <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
      <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:testdb"/>
      <property name="javax.persistence.jdbc.user" value="sa"/>
      <property name="javax.persistence.jdbc.password" value=""/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
  </persistence-unit>
</persistence>


 类似资料:
  • 我想将我的hsql数据库与eclipse hsql数据库管理器连接到eclipse,我认为代码非常正确,但它给了我这个错误: 线程“main”java.lang.NullPointerException中出现异常:无法调用“java.sql.Connection.CreateStatement()”,因为“this.con”在Peralinq.Main.Main(Main.java:30)的Per

  • 一、内存数据库: 在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如: rc = sqlite3_open(":memory:", &db); 在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是,一个新的数据库在纯内存中被成功创建了。

  • 问题内容: 我需要使用php创建一个具有大量数据的mysql数据库的解决方案。我的程序将有许多要求,我认为如果我使用缓存和OO数据库,我会得到很好的结果,但是我没有经验。 我认为,例如,如果我将保存在mysql中的信息缓存到redis数据库中,性能将会提高,但是我不知道这是否是个好主意,因此我希望有人来帮助我选择。 抱歉,如果我的英语不太好,我来自巴西。 问题答案: 是的,redis对此很有帮助。

  • 我在PDI CE 7.0上运行勺子,并试图第一次设置我的数据库存储库。我可以使用SQL服务器作为我的数据库存储库,但我想知道我是否可以使用我的红移服务器作为我的数据库存储库。 当我测试我的数据库连接时,它运行正常。然而,当我尝试连接到存储库时,我会收到一条错误消息,说“您似乎没有连接到服务器。请检查您正在使用的路径,并确保服务器已启动并运行”(单击以查看错误消息) 我已经试着改变我的JDBC驱动程

  • 我在Spring Batch上有点麻烦。我正处于这种情况:我必须分析文件中的数据,并将所有内容插入数据库(Oracle)。我面临的问题是,当我试图配置用于保存数据的数据库时,应用程序崩溃并关闭。我有一条错误消息: Application.Properties 用于配置数据库的MultipleDBConfig.java Bean

  • 我想使用JavaFx、Spring Boot和Spring Data JPA制作一个桌面应用程序,并将H2作为我的数据库。问题是我试图运行JUnit以将数据保存在本地目录中,但每次运行JUnit时数据都会丢失。 我的文件; 我的测试用例; 打印列表的大小是1,但当我再次像这样运行测试用例时 它打印的列表大小为0