对于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
测试
答案 0 :(得分:2)
&& H2中的运算符保留用于边界框交叉点测试。这就是H2尝试加载JTS拓扑套件库的原因。
对于按位操作,您必须使用以下H2函数: