標籤:主鍵自增 comm hiberna rom result _id res max not
//1 建立,調用空參構造
Configuration conf = new Configuration().configure();
//2 根據配置資訊,建立 SessionFactory對象
SessionFactory sf = conf.buildSessionFactory();
Session session = sf.openSession();//每次open session 擷取的都不是同一個對象
Session session = sf.getCurrentSession();//同一個線程綁定的session是一個對象
// 控制事務
Transaction tx = session.beginTransaction();
session.save(object); //持久化狀態
tx.commit();
session.close();
hibernate 主鍵自增策略下插入操作會先執行select count(*) 操作來擷取最大的id值,用來擷取插入本次save的主鍵
hibernate 的一級緩衝機制
HQL:
String hql = " from Stu"; // 查詢所有Customer對象
Query query = session.createQuery(hql);
List<Student> list = query.list(); // 返回list結果
query.uniqueResult();//接收唯一的查詢結果
條件查詢:
//HQL語句中,不可能出現任何資料庫相關的資訊的
// > gt
// > =ge
// < lt
// <= le
// == eq
// != ne
// in in
// between and between
// like like
// is not null isNotNull
// is null isNull
// or or
// and and
Student criteria = session.createCriteria(Student.class);
//執行查詢獲得結果
List<Student> list = criteria.list();
//添加查詢參數 => 查詢cust_id為1的Stu對象
criteria.add(Restrictions.eq("stu_id", 1l));
Stu s = (Student) criteria.uniqueResult();
//建立criteria查詢對象
Criteria criteria = session.createCriteria(Student.class);
//設定分頁資訊 limit ?,?
criteria.setFirstResult(1);
criteria.setMaxResults(2);
//執行查詢
List<Srudent> list = criteria.list();
//查詢總數
//建立criteria查詢對象
Criteria criteria = session.createCriteria(Student.class);
//設定查詢的彙總函式 => 總行數
criteria.setProjection(Projections.rowCount());
//執行查詢
Long count = (Long) criteria.uniqueResult();
sql:
SQLQuery query = session.createSQLQuery("select * from stu");
List<Object[]> list = query.list();
SQLQuery query = session.createSQLQuery("select * from stu");
//指定將結果集封裝到哪個對象中
query.addEntity(Student.class);
// 調用方法查詢結果
List<Student> list = query.list();
//建立sql查詢對象
SQLQuery query = session.createSQLQuery("select * from stu where stu_id = ?");
query.setParameter(0, 1l);
//指定將結果集封裝到哪個對象中
query.addEntity(Student.class);
//調用方法查詢結果
List<Studnet> list = query.list();
//建立sql查詢對象
SQLQuery query = session.createSQLQuery("select * from stu limit ?,? ");
query.setParameter(0, 0);
query.setParameter(1, 1);
//指定將結果集封裝到哪個對象中
query.addEntity(Student.class);
//調用方法查詢結果
List<Studnet> list = query.list();
【hibernate-筆記】