当前位置: 代码迷 >> 综合 >> org.hibernate.exception.SQLGrammarException: could not extract ResultSet
  详细解决方案

org.hibernate.exception.SQLGrammarException: could not extract ResultSet

热度:112   发布时间:2023-11-19 21:45:22.0

错误如下

org.hibernate.exception.SQLGrammarException: could not extract ResultSet

check the manual that corresponds to your MySQL server version for the right syntax to use near '-BookInfo bookinfo0_ where bookinfo0_.isbn='0102'' at line 1


错误代码

public int findBookPriceByIsbn(String isbn) {String sql = "select b.price from BookInfo b where b.isbn = ?";System.out.println("sql:"+sql);Query query = getSession().createQuery(sql);query.setString(0, isbn);int bi = (int) query.uniqueResult();System.out.println("hahah"+bi);return bi;}

错误原因

跟数据库没有连接上,

一般测试连接正不正常都是通过以下代码实现的

package cn.com.dao.com;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.com.dao.service.BookShopService;
public class Test {
public static void main(String[] args) {ApplicationContext ioc=new ClassPathXmlApplicationContext("applicationContext.xml");DataSource da=ioc.getBean(DataSource.class);try {System.out.println(da.getConnection());} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}
}
}

我运行这个代码,没有报错,也返返回连接的信息,但是

如果把数据库关闭,也测试正常

这个真的是害人不浅啊,但是我不知道为什么?

只有运行这个代码,数据库能够自动生成映射文件对应的表,就说明Spring整合Hibernate的时候连接数据库是没有问题的



  相关解决方案