注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

罔少年

QQ 332256483

 
 
 

日志

 
 

mySql 数据库表别名问题  

2014-05-20 09:46:17|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
之前用hibernate+oracle搭建的java项目,需要移植到linux系统下,切把数据库改成mySql。
问题1:Linux大小写敏感,所以hbm里的表名称大小写必须一致,字段值可以大小写不一致
问题2:采用hibernate查询语句是,自动解析成select * from(select id,name,......)order by time
在mySql中无法解析这种查询模式,原因缺少表别名需要 select * from(select id,name,......)xx order by time

但是只要是通过hiberange模式查询的,都会解析成select * from(select id,name,......)order by time

解决1:虽然绕过Hibernate查询模式,但是查出来的list只是Object[]对象,只能通过obj[0],obj[1]这种方式获取数据,无法知道属性名称

String sql = " select Id,C_CONTENT,C_IMAGES,C_STATE,C_URL,C_CREATETIME from T_NOTICES where 1=1 and C_STATE='1' ";
List list = null;
Session s = null;
try{
s = HibernateUtils.getSession();
SQLQuery query = s.createSQLQuery(sql);
list = query.list();
if(list!=null){
for(int i=0;i<list.size();i++){
Object obj = list.get(i);
System.out.println(obj);
}
}
}catch(Exception e){
System.out.println(e.toString());
}finally{

}
return list;

解决2:用Criteria。虽然解决了list查询结果为List<object>结果还是解析成hibernate查询模式

Session s = null;
try{
s = HibernateUtils.getSession();

Criteria crit = s.createCriteria(Notices.class);
crit.setMaxResults(50);
List cats = crit.list();
if(cats!=null){
for(int i=0;i<cats.size();i++){
Notices obj = (Notices) cats.get(i);
System.out.println();
}
}

}catch(Exception e){
System.out.println(e.toString());
}finally{

}

解决3:在1的基础上,加上了addEntity(Object),就直接能把list---转换成List<Object>

String sql = " select Id,C_CONTENT,C_IMAGES,C_STATE,C_URL,C_CREATETIME from T_NOTICES where 1=1 and C_STATE='1' ";
List list = null;
Session s = null;
try{
s = HibernateUtils.getSession();
SQLQuery query = s.createSQLQuery(sql).addEntity(Notices.class);
list = query.list();
if(list!=null){
for(int i=0;i<list.size();i++){
Object obj = list.get(i);
System.out.println(obj);
}
}
}catch(Exception e){
System.out.println(e.toString());
}finally{

}
return list;


  评论这张
 
阅读(46)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018