單詞
unquestResult 唯一結(jié)果
lazy 延遲加載
cascade 級(jí)聯(lián)
inverse 反轉(zhuǎn)
Entity 實(shí)例
創(chuàng)建工廠
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
得到session
Session session = sf.openSession();
增刪改查
Transaction ts = session.beginTransaction(); //開(kāi)啟事務(wù)
try {
User user2=new User();
user2.setId(28);
// session.save(user2); insert 添加
// session.delete(user2); delete 刪除
ts.commit(); //提交事務(wù)
List<User> 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();
}
查找單個(gè)對(duì)象
User user = (User)session.get(User.class, 27);
唯一結(jié)果
Object object = session.createSQLQuery("select count(*) from Employee").uniqueResult();
hql查詢
普通增刪改建議使用
from 類名 where 字段名
例如 :from User where empno=111
占位符賦值
//通過(guò)?賦值
String hql="from User where empno=? and username=?";
session.createQuery(hql).setParameter(0, "111").setParameter(1, "小迪").list();
//通過(guò):賦值
String hql="from User where empno=:a and username=:b";
setParameter("a", "111").setParameter("b", "小迪").
//通過(guò)對(duì)象賦值
String hql="from User where empno=:empno and username=:username";
setProperties(new User("小迪","111"))
原生sql
String sql="select * from employee";
List<Object[]> list = session.createSQLQuery(sql).list();
for (Object[] objects : list) {
System.out.println(objects[0]); //輸出無(wú)法直接進(jìn)行模型化 ,復(fù)雜查詢建議使用
}
List<User> list2 = session.createSQLQuery(sql).addEntity(User.class).list();
for (User user : list2) {
System.out.println(user);
}