首页 新闻 搜索 专区 学院

java连接mysql 用hibernate怎么写查询语句

0
悬赏园豆:5 [已解决问题] 解决于 2013-04-30 22:00

以前用的是sqlserver,现在该为mysql,数据库连接上了,但是以前写的查询报错了 
—————————————————— 
select userinfo0_.id as id0_, userinfo0_.company_name as company2_0_, userinfo0_.user_name as user3_0_, 
userinfo0_.mobile_number as mobile4_0_ from Demo.dbo.user_info userinfo0_,Demo.dbo.user_info去掉dbo就可以查询出来,请问要如何解决呢? 

Java代码  收藏代码
  1. public int queryAll() {  
  2.     // TODO Auto-generated method stub  
  3.     String hql="from UserInfo";  
  4.     List list = getHibernateTemplate().find(hql);  

 

Java代码  收藏代码
  1. org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select userinfo0_.id as id0_, userinfo0_.company_name as company2_0_, userinfo0_.user_name as user3_0_, userinfo0_.mobile_number as mobile4_0_ from Demo.dbo.user_info userinfo0_]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query  
  2.     org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:629)  
  3.     org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)  
  4.     org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)  
  5.     org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)  
  6.     org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)  
  7.     org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:904)  
  8.     com.seamoon.demo.dao.impl.UserInfoDAOImpl.queryAll(UserInfoDAOImpl.java:181)  
love_zongming的主页 love_zongming | 初学一级 | 园豆:194
提问于:2013-04-30 20:20
< >
分享
最佳答案
0

你可以试试在hibernate.cfg.xml文件中加上<property name="format_sql">true</property>,那可以更清楚的看清你的sql语句。还有就是你有没有是过用其他查询方法,比如Criteria,Query

收获园豆:5
cel | 菜鸟二级 |园豆:380 | 2013-04-30 20:53

没有用到这个文件hibernate.cfg.xml, applicationContext.xml里面也是一样加<property name="format_sql">true</property>这句么?

 

改用sql语句可以实现查询Query query= getSession().createSQLQuery(sql) 可以执行,

love_zongming | 园豆:194 (初学一级) | 2013-04-30 21:12

看你输出的那形式,你用<property name="show_sql">true</property>了吧?哪里用的那句,如果是在applicationContext.xml里面用的,那么<property name="format_sql">true</property>也应该可以用。那句的作用是输出更接近一般的sql语句的格式,你先试试,看输出的语句有什么变化没

cel | 园豆:380 (菜鸟二级) | 2013-04-30 21:18

@cel: 加了这句, 效果还是一样的呢select userinfo0_.id as id0_, userinfo0_.company_name as company2_0_, userinfo0_.user_name as user3_0_, 
userinfo0_.mobile_number as mobile4_0_ from Demo.dbo.user_info userinfo0_,Demo.dbo.user_info去掉dbo就可以查询出来

love_zongming | 园豆:194 (初学一级) | 2013-04-30 21:45

喔,如果程序运行正确,就别加那句了,它只是为了让语句跟接近sql,也没什么别的作用

cel | 园豆:380 (菜鸟二级) | 2013-04-30 21:48

@cel:   谢谢你啦,在Javabean中**.hbm.xml 去掉schema="dbo"  这句  搞定了~ 

love_zongming | 园豆:194 (初学一级) | 2013-04-30 21:59
其他回答(1)
0

在Javabean中**.hbm.xml 去掉schema="dbo"  这句

love_zongming | 园豆:194 (初学一级) | 2013-04-30 21:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册