createSQLQuery与createQuery的区别】的更多相关文章

本文原址 : http://stta04.javaeye.com/blog/377633hibernate 中createQuery与createSQLQuery 昨晚帮同事看代码到凌晨2点多,今早6点醒来发现他发来信息说报空指针错误,实在无法入睡,起来自己测试了一下,控制台还真的报: 2009-4-25 8:12:34 org.apache.catalina.core.ApplicationContext log信息: java.lang.ClassCastException: [Ljava.…
hibernate中createQuery与createSQLQuery:前者用的hql语句进行查询,后者可以用sql语句查询,前者以hibernate生成的Bean为对象装入list返回,后者则是以对象数组进行存储. 在有时查询部分字段,或实现一些统计查询时很方便.如要统计一个表中各个专业的状态: public List<Object[]> statisticTitileNum(String instituteNumber, String yearTime) { int[] ns; List…
今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变. 一开始写的是hql语句进行统计每个月的数据,但是试了很久,程序一直提醒hql语句异常,没办法,只能修改查询语句了,就改成了sql语句进行统计. 错误就由此产生了,一发不可收拾啊: java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem这个异常解决办法很简单,首先要…
一.unexpected token: *  的解决办法 首先要搞清楚sql与hql的区别! sql操作的是数据库表,而hql操作的是对象! sql中“select * from table”,而hql中" from table对象"! 因为sql用惯了,习惯*,但是hql不认识! 试试:直接 from 对象看看! 办法:String hql = "from KmToolclickCnt where 1=1 "; @Override public GenuineMa…
关于多对多关系 数据库:在使用多对多的关系时,我们能够使用复合主键.也能够不使用,直接引入外键相同能够实现. 在数据库中使用多对多关系时,须要一个中间表. 多对多关系中的数据库结构例如以下: 表:Orders        字段:orderid(主键)..... 表:Users        字段:usersid(主键),.... 中间表: cy_order_user        字段:cy_order_user主键id     外键:cy_orderid(引入Orders表)     外键:…
在平时开发中Hibernate提供的hql基本能够满足我们的日常需求.但是在有些特殊的情况下,还是需要使用原生的sql,并且希望sql查询出来的结果能够绑定到pojo上.hibernate API中的createSQLQuery  和createQuery接口. 就像在这次的项目中,因为表结构要变化,有个新的需求: 要从一个表中查询极个别的字段并且还有几个是求多条数据的和的,之前一直在使用hibernate的API,使用的都是映射过得对象. 原对象及表结构是这样的: @Entity @Table…
该篇文章也贴上来: hibernate 中createQuery与createSQLQuery两者区别是:前者用的hql语句进行查询,后者可以用sql语句查询前者以hibernate生成的Bean为对象装入list返回后者则是以对象数组进行存储所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便突然发现createSQLQuery有这样一个方法可以直接转换对象Query query = session.createSQLQuery(…
hibernate 中createQuery与createSQLQuery两者区别是:前者用的hql语句进行查询,后者可以用sql语句查询前者以hibernate生成的Bean为对象装入list返回,后者则是以对象数组进行存储所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便突然发现createSQLQuery有这样一个方法可以直接转换对象Query query = session.createSQLQuery(sql).addE…
public class DistributeDao implements Serializable{ private SessionFactory sessionFactory; public Session getSession() { return sessionFactory.getCurrentSession(); } public SessionFactory getSessionFactory() { return sessionFactory; } public void set…
hibernate 中createQuery与createSQLQuery两者区别是:前者用的hql语句进行查询,后者可以用sql语句查询前者以hibernate生成的Bean为对象装入list返回后者则是以对象数组进行存储 比如我们在获得session后: createQuery: try{ Session session=this.hibernateTemplate.getSessionFactory().getCurrentSession(); //这里的表名dcn_flow是数据库里的表…
本文原址 : http://stta04.javaeye.com/blog/377633 hibernate 中createQuery与createSQLQuery 昨晚帮同事看代码到凌晨2点多,今早6点醒来发现他发来信息说报空指针错误,实在无法入睡,起来自己测试了一下,控制台还真的报: 2009-4-25 8:12:34 org.apache.catalina.core.ApplicationContext log信息: java.lang.ClassCastException: [Ljava…
createQuery 针对hql语句查询 Query query=getSession().createQuery(hql);int result =((Number) query.iterate().next()).intValue(); createSQLQuery 针对纯sql语句查询 Query query=getSession().createSQLQuery(sql); Object obj = query.uniqueResult();int result=Integer.par…
息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.miracle.dm.doc.catalog.model.DocCatalogInfo 原来的查询语句: String sql = "select a.* from tb_doc_catalog a where a.cat_code like '"+catCode+"%'";Session session = this…
打开cache后query的list和iterator方法区别 将query 的cache打开的话,缓存的是query本身,以hql 生成的 sql ,再加上参数,分页等信息做为key值,而不是query的结果.query的结果是放在session的cache中,和query的cache是有区别的. 1.ehcache.xml文件 <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi=&…
@Override public boolean deleteBySql(String sql) { Session session = getSession(); @SuppressWarnings("unchecked") // Transaction tx = session.beginTransaction(); Query query = session.createSQLQuery(sql); query.executeUpdate(); // tx.commit(); /…
1.hql与sql的区别 sql 面向数据库表查询 hql 面向对象查询 hql : from 后面跟的 类名+类对象 where 后 用 对象的属性做条件 sql: from 后面跟的是表名             where 后 用表中字段做条件 查询 在Hibernate中使用查询时,一般使用Hql查询语句. HQL(Hibernate Query Language),即Hibernate的查询语言跟SQL非常相像.不过HQL与SQL的最根本的区别,就是它是面向对象的. 使用HQL时需要注…
hql 跟 sql 区别  1.hql与sql的区别 sql 面向数据库表查询 hql 面向对象查询 hql : from 后面跟的 类名+类对象 where 后 用对象的属性做条件 sql: from 后面跟的是表名   where 后 用表中字段做条件 查询        在Hibernate中使用查询时,一般使用Hql查询语句. HQL(Hibernate Query Language),即Hibernate的查询语言跟SQL非常相像.不过HQL与SQL的最根本的区别,就是它是面向对象的.…
涉及的表:Cake{Id ,CakeName } CakeSize{ CakeId,-为外键,对应Cake表的字段Id Size } (其中ISession session = NHibernateHelper.GetCurrentSession();) 用法一(返回数值):ISQLQuery query = session.CreateSQLQuery("SELECT COUNT(Id) AS C FROM Cake").AddScalar("C", NHiber…
<?xml version="1.0" encoding="utf-8"?> <hibernate-mapping assembly="Domain" namespace="Domain" xmlns="urn:nhibernate-mapping-2.2"> <class name="DuCardType" table="DuCardType&q…
说明: 使用原生SQL查询时,若要通过addEntity方法引入对象,则查询结果列中必须包含该对象的所有属性,否则会抛出System.IndexOutOfRangeException异常. 结论: 若要使用原生的SQL,建议直接用SQL的方式写语句,不要用addEntity引入对象! http://blog.163.com/it_yinliqing/blog/static/78497271201111253443113/ 涉及的表:Cake{Id ,CakeName } CakeSize{ Ca…
非常多时候我们使用hibernate的session时,都是让session在某一执行环境中保持其唯一. 比如在同一线程内用同一个session.在同一方法内用同一session,这样我们就能够用session里面缓存好的数据.但.我想说的不是缓存,且听我一一道来.       近期试用spring3.0.2+struts2.18+hibernate3.3.2学习搭建一个web项目,出现了一个相当郁闷的问题. 就是我明明配置好了spring管理hibernate事务了,当我在dao中运行hibe…
1.createSQLQuery 1.1默认查询的结果为BigDecimal 1.2通过addScalar("CGD_ID", StandardBasicTypes.LONG)可以将结果直接转为Long StringBuffer sb = new StringBuffer(); sb.append("select g.CGD_ID from em_circle_apply_info a join em_circle_group_def g on a.CAI_CGD_ID =…
session.createQuery("from Classes").list() session.createQuery("from Classes").iterate(); 这两者有什么区别    *  发出sql语句的不同    *  利用缓存的不同…
自动生成hibernate配置文件的时候,会在dao层用到getSession()方法来操作数据库记录,但是他还有个方法getHibernateTemplate(),这两个方法究竟有什么区别呢? 1.使用getSession()方法你只要继承sessionFactory,而使用getHibernateTemplate()方法必须继承 HibernateDaoSupport当然包括sessionFactory,这点区别都不是特别重要的,下面这些区别就很重要了 2.getSession()方法是没有…
转自:https://blog.csdn.net/lxf512666/article/details/52820368 hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性 sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 在hibernate中使用原生sql查询 例如: public User login(User user) throws Exception { String sql = "select id,name,p…
1.概念: Hibernate :Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.着力点对象与对象之间关系 Mybatis:MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .Mybatis着力于POJO与SQL之间的映射关系 Spring Dat…
一.先介绍一下java中的缓存系统JCS(java cache system)  1.JCS(Java Caching System)是一个对象Cache,它可以把Java对象缓存起来,提高那些访问频率很高的Java对象的存取效率.JCS是按照对象的唯一标示来存取对象的,比如说可以按照对象的    hashCode来存取.  2.对于Hibernate来说,可以利用JCS来缓存查询结果,这样当下次访问同样的数据,就无须去数据库取,直接从JCS中取出来,加快了查询速度.  3.当Hibernate…
query的list()和iterate()区别 1.返回的类型不一样,list返回List,iterate返回iterator 2.查询策略不同. 获取数据的方式不一样,list会直接查询数据库,iterate会先到数据库中把id取出来,然后真正要遍历某个对象的时候先到缓存中找 ,如果找不到,以id为条件再发一条sql到数据库,这样如果缓存中没有数据,则查询数据库的次数为n+1 @Test public void fetchAndList(){ Session session = Hibern…
原文:https://blog.csdn.net/yinjian520/article/details/8666695 很多时候我们使用hibernate的session时,都是让session在某一运行环境中保持其唯一.例如在同一线程内用同一个session,在同一方法内用同一session,这样我们就可以用session里面缓存好的数据.但,我想说的不是缓存,且听我一一道来. 最近试用spring3.0.2+struts2.18+hibernate3.3.2学习搭建一个web项目,出现了一个…
区别如下: quert.list() : 1):每次都是通过一条语句直接操作数据库取出所有的数据返回(并且将对象存入hibernate缓存中): 2):不会从一二级缓存中查询数据: 3):之执行一条SQL语句,查询所有. quert.iterate(): 1):iterator首先通过一条语句取出所有数据的id,然后通过id在hibernate的一级缓存中查找是否存在该对象, 2):如果存在则直接取出,如果没有则再次发出一条sql语句通过id取得对象(并且加入到缓存中), 3):这样如果所有的i…