zoukankan      html  css  js  c++  java
  • hql简单查询语句

    session中get()方法只能通过id来查询结果;


    hibernate工具类的完善(HibernateUtil):

    public class HibernateUtil {
    private static SessionFactory sessionFactory;
    private HibernateUtil(){}
    static{
    Configuration cfg=new Configuration();
    cfg.configure();
    sessionFactory=cfg.buildSessionFactory();
    }
    public static SessionFactory getSessionFactory(){
    return sessionFactory;
    }
    public static Session getSession(){
    return sessionFactory.openSession();
    }

    /*
    * 增加
    */
    public static void add(Object entity){
    Session s=null;
    Transaction tx=null;
    try{
    s=HibernateUtil.getSession();
    tx=s.beginTransaction();
    s.save(entity);
    tx.commit();
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }

    /*
    * 更新
    */
    public static void update(Object entity){
    Session s=null;
    Transaction tx=null;
    try{
    s=HibernateUtil.getSession();
    tx=s.beginTransaction();
    s.update(entity);
    tx.commit();
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }

    /*
    * 删除
    */
    public static void delete(Object entity){
    Session s=null;
    Transaction tx=null;
    try{
    s=HibernateUtil.getSession();
    tx=s.beginTransaction();
    s.delete(entity);
    tx.commit();
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }
    /*
    * 根据id查询结果
    */
    public static Object get(Class clazz,Serializable id){
    Session s=null;
    try{
    s=HibernateUtil.getSession();
    Object obj=s.get(clazz, id);
    return obj;
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }
    }

    通过名字查询的方法

    static void query(String name){
    Session s=null;
    try{
    s=HibernateUtil.getSession();
    String sql="from UserTest as user where name=?";
    Query query=s.createQuery(sql);
    query.setString(0, name);
    List<UserTest> list=query.list();
    for(UserTest user:list){
    System.out.println(user.getName());
    }

    }finally{
    if(s!=null){
    s.close();
    }
    }
    }


     针对上述程序做如下 修改

     hql的命名参数

    String sql="from  UserTest as user where user.name=:n";

    query.setString("n",name);

    实现分页的查询 

    query.setFirstResult(200); 从第几条开始

    query.setMaxResults(10); 一共查询几条



  • 相关阅读:
    散户如何战胜专业投资机构
    机器学习总结
    进程线程及堆栈关系的总结
    线程堆栈是如何增长的
    Ubuntu下CodeBlocks控制台程序中文显示乱码解决问题
    jdk 安装
    python文件运行报错:Error: Please select a valid Python interpreter
    python 解释器安装
    allure在pycharm下运行出现以下乱码的提示 解决方案
    pytest 测试环境框架搭建
  • 原文地址:https://www.cnblogs.com/GodFather001/p/2279239.html
Copyright © 2011-2022 走看看