PreparedStatement,hibernate查询ora

2019-02-16  本文已影响0人  宋雾代

在oracle中执行以下sql

create table A(
    id char(5)
);
insert into A values('11');

使用以下java代码查询该记录

String sql = "select * from A where id=?";
pstm = conn.prepareStatement(sql);
pstm.setString(1,"11");
rs=pstm.executeQuery();
System.out.println(rs.next());

结果查不到任何东西
然而修改代码如下:

String sql = "select * from A where trim(id)=?";

就可以解决问题

因为hibernate内部使用的是PrepareStatement,在查询oracle char类型时会出现上述的问题。

上一篇 下一篇

猜你喜欢

热点阅读