最近碰到一個問題,如下:
我用hibernate框架封裝dao層,現在有一條select語句:
select userid, 'User_type ' as utype, usertype from user where userid=
'001 ';
這條語句在數據庫工具中運行是沒有問題的,但是在程序中就有問題了,查詢出來的常量字符 'User_type
',這部分只顯示U,即常量字符的第一個字符。
實現程序如下:
String sql = "select userid, 'User_type ', usertype from user where userid=
'001 ' ";
Session session = SessionFactory.getSession();
Query
query = session.createSQLQuery(sql);
Iterator it =
query.list().iterator();
while (it.hasNext()){
Object[] objects=it.next();
System.out.println(String.valueOf(objects[1]));//本來應該輸出User_type
但是實際上是打印出U
}
調試了一天也沒整出個道道來,麼有辦法,只能換個方法實現了:
Connection conn = session.connection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next){
String str = rs.getString("UTYPE");//打印出來User_type 符合要求
}
還沒有找到真正的問題所在,目前只能用這種方法了。