一、获取Session对象
//读取配置文件,创建Configuration
Configuration congiguration = new Configuration().configure();
//解析映射文件,创建SessionFactory
SessionFactory sf = configuration.buildSessionFactory();
//打开Session
Session session = sf.openSession();
//开启事务
Transaction tran = session.beginTransaction();
//接下来进行持久化操作
二、还是以Oracle中的Dept和Emp为例:
//查询指定工作Job和包含E字母的员工编号和姓名(使用addEntity()将Emp集映射成对象)
String sql = "select e.empno,e.ename from emp e where e.job=:job and e.ename like :ename ";
List<Object[]> list = session.createSQLQuery(sql).setString("job","SALESMAN").setString("ename","%E%").list();
for(Object[] obj:list){
System.out.println(obj[0]+"....."+obj[1]);
}
//查询指定职位的员工,并打印员工姓名和所在部门名称
String sql = "select e.*,d.* from emp inner join dept on e.deptno = d.deptno and e.job = :job";
List<Object[]> list = session.createSQLQuery(sql).addEntity("e",Emp.class).addJoin("d","e.dept").setString("job","SALESMAN");
for (Object[] objects : list) {
Emp emp = (Emp) objects[0];
Dept dept = (Dept) objects[1];
System.out.println(emp.getEname() +"....."+dept.getDname());
}
tran.commit();