问题标签 [sql2o]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1552 浏览

java - Java、Spark、Sql2o、H2:无法从 DataSource 获取连接 - IO 异常

我想使用 Java Maven、Spark 和 H2 数据库以及 Sql2o 库创建一个 API。

这是完整的错误消息:

Exceptionorg.sql2o.Sql2oException:无法从 DataSource 获取连接 - IO 异常:“java.io.IOException:文件名、目录名或卷标语法不正确”;"C:\Users\Claudiu/reviews.db:INIT=RUNSCRIPT from 'classpath:db/init.sql.mv.db" [90031-191] [qtp1133151800-16] 错误 spark.webserver.MatcherFilter - ro.sparkmaven。 exc.DaoException:在 ro.sparkmaven.App.lambda$0(App.java:37) 在 ro.sparkmaven.App$$Lambda$1 的 ro.sparkmaven.dao.Sql2oCourseDao.add(Sql2oCourseDao.java:28) 添加课程时出现问题/1607460018.handle(来源不明)

这是主要课程:

这是 init.sql:

提前致谢!

0 投票
1 回答
795 浏览

java - 使用 sql2o 时,org.sql2o.converters.ConverterException 是什么?

我正在使用.executeScalar()sql2o .jar 文件中的方法。使用 Employee POJO 时出现此异常,当我使用时,.executeScalar(Employee.class)我得到:

org.sql2o.converters.ConverterException:没有为类注册转换器:com.mack.sales.employees.Employee

我找不到任何可以帮助解决此问题的方法,不胜感激。

0 投票
7 回答
1107 浏览

java - 不同 OracleDB 连接之间的共享事务

经过几天对这个问题的调查,我决定提交这个问题,因为发生的事情显然没有意义。

案子

我的计算机配置了本地 Oracle Express 数据库。我有一个 JAVA 项目,其中包含几个扩展父类的 JUnit 测试(我知道这不是“最佳实践”),它在 @Before 方法中打开一个 OJDBC 连接(使用 10 个连接的静态 Hikari 连接池)并滚动在@After 中支持它。

静态连接池

}

这个项目有数百个测试(不是并行的),使用这个连接(在本地主机上)使用 Sql2o 执行查询(插入/更新和选择),但连接的事务和关闭只在外部管理(通过上面的测试)。数据库完全为空,无法进行 ACID 测试。

所以预期的结果是在数据库中插入一些东西,做出断言然后回滚。这样第二个测试就不会发现之前的测试添加的任何数据,以保持隔离级别。

问题 一起(按顺序)运行所有测试,90% 的时间它们都能正常工作。10% 的一两个测试随机失败,因为数据库中有脏数据(例如重复唯一)由先前的测试。查看日志,先前测试的回滚已正确完成。事实上,如果我检查数据库,它是空的)如果我在性能更高但相同的 JDK、相同的 Oracle DB XE 的服务器上执行此测试,此故障率将增加到 50%。

这很奇怪,我不知道,因为测试之间的连接不同,并且每次都会调用回滚。JDBC 隔离级别是 READ COMMITTED,所以即使我们使用相同的连接,即使使用相同的连接也不应该产生任何问题。所以我的问题是:为什么会这样?你有什么主意吗?正如我所知,JDBC 回滚是同步的,还是在某些情况下它可以继续进行,即使它没有完全完成?

这些是我的主要数据库参数:处理 100 个会话 172 个事务 189

0 投票
1 回答
62 浏览

android - 如何解决错误:任务应用程序 preDexDebug 执行失败,退出值非零 1

在我的 android 项目中,我为 mysql 连接器 java 和 SQL2o 库 jar 安装了 maven。

但是当我编译时,我得到以下错误,我试图清理项目但我仍然得到相同的结果:

非零退出值 1

任务应用程序 preDexDebug 执行失败,退出值非零 1

0 投票
1 回答
565 浏览

java - 如何使用 sql2o 从具有几何类型的表中检索 java 对象

我正在使用 sql2o 将 PostgreSQL 行映射到 java 对象。

我有一个表,它有一个类型的列POINT和一个带有两个Doubles 的 java 模型,它们都代表纬度和经度。

