Hibernate

单词

unquestResult 唯一结果
lazy 延迟加载
cascade 级联
inverse 反转
Entity 实例

创建工厂


Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();

得到session

Session session = sf.openSession();

增删改查

Transaction ts = session.beginTransaction(); //开启事务
        try {
            User user2=new User();
            user2.setId(28);
//          session.save(user2);   insert 添加
//          session.delete(user2);  delete  删除
              ts.commit();       //提交事务          
            List list = session.createQuery("from User").list(); //select 查找
            for (User user : list) {
                System.out.println(user);
            }
        } catch (Exception e) {
            ts.rollback();
        } finally {
            session.close();
            sf.close();
        }

查找单个对象

User user = (User)session.get(User.class, 27);

唯一结果

Object object = session.createSQLQuery("select count(*) from Employee").uniqueResult();

hql查询

普通增删改建议使用

 from 类名 where 字段名
 例如 :from User where empno=111

占位符赋值


//通过?赋值
String hql="from User where empno=? and username=?";
session.createQuery(hql).setParameter(0, "111").setParameter(1, "小迪").list();

//通过:赋值
String hql="from User where empno=:a and username=:b";
setParameter("a", "111").setParameter("b", "小迪").

//通过对象赋值
String hql="from User where empno=:empno and username=:username";
setProperties(new User("小迪","111"))

原生sql

  String sql="select * from employee";
               List list = session.createSQLQuery(sql).list();    
           for (Object[] objects : list) {
            System.out.println(objects[0]); //输出无法直接进行模型化 ,复杂查询建议使用
        }
        
List list2 = session.createSQLQuery(sql).addEntity(User.class).list();
           for (User user : list2) {
                System.out.println(user);
            }

你可能感兴趣的:(Hibernate)