MybatisPlus操作Oracle数据库
QueryWrapper条件构造器
时间范围查询
MybatisPlus操作时间区间做查询条件,可能大家大多用的 ge() le()方法,但是,这只能对于MySql,Oracle数据库时间是需要to_date('date','format')
函数的,所以,用MybatisPlus操作Oracle时,直接用le()或ge()会导致一直爆sql异常,对此正确的写法应该是:
//SELECT * FROM table WHERE sj >= to_date('2024-05-27 14:17:41', 'yyyy-mm-dd hh24:mi:ss') AND sj <= to_date('2024-05-28 14:17:41', 'yyyy-mm-dd hh24:mi:ss');
String startTime = "2024-05-27 14:17:41";
String endTime = "2024-05-28 14:17:41";
LambdaQueryWrapper<YlgZhaji> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.apply("sj >= To_DATE({0}, 'yyyy-MM-dd HH24:mi:ss') ", startTime )
.apply("sj <= To_DATE({0}, 'yyyy-MM-dd HH24:mi:ss') ", endTime);
.orderByAsc(YlgZhaji::getSj);
ROWNUM查询
使用oracle,查询10条数据。
//SELECT * FROM table WHERE ROWNUM <= 10;
LambdaQueryWrapper<YlgZhaji> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.apply("ROWNUM <= 10")
.orderByAsc(YlgZhaji::getSj);