Hibernate查询—利用Criteria完成表的查询操作
来源:互联网 发布:sem优化策略 编辑:程序博客网 时间:2024/05/15 15:41
Hibernate 利用Criteria完成表的查询操作
1. 在Navicat中创建hibdb数据库并设计department表和user表
1)department表
2)users表
外键
2. 在myeclipse的DB Browser窗格中创建与数据库hibdb的连接;
3. 为创建的Java工程添加hibernate的支持;
4. 在MyEclipse的DB Browser窗格中利用Hivernate反向工程(Hibernate Reverse Engineering)生成class表和student表的映射文件及POJO类。
(注第2、3、4步骤可以参考我的其它几篇文章)
5. 创建测试类
1)CritiriaDao.java
import java.util.Iterator;import java.util.List;import java.util.Set;import org.hibernate.Criteria;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.criterion.MatchMode;import org.hibernate.criterion.Restrictions;import com.HibernateSessionFactory;import com.entity.Department;import com.entity.Users;public class CriteriaDao {public void seDname(String dname){Session session = HibernateSessionFactory.getSession();//根据班级名称查询department表Criteria criteria = session.createCriteria(Department.class);criteria.add(Restrictions.eq("depName", dname));criteria.setMaxResults(20);List result = criteria.list();Iterator it = result.iterator();while(it.hasNext()){Department dep = (Department)it.next();System.out.println("班级id:"+dep.getDepId()+" "+"班级名称:"+dep.getDepName());}session.close();}public void seSname(String sname){//根据学生姓名模糊查询user表Session session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Users.class);criteria.add(Restrictions.like("usrDesc", sname,MatchMode.ANYWHERE));criteria.setMaxResults(20);List result2 = criteria.list();Iterator it2 = result2.iterator();while(it2.hasNext()){Users user = (Users)it2.next();System.out.println("姓名:"+user.getUsrDesc()+" 年龄:"+user.getAge()+" 班级:"+user.getDepartment().getDepName());}session.close();}public void seExact(String sname){//根据学生姓名精确查询user表Session session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Users.class);criteria.add(Restrictions.eq("usrDesc", sname));criteria.setMaxResults(20);List result3 = criteria.list();Iterator it3 = result3.iterator();while(it3.hasNext()){Users user = (Users)it3.next();System.out.println("姓名:"+user.getUsrDesc()+" 年龄:"+user.getAge()+" 班级:"+user.getDepartment().getDepName());}session.close();}public void seCombine(String usrDesc,int age){//组合查询Session session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Users.class);criteria.add(Restrictions.eq("usrDesc", usrDesc)).add(Restrictions.eq("age", age));List result4 = criteria.list();Iterator it4 = result4.iterator();while(it4.hasNext()){Users user = (Users)it4.next();System.out.println("姓名:"+user.getUsrDesc()+" 年龄:"+user.getAge()+" 班级:"+user.getDepartment().getDepName());}session.close();}public void seDep(String depName){//查询某个班级的学生Session session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Department.class);criteria.add(Restrictions.eq("depName", depName));List result5 = criteria.list();Iterator it5 = result5.iterator();while(it5.hasNext()){Department d = (Department)it5.next();Set set = d.getUserses();Iterator its = set.iterator();while(its.hasNext()){System.out.println("学生姓名:"+((Users) its.next()).getUsrDesc());}}session.close();}public void seUsr(String usrDesc){//查询一个学生所在的班级Session session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Users.class);criteria.add(Restrictions.eq("usrDesc", usrDesc));List result6 = criteria.list();Iterator it6 = result6.iterator();while(it6.hasNext()){System.out.println(((Users) it6.next()).getDepartment().getDepName());}session.close();}}
2)Test1.java
public class Test1 {public static void main(String[] args) {// TODO Auto-generated method stubCriteriaDao hq = new CriteriaDao();//根据班级名称查询department表hq.seDname("101");//根据学生姓名模糊查询user表hq.seSname("li%");//根据学生姓名精确查询user表hq.seExact("lili");//组合查询hq.seCombine("lili", 21);//查询某个班级的学生hq.seDep("101");//查询一个学生所在的班级hq.seUsr("lili");}}
0 0
- Hibernate查询—利用Criteria完成表的查询操作
- Hibernate查询—利用HQL完成表的查询操作
- Hibernate的Criteria查询
- 使用Hibernate Criteria完成灵活的组合查询
- Hibernate.Criteria完成多件条组合分页查询
- Hibernate中,利用Criteria查询容器实现sql的写法
- Hibernate中,利用Criteria查询容器实现sql的写法
- Hibernate Criteria的嵌套查询
- hibernate的Criteria作连表查询
- Hibernate的Criteria查询总结
- 关于Hibernate的Criteria查询
- 了解hibernate的Criteria查询
- Hibernate Criteria多表查询
- Hibernate的查询 标准(Criteria)查询
- Hibernate的查询 标准(Criteria)查询
- Hibernate的查询 标准(Criteria)查询
- (3) Hibernate的查询 标准(Criteria)查询
- hibernate查询——criteria查询
- joda-collection 之 Grid源码解析
- Android Studio 优先源码编译的framework.jar(android.jar)
- iOS获取视频第一帧图片
- Convert BST to Greater Tree
- 安卓自定义View基础-绘制饼图
- Hibernate查询—利用Criteria完成表的查询操作
- BZOJ 3798: 特殊的质数 分块打表
- Java性能优化之JVM GC(垃圾回收机制)
- NumPy doc (七)
- Linux 前后台进程切换
- 代码注释,佛祖,神兽
- 串口通信原理
- UTF8编码
- 自用语句-hive