Criteria学习001之初步认识
来源:互联网 发布:如何删除淘宝收货地址 编辑:程序博客网 时间:2024/05/03 13:27
工作2年多了,Hibernate使用不多,更别说精通了。平时都是习惯写sql,连hql都不太想写,觉得别扭,特别是如果查询比较复杂时,需要根据执行计划确保sql较优,如果是hibernate来自动生成,心里特不踏实。本人对hibernate一直比较抵触。不愿花时间去深入学习hibernate,更别说Criteria了。现在换了新公司,新公司的项目使用hibernate的,并且查询都是用Criteria,这就逼得我不得不学习了。现在慢慢的一步一步的记录下学习过程吧。
Criteria是一种比hql更面向对象的查询方式,使用它,不需要你写sql,hql,一切都自动生成。
废话不多说了,简单搭建了个hibernate环境,动手敲代码,通过小例子来慢慢学习吧。
Student.java
package com.fei.hibernate.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="student")public class Student {@Id@GeneratedValue(strategy=GenerationType.IDENTITY)private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
TestModel.java
package com.fei.hibernate.model;import java.util.List;import org.hibernate.Criteria;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.criterion.Order;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test;public class TestModel {public static SessionFactory sf=null;@BeforeClasspublic static void beforeClass(){ sf=new Configuration().configure().buildSessionFactory();}@AfterClasspublic static void afterClass(){sf.close();}/** * select * from student order by age asc limit 1,4; */@Testpublic void test01(){Session session = sf.openSession();Criteria criteria = session.createCriteria(Student.class);criteria.addOrder(Order.asc("age"));criteria.setMaxResults(4);criteria.setFirstResult(1);List<Student> students = criteria.list();print(students);session.close();}private void print(List<Student> students){System.out.println("===================================");System.out.println("id\t name\t age\t");for(Student s : students){System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t");}}}
运行结果
Hibernate: select this_.id as id0_0_, this_.age as age0_0_, this_.name as name0_0_ from student this_ order by this_.age asc limit ?, ?===================================id name age5张蕊154蔡琰166西施162貂蝉18
代码下载
0 0
- Criteria学习001之初步认识
- struts2 学习之 redirectAction初步认识
- H264学习初步认识
- 初步认识机器学习
- scala之初步认识
- 计算机网络之初步认识
- CoordinatorLayout之初步认识
- PowerPC-MPC603e内核学习笔记之初步认识
- 我的学习之旅:android:ListView的初步认识
- lucene学习01之简单小例子初步认识lucene
- C++学习之对string流的初步认识
- Hibernate 之 Criteria 自我学习
- 学习java的初步认识
- AngularJS初步认识与学习
- AngularJs初步认识与学习
- Java之JNI初步认识
- MongoDB之Shard初步认识
- MongoDB之Shard初步认识
- Qwt6.1.0移植Linux(X86和ARM)小结
- 选择排序
- c数据结构的顺序存储的实现
- POJ 1019 Number Sequence 题解
- uva 816 - Abbott's Revenge(有一点难度的bfs迷宫题目)
- Criteria学习001之初步认识
- POJ 1979 Red and Black
- java内存分配
- GDAL库——读取图像并提取基本信息
- 疑难 : Win8下安装的.Net 2.0-3.5总是提示损坏的映像解决办法
- CENTOS 6.4挂载你的移动硬盘
- osgi应用使用桥接的方式打成war包部署在websphere上时遇到的与cxf相关的问题
- POJ 3069 Saruman‘s Army
- python win32com