为了在数据库中保存一个对象,我正在做这样的事情:

但现在我想检索我存储的对象。我怎样才能做到这一点?如何将 a 映射POINT到两个Doubles。

0 投票
1 回答
109 浏览

database - 映射关系数据库中不包含唯一标识符的对象字段

我有一个 Reward 类型的对象,它是 Card 类中的一个字段。我正在尝试将 Card 类存储在数据库中。Card 中的其他字段对于数据库持久性来说不是问题,因此为简洁起见,我们只关注 Card 中的 Reward 字段。

这是奖励课程。为简洁起见,getter/setter 已被删除。

}

我在尝试将驻留在 Card 类中的这个对象映射到数据库时遇到的问题是 Reward 自然不是唯一实体,因此它不包含 id。它只是一组捆绑到单个类中的 Card 属性。

到目前为止,我提出的唯一解决方案是在数据库中没有奖励的外键,而是将所有奖励字段非规范化以放置在 Cards 表中。

例如,Cards 表将包含reward_type、amount 和 Weapon_data 列,而不是奖励的外键。

我向我的朋友询问了这个方法,他们提到它是非规范化的,所以这不是一个优雅的解决方案。

使用名为 Sql2o 的瘦 JDBC 包装器进行映射时也会遇到问题,因为它无法帮助我以平滑的方式将对象映射到数据库表。

我已经考虑将我的一些数据库表切换到 NoSql 数据库,这会使这种情况变得更容易,因为对象可以很容易地映射到 JSON 文档并存储在数据库中。

但是,它确实会带来一些大问题,因为我的数据库中的其他表包含对 Cards 表的外键引用。

如果有人有解决方案以干净的方式将这些 Reward 对象映射到数据库,我们将不胜感激。

谢谢您阅读此篇。

0 投票
1 回答
10716 浏览

java - 如何在java中将UUID保存为二进制(16)

我有一个表 TestTable,其列 ID 为 binary(16),名称为 varchar(50)

我一直在尝试将有序的 UUID 存储为 PK,如本文以优化的方式存储 UUID

我看到 UUID 作为 HEX (blob) 保存在数据库中

所以我想从java中保存这个ID,但我收到了这个错误

数据截断:第 1 行的“ID”列的数据太长

我目前正在使用库 sql2o 与 mysql 交互

所以基本上这是我的代码

部分 id 应该是这样的11d8eebc58e0a7d796690800200c9a66

我在mysql中试过这个语句没有问题

但是当我删除 unhex 函数时,我得到了同样的错误。那么如何将正确的 ID 从 Java 发送到 mysql?

更新

我在David Ehrmann的回答的启发下解决了我的问题。但在我的例子中,我使用了来自 tomcat 的 HexUtils 将排序后的 UUID 字符串转换为字节 []:

0 投票
1 回答
794 浏览

java - 在 Java NoInitialContextException 中使用 SQLite 的 sql2o

到目前为止,我有以下代码片段:

我正在使用这些依赖项:

但是,这会在执行时引发 NoInitialContextException。堆栈跟踪:

我该如何解决这个问题?

0 投票
1 回答
391 浏览

java - 尽管查询不同,Sql2o 仍然返回相同的数据集

我是使用 SQL2O 和 MySQL 的新手,但我遇到了一个奇怪的问题,不同的查询返回相同的结果。SQL2O 是否返回缓存结果?

我的代码如下所示:

4 个参数总是改变,但输出保持不变。我已经验证了mysql workbench中的查询,数据是不同的,但是SQL2O返回给我的是同一组数据。我错过了什么吗?

0 投票
0 回答
176 浏览

oracle - 有没有办法用 sql2o 拦截数据库输出(dbms_output)?

我在基于 Java 的项目中将 sql2oOracle数据库一起使用。通常在我的 sql 查询中,我使用dbms_output.Put_line('A message...')它来跟踪正在发生的事情。

有没有办法用 sql2o 拦截这个输出,这样我就可以把它传递给我的日志?或者也许有替代方案dbms_output可以做到这一点?