标签: embedded-database

Spring嵌入式数据库是否支持不同的SQL方言?

H2具有一系列兼容模式,适用于支持不同SQL方言的各种其他数据库,如MS SQL Server,MySQL,Oracle等.但是,在Spring中设置嵌入式数据库时,我找不到任何相应的设置.这是否意味着如果我在生产中使用Oracle而在测试期间使用H2,那么我必须使用没有任何方言特定功能的"普通"SQL?我忽略了什么吗?

java spring h2 embedded-database

13
推荐指数
3
解决办法
2万
查看次数

在java中的neo4j嵌入式数据库中,我应该如何检查两个节点是否相互关联?

在java中的neo4j嵌入式数据库中,我应该如何检查两个节点是否相互关联?

我想要语法或教程链接,我已经看过neo4j网站,但没有找到它.

谢谢.

java embedded-database java-api neo4j

13
推荐指数
1
解决办法
2055
查看次数

Windows的简单数据库应用程序

我需要为Windows构建一个简单的单用户数据库应用程序.主要要求是独立于Windows版本和已安装的软件.您会推荐哪些技术(语言/框架)?我对语言的偏好是Visual Basic.

编辑:VB.Net和SQL Server Compact Edition怎么样?

database windows embedded-database

12
推荐指数
3
解决办法
2万
查看次数

h2内存表,远程连接

我在创建内存表时遇到问题,使用H2数据库,并在创建和运行的JVM外部访问它.

文档将URL构建为 jdbc:h2:tcp://<host>/mem:<databasename>

我尝试了很多组合,但根本无法让远程连接工作.此功能是否有效,任何人都可以向我提供他们如何使用此功能的详细信息.

database jdbc h2 embedded-database

12
推荐指数
2
解决办法
1万
查看次数

如何在集成测试阶段使用Spring嵌入式数据库初始化脚本?

我可以使用Spring以编程方式创建和初始化嵌入式数据库:

@Before
public void setUp() {
    database = new EmbeddedDatabaseBuilder()
            .setType(EmbeddedDatabaseType.H2)
            .addScript("schema.sql")
            .addScript("init.sql")
            .build();
    ....
}
Run Code Online (Sandbox Code Playgroud)

或通过Spring配置:

<jdbc:initialize-database data-source="dataSource">
  <jdbc:script location="classpath:schema.sql"/>
  <jdbc:script location="classpath:init.sql"/>
</jdbc:initialize-database>
Run Code Online (Sandbox Code Playgroud)

我在这里的脚本schema.sqlinit.sql存储在目录中src/test/resources.因此,如果使用嵌入式数据库的测试运行:

mvn test
Run Code Online (Sandbox Code Playgroud)

然后存在的文件src/test/resources可用,一切都很好.

但现在假设我想在集成测试中使用嵌入式数据库和嵌入式Web服务器(Jetty或嵌入式Tomcat),通过

mvn integration-test
Run Code Online (Sandbox Code Playgroud)

现在处于这个后期阶段,我想做一个几乎是端到端的测试,即在嵌入式数据库中存在某些数据时,为Web服务命中某些URL会返回预期的HTTP响应.但此时,嵌入式Web服务器中部署的战争没有文件,src/test/resources因此我的初始化脚本不存在,我收到错误

引起:java.io.FileNotFoundException:类路径资源[schema.sql]无法打开,因为它不存在

现在,如果我把脚本放进去,一切都会有效,src/main/resources但这些脚本只是用于填充嵌入式数据库进行测试,而且根本不属于 war文件.有没有人知道如何设置集成测试,以便可以使用一个修剪过的数据库,而不会污染将要部署的实际war文件?

我希望Spring的嵌入式数据库初始化可以使用除文件之外的其他东西.我想到了JNDI,但这似乎要求使用测试数据的资源定义来污染web.xml文件,该资源定义将(再次)出现在可部署的战争中.或者也许有使用货物的选择?我不知道Spring的一些程序化技巧?

spring integration-testing embedded-database

12
推荐指数
1
解决办法
8011
查看次数

在java桌面应用程序中嵌入mysql

我不清楚有关如何在Java桌面应用程序中嵌入mysql的步骤/配置细节,以便它(应用程序)可以通过单个可执行文件安装在任何机器上,这样做可以设置数据库并提供运行的exe应用程序.现在我已经使用netbeans构建了我的应用程序,我已经使用mysql来设置database.plz进一步指导我.

java mysql database embedded-database

11
推荐指数
1
解决办法
1万
查看次数

在Delphi中使用嵌入式DB进行全文搜索

我们正在创建一个开源的Twitter客户端,并且正在寻找一种可以与Delphi 一起使用的最小占用空间的嵌入式数据库,这非常适合全文搜索(我知道这不会很小).理想情况下它应该是免费的或开源的(要求我知道).

