2013年12月31日

SQL查询 addScalar()或addEntity()

摘要: Hibernate除了支持HQL查询外,还支持原生SQL查询。对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。该接口是Query接口的子接口。执行SQL查询步骤如下:1、获取HibernateSession对象2、编写SQL语句3、通过Session的createSQLQuery方法创建查询对象4、调用SQLQuery对象的addScalar()或addEntity()方法将选出的结果与标量值或实体进行关联,分别用于进行标量查询或实体查询5、如果SQL语句包含参数,调用Query的setXxxx方法为参数赋值6、 阅读全文

posted @ 2013-12-31 21:04 我竟然比我还帅 阅读(555) 评论(0) 推荐(0) 编辑

Hibernate HQL基础 使用参数占位符

摘要: 在HQL中有两种方法实现使用参数占用符1、使用? 使用?设置参数占位符,之后通过setString()和setInteger()等方法为其赋值。如: Query query = session.createQuery("from Guestbook where id<?"); query.setInteger(0,12);2、使用名称 使用名称作为占位符不用依照参数的顺序来设置参数,并且使用HQL具有更好的可读性。如: Query query = session.createQuery("from Guestbook where id<:begin&q 阅读全文

posted @ 2013-12-31 12:13 我竟然比我还帅 阅读(1629) 评论(0) 推荐(0) 编辑

HQL和Criteria(转)

摘要: HQL(Hibernate Query Language) 面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类和属性其他部分不区分大小写);HQL中查的是对象而不是和表,并且支持多态;HQL主要通过Query来操作,Query的创建方式: Queryq = session.createQuery(hql);lfrom Personlfrom User user whereuser.name=:namelfrom User user where user.name=:nameand user.birthday list=query.list(); for(User. 阅读全文

posted @ 2013-12-31 12:03 我竟然比我还帅 阅读(308) 评论(0) 推荐(0) 编辑

Hibernate中3种结果转换的详细说明(转)

摘要: Hibernate中3种结果转换的详细说明 在hibernate使用的过程中.我们通常需要对结果进行解释.Hibernate为我们提供了以下3种解释方法:Transformers.ALIAS_TO_ENTITY_MAP//把输出结果转换成mapTransformers.TO_LIST//把结果按顺序排进Listransformers.aliasToBean(target)//把结果通过setter方法注入到指定的对像属性中 在Hibernate中Transformers的所有转换都是需要实现ResultTransformer接口详解ALIAS_TO_ENTITY_MAP ,太简单了就是把key 阅读全文

posted @ 2013-12-31 11:22 我竟然比我还帅 阅读(572) 评论(0) 推荐(0) 编辑

SQL中 and or优先级问题(转)

摘要: 刚刚在项目中遇到这样一个问题,SQL语句如下:select * from LOAN_BACK_LIBRARY where LIBRARY_ID=1 or LIB_ID=1 and STATUS=3我想要的结果的条件是:1. LIBRARY_ID=1 或者 LIB_ID=1 2.STATUS=3但是结果并非如此,出现了STATUS!=3的结果,但是却匹配了 LIBRARY_ID=1 or LIB_ID=1为什么呢原来这个SQL的执行是这样的:select * from LOAN_BACK_LIBRARY where LIBRARY_ID=1 or LIB_ID=1 and STATUS=3修改为 阅读全文

posted @ 2013-12-31 09:31 我竟然比我还帅 阅读(174) 评论(0) 推荐(0) 编辑

导航