单词
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<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();
}
查找单个对象
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<Object[]> list = session.createSQLQuery(sql).list();
for (Object[] objects : list) {
System.out.println(objects[0]); //输出无法直接进行模型化 ,复杂查询建议使用
}
List<User> list2 = session.createSQLQuery(sql).addEntity(User.class).list();
for (User user : list2) {
System.out.println(user);
}