我倾向于SQLite,但我之前没有使用它,也不知道它是否支持全文搜索,或者它与Delphi的工作情况如何.我之前使用过DBISAM,它嵌入了全文搜索,但不是免费的. Firebird是我们考虑的另一种选择.

可能有一个组合使这项工作.您将使用什么,以及如何评价1)足迹,2)全文搜索,3)免费/开源.

更新:感谢大家的建议.有很多好的选择可供选择.

delphi twitter full-text-search embedded-database

10
推荐指数
1
解决办法
3520
查看次数

Console无法访问内存模式下的H2数据库

我在servlet上下文启动时通过以下代码在H2数据库中创建一个内存数据库

    void initDb()  {
    try {

        webserver = Server.createWebServer().start();

        Class.forName("org.h2.Driver");
        Connection conn = DriverManager.getConnection("jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1","SA","");
        InputStream in = getClass().getResourceAsStream("script.sql");
        if (in == null) {
            System.out.println("Please add the file script.sql to the classpath, package " + getClass().getPackage().getName());
        } else {
            RunScript.execute(conn, new InputStreamReader(in));
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery("SELECT TO_CHAR(bday,'DD/MM/yyyy hh24:mi') FROM TEST2");
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
            rs.close();
            stat.close();
            conn.commit();
            conn.close();
        }




    //accessed using url jdbc:h2:tcp://localhost/mem:db1    
    try{ 

                CachedRowSet crs = new DBConnector().executeQuery("select * from  test2"); 
                while(crs.next()){ 
                System.out.println("ARGUMENT_NAME:"+crs.getString(1)); 
               // System.out.println(",DATA_TYPE:"+crs.getString("DATA_TYPE")); …
Run Code Online (Sandbox Code Playgroud)

h2 embedded-database

10
推荐指数
1
解决办法
2万
查看次数

无法使字段 long java.nio.Buffer.address 可访问:模块 java.base 无法“打开 java.nio” - 使用 Java API 的 LMDB

我正在尝试使用 LMDB 创建数据库和环境。我在 Env 上遇到问题。创造()。我为此使用了 LMDB 文档。

Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.lmdbjava.ByteBufferProxy.<clinit>(ByteBufferProxy.java:71)
    at org.lmdbjava.Env.create(Env.java:92)
    at Database.<init>(Database.java:23)
    at Index.main(Index.java:7)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @4edde6e5
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
    at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
    at org.lmdbjava.ByteBufferProxy$AbstractByteBufferProxy.findField(ByteBufferProxy.java:163)
    at org.lmdbjava.ByteBufferProxy$ReflectiveProxy.<clinit>(ByteBufferProxy.java:222)
    ... 4 more
Run Code Online (Sandbox Code Playgroud)

主要的:

public class Index {
    public static void main(String[] args) {
        Database db = new Database("./data", "DB.TEST");
    }
}

public class Database {

    private String …
Run Code Online (Sandbox Code Playgroud)

java embedded-database lmdb

10
推荐指数
1
解决办法
1万
查看次数

快速嵌入数据库

我正在开发一个应用程序,它需要存储与音乐文件(艺术家,标题,播放计数等)相关的元数据,以及整数集(特别是SHA-1哈希).

我选择的解决方案需要:

  • 提供"快速"存储和检索(当查看可能数千首歌曲的列表时,我需要能够或多或少地以交互方式检索元数据).
  • 跨平台(Linux,Windows和OSX).
  • 提供我可以从C++交互的界面.
  • 是开源的(或者至少是啤酒中的自由).
  • 提供快速设置操作(并集,交集,差异) - 如果解决方案不提供此功能,但它允许我存储二进制数据,我可以使用"快速设置操作使用Treaps"等技术自行实现.
  • 被"嵌入" - 也就是说,在没有我必须进行fork另一个过程的情况下运行,或者至少提供一个简单的界面(如libmysqld).

我考虑的解决方案包括:

  • 平面文件.这非常简单,但除了平面数据存储之外不提供任何功能.
  • SQlite的.这似乎是一个非常受欢迎的选项,但它似乎在性能和并发性方面存在一些问题(有关示例问题,请参阅KDE的Akonadi).
  • 嵌入式MySQL/MariaDB.这似乎是一个合理的选择,但考虑到我不需要很多复杂的SQL功能,它也可能有点重量级.

我认为完美的假设解决方案就像Redis,但它将数据保存到磁盘,并且只将一部分数据存储在内存中以便快速检索.Redis本身可能不是一个好选择因为1)我需要fork手动操作,2)它的Windows端口看起来不那么坚固,3)将所有数据存储在RAM中将不太理想.

对于这类问题是否有其他解决方案,或者我已经列出的解决方案之一远远优于其他解决方案?

c++ database embedded-database data-structures

9
推荐指数
1
解决办法
6395
查看次数