h2数据库按位操作(&)无效语法MySql

时间:2014-09-08 09:41:12

标签: mysql bit-manipulation h2 bitwise-operators

对于h2数据库错误,按位操作(&,&&,|,||)会产生无效的语法错误。

Connection con=jdbcCon.getConnection();
PreparedStatement statement = con.prepareStatement("SELECT * FROM cars WHERE status & 128");
//this version works -> BITAND(`status`,128) ");

我尝试了与;MODE=MySQL的jdbc连接,没有它。 SQL查询在MySQL数据库中是正确的。 BITAND运算符可以工作,我仍然认为应该支持位运算符。

Exception:
org.h2.jdbc.JdbcSQLException: General error SQL statement: SELECT * FROM cars WHERE status & 128 [50000-181]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
Caused by: java.lang.ClassNotFoundException: com.vividsolutions.jts.geom.CoordinateSequenceFilter

POM:
                     com.h2database             H2             1.4.181             测试         

1 个答案:

答案 0 :(得分:2)

&& H2中的运算符保留用于边界框交叉点测试。这就是H2尝试加载JTS拓扑套件库的原因。

对于按位操作,您必须使用以下H2函数: