在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类型时会出现上述的问题。
网友评论