数据库是char(40)
取出来为什么是个字符啊?
只有一个字符List<?> datas = session.createSQLQuery("select * from user where username='zhangsan'").list();
for(int i=0; i<datas.size(); i++){
Object[] m = (Object[]) datas.get(i);
System.out.println(m[0]);
System.out.println(m[1]);
System.out.println(m[2]);
}取出来只有一个z ?
映射的文件也是string
取出来为什么是个字符啊?
只有一个字符List<?> datas = session.createSQLQuery("select * from user where username='zhangsan'").list();
for(int i=0; i<datas.size(); i++){
Object[] m = (Object[]) datas.get(i);
System.out.println(m[0]);
System.out.println(m[1]);
System.out.println(m[2]);
}取出来只有一个z ?
映射的文件也是string
一个字符.原因是char在java中只有两个字节.
解决方法
1.改成
select cast(列 as varchar2(列大小)) from 表;或者改为 select trim(列) from 表
2.指定列返回的类型.
SQLQuery query = session.createSQLQuery();
query.addScalar(columnAlias,Type);
System.out.println(m[0]);
System.out.println(m[1]);
System.out.println(m[2]);
m[0] m[1] 这样就是一个个取字符~~
把所有的拼起来估计就是你要的东西
例如 List<UserBean> datas = session.createSQLQuery("select * from user where username='zhangsan'").list();