HSQL和MySQL的区别

时间:2016-07-01 08:11:14

标签: java mysql hsqldb jdbctemplate

我使用MySQL作为我的应用程序数据库,但是HSQL作为测试内存数据库。现在问题是我有一个SQL selectQuery,如下所示:

SELECT date(a.created_at) as record_date 
FROM table a

现在,date()是MYSQL中用于将DateTime转换为Date的函数,但在HSQL中,相同的函数是to_date()。现在,我有一个方法可以将上述查询命中数据库并获得输出。

public Response dbQueryThroughJdbcTemplate(String selectQuery){
       jdbcTemplate.query(selectQuery, RowMapper); //RowMapper maps output to Response  
    }

现在,我有一个测试方法的测试方法,

@Test
public void testDbQueryThroughJdbcTemplate(){
       Response response = dbQueryThroughJdbcTemplate(selectQuery);
       TestCase.assertEquals(expected, response); // avoided the code for making expected object
}

现在,由于测试环境使用HSQL db,测试会抛出日期方法不可用的错误。

如何摆脱这个问题,或者更好的方法来实现这个目标?

1 个答案:

答案 0 :(得分:1)

您可以尝试HSQLDB和MySQL支持的替代方案

SELECT CAST(a.created_at AS DATE) as record_date FROM table a