- 浏览: 413859 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
skying007:
...
Mysql coalesce() 函数认识和用法 -
kchiu:
关于这个心跳的发送和接收 晚上全是the fuccking s ...
socket心跳检测 -
bjsq618:
你的想法在大的物流公司已经实现了,只不过他们使用是GPS定位
ddd -
jiaguwen123:
2,AuthenticationHandler类的写法
pa ...
xfire客户端 -
sornor:
总结的不错哟!
Java中的函数yield(),sleep()和wait()的区别
入门 05 - Query接口
我们可以透过 org.hibernate.Query接口的实例来进行查询,透过Query接口,您可以先设定查询参数,之后透过setXXX()等方法,将指定的参数值填入,而不用每次都撰写完整的HQL,直接来看个例子:
参数设定见书(陈天河 ssh集成) 的第406页
在设定参数值时,必须依照 ? 所设定的顺序,并使用对应型态的setXXX()方法,一个执行的例子如下:
您可以使用命名参数:参数(Named Parameter)来取代这个方法,这可以不用依照特定的顺序来设定参数值,并拥有较好的可读性,直接来看个例子:
设定命名参数时,在建立Query时先使用:后跟着参数名,之后我们就可以在setXXX()方法中直接指定参数名来设定参数值,而不用依照特定的顺序。
我们也可以将HQL撰写在程序之外,以避免硬编码(hard code)在程序之中,在需要修改HQL时就很方便,在*.hbm.xml中使用<query/>标签,并在<![CDATA[与]] >之间撰写HQL,撰写的位置是在</hibernate-mapping>之前,例如:
<query>的name属性用来设定查询外部HQL时的名称依据,使用的例子如下:
我们可以透过 org.hibernate.Query接口的实例来进行查询,透过Query接口,您可以先设定查询参数,之后透过setXXX()等方法,将指定的参数值填入,而不用每次都撰写完整的HQL,直接来看个例子:
Query query = session.createQuery("select user.name from User as user where user.age = ? and user.sex = ?"); query.setInteger(0, 25);//设定参数0为第一参数;1为第二个参数?
参数设定见书(陈天河 ssh集成) 的第406页
query.setCharacter(1, 'M'); List names = query.list(); for (ListIterator iterator = names.listIterator(); iterator.hasNext(); ) { String name = (String) iterator.next(); System.out.println("name: " + name); }
在设定参数值时,必须依照 ? 所设定的顺序,并使用对应型态的setXXX()方法,一个执行的例子如下:
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. Hibernate: select user0_.name as x0_0_ from USER user0_ where (user0_.age=? )and(user0_.sex=? ) name: Bush
您可以使用命名参数:参数(Named Parameter)来取代这个方法,这可以不用依照特定的顺序来设定参数值,并拥有较好的可读性,直接来看个例子:
Query query = session.createQuery("select user.name from User as user where user.age = :age and user.sex = :sex"); query.setInteger("age", 25); query.setCharacter("sex", 'M'); List names = query.list(); for (ListIterator iterator = names.listIterator(); iterator.hasNext(); ) { String name = (String) iterator.next(); System.out.println("name: " + name); }
设定命名参数时,在建立Query时先使用:后跟着参数名,之后我们就可以在setXXX()方法中直接指定参数名来设定参数值,而不用依照特定的顺序。
我们也可以将HQL撰写在程序之外,以避免硬编码(hard code)在程序之中,在需要修改HQL时就很方便,在*.hbm.xml中使用<query/>标签,并在<![CDATA[与]] >之间撰写HQL,撰写的位置是在</hibernate-mapping>之前,例如:
User.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="onlyfun.caterpillar.User" table="USER"> <id name="id" type="string"> <column name="user_id" sql-type="char(32)" /> <generator class="uuid.hex"/> </id> <property name="name" type="string" not-null="true"> <column name="name" length="16" not-null="true"/> </property> <property name="sex" type="char"/> <property name="age" type="int"/> </class> <query name="com.abin.User"> <![CDATA[ select user.name from User as user where user.age = :age and user.sex = :sex ]]> </query> </hibernate-mapping>
<query>的name属性用来设定查询外部HQL时的名称依据,使用的例子如下:
Query query = session.getNamedQuery("com.abin.User"); query.setInteger("age", 25); query.setCharacter("sex", 'M'); List names = query.list(); for (ListIterator iterator = names.listIterator(); iterator.hasNext(); ) { String name = (String) iterator.next(); System.out.println("name: " + name); }
发表评论
-
Hibernate 5种查询方式代码示例
2011-08-13 09:52 1707package com.cstp.hibernate; im ... -
Java Hibernate Criteria 用法
2010-11-07 23:43 508215.1. 创建一个Criteria 实例org.hibern ... -
hibernate技巧 封装查询结果
2010-11-07 23:30 1251hibernate技巧 封装查询结果 将hibernate 查 ... -
hibernate调用数据库自定义函数
2010-10-31 17:31 1723本文使用的是Oracle9i数据库,hibernate3.0, ... -
HibernateTemplate 的 find方法使用
2010-10-27 22:04 2296一、find(String queryString); ... -
hibernate分组查询
2010-10-26 21:54 1644private static final Str ... -
Hibernate Criteria
2010-10-10 21:58 990Hibernate QBC查询 QBC查询: ... -
论述Hibernate中抓取策略
2010-10-10 21:27 1315Hibernate抓取策略(fetch ... -
Hibernate3的DetachedCriteria支持
2010-10-10 08:42 913Hibernate3支持DetachedCriteria,这是 ... -
hibernate 中对象操作中evict方法和clear方法的区别
2010-09-14 10:11 1264session.evict(obj),会把指定的缓冲对象进行清 ... -
Hibernate三种状态的区分
2010-09-14 10:02 964Hibernate的对象有3种状态,分别为:瞬时态(Trans ... -
hibernate查询多对多数据范例
2010-09-03 16:38 1069public class StuDao<T> ex ... -
hibernate生成数据库表
2010-08-19 08:22 4140import org.hibernate.cfg.Config ... -
hibernate二级缓存
2010-08-19 07:56 1114二级缓存也称进程级的缓存或SessionFactory级的缓存 ... -
hibernate一级缓存
2010-08-18 23:11 1259一级缓存很短和session的生命周期一致,一级缓存也叫ses ... -
hibernate向MYSQL插入数据的乱码问题
2010-08-17 21:55 1283向数据库插入数据的时候出现乱码,解决办法: 一、数据库连接串 ... -
composite-id 学习
2010-08-15 17:10 1294组件作为联合标识符,必须满足: 它必须实现java.io.Se ... -
hibernate存储过程调用
2010-08-12 17:28 1603听说Hibenate3可以在执行 ... -
Hibernate对视图的操作
2010-08-12 17:08 1261Hibernate对视图进行操作时和对普通的表有些不同,下面就 ... -
findMsgFluxByCp备忘
2010-08-12 14:21 900public List<MsgFlux> fin ...
相关推荐
在ASP.NET中,我们通常使用ADO.NET作为数据访问技术,它为开发者提供了与各种数据库(如SQL Server、Oracle、MySQL等)交互的接口。ADO.NET的核心组件包括DataSet、DataTable、DataRow、Connection、Command、...
- 接口:学习接口的定义和实现,以及接口在多态中的作用。 4. **数组与集合**: - 一维和多维数组:掌握声明、初始化和操作数组的方法。 - 集合类:学习ArrayList、LinkedList、HashSet和Dictionary等集合类的...
11. **接口**:接口定义了一组方法签名,类可以实现接口来指定其必须实现的成员。 12. **匿名类型**:匿名类型是编译器自动生成的类型,用于临时存储和传递数据,通常在 LINQ 查询中使用。 13. **动态类型**:动态...
### Yii快速入门教程知识点 #### 一、基本概念 **1. 入口文件** - **功能**: 入口文件是整个Yii应用的第一个脚本,它负责加载Yii框架以及初始化应用。 - **内容**: 通常包含如下代码: ```php $yii = dirname...
C#是ASP.NET的主要编程语言,它支持面向对象编程,拥有丰富的特性和库,如类、接口、异常处理、LINQ等,这些都对数据库操作提供了便利。C#的强类型系统和静态编译确保了代码的安全性和效率。 3. **ADO.NET** ADO...
这个“C#基础入门教程---11小时学会C#”旨在为初学者提供一个快速掌握C#基础知识的路径。以下是这个教程可能涵盖的一些关键知识点: 1. **编程基础**:首先,教程可能会介绍编程的基本概念,如变量(存储数据的地方...
**LINQ(Language Integrated Query,语言集成查询)**是.NET框架中的一个重要组成部分,它为C#和Visual Basic等编程语言提供了强大的数据查询能力。通过LINQ,开发者可以在代码中使用一致的语法对各种数据源进行...
6. **接口**:接口定义了一组方法签名,类可以实现接口来强制执行特定的行为。这有助于实现多继承的效果。 7. **异常处理**:C#提供了一种结构化的错误处理机制,通过try...catch...finally块捕获和处理运行时可能...
这个“mybatis-plus快速入门项目”是专为初学者设计的,旨在帮助他们快速掌握MyBatis-Plus的基本操作。在这个项目中,你将学习到如何配置、使用以及执行各种SQL操作。 1. **MyBatis-Plus简介** MyBatis-Plus(简称...
2. 面向对象:C#支持类、接口、继承、多态等面向对象特性,使代码结构清晰、易于维护。 3. 垃圾回收:C#拥有内置的垃圾回收机制,自动管理内存,开发者无需手动释放内存。 4. 异常处理:通过try-catch-finally语句块...
**C# 入门教程概览** C#(读作"C sharp")是一种面向对象的编程语言,由微软公司开发,主要用于构建Windows平台上的应用程序,尤其是.NET框架的应用。2009年的C#版本已经是相对成熟的,它包含了丰富的特性和语法,...
### 1.29 LINQ(Language Integrated Query) LINQ是C#中集成的查询语言,用于简化数据查询,支持对象、数据库、XML等多种数据源。 ### 1.30 多线程 多线程允许程序同时执行多个任务,提高CPU利用率。 ### 1.31 ...
《C#入门经典》是一本深受初学者喜爱的编程教程,它为读者提供了一条清晰的学习路径,以掌握C#编程语言。这份压缩包包含了该书的所有源代码,旨在帮助读者更好地理解书中的实例,加深对C#语法和编程概念的理解。 C#...
5. **LINQ(Language Integrated Query)**:LINQ是C#的一个重要特性,它将查询表达式集成到语言中,使得数据访问更加简洁高效。书中会讲述如何使用LINQ查询数据库、集合和其他数据源。 6. **异步编程**:C# 5.0...
《Spark2.x快速入门教程-内含源码以及设计说明书》是一个全面的教程,旨在帮助初学者快速掌握Spark2.x的核心特性和应用。本教程涵盖了多个关键知识点,包括Spark SQL、Structured Streaming、Hive on Spark以及多种...
### Android入门:数据库支持(SQLite)与内容提供器(ContentProvider) #### 一、SQLite数据库支持 **1.1 概述** 在Android开发过程中,SQLite是应用最为广泛的轻量级数据库解决方案之一。它是一个内嵌式的数据库,...
if ($conn->query($sql) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . " " . $conn->error; } $conn->close(); ?> ``` ##### 5.3 表单处理 PHP常被用于处理Web...
了解如何声明和使用变量、操作数据以及如何通过条件语句和循环来控制程序流程是C#入门的关键。 第六章可能涉及面向对象编程(OOP)概念,如类、对象、继承、多态和封装。在C#中,OOP是核心特性,理解如何设计和实现...
在高级主题中,C#的泛型、LINQ(Language Integrated Query)和异步编程值得深入研究。泛型允许创建可重用的数据结构和算法,无需特定的数据类型。LINQ提供了一种统一的查询语言,可以方便地操作各种数据源,如数组...