// 级联关系反转inverse,默认为false
public void inverseEmp() {
session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
Emp e = (Emp) session.get(Emp.class, 8101);
Dept d = (Dept) session.get(Dept.class, new Byte("30"));
e.setDept(d);
d.getEmps().add(e);
tx.commit();
HibernateUtil.closeSession();
}
// 关联关系中的cascade属性,级联删除
public void cascadeDel() {
session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
Dept d = (Dept) session.load(Dept.class, new Byte("70"));
session.delete(d);
tx.commit();
HibernateUtil.closeSession();
}
// 关联关系中的cascade属性,级联添加
public void cascadeAdd() {
session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
Dept d = new Dept();
d.setDeptNo(new Byte("70"));
d.setDeptName("皇后酒店");
d.setLocation("国王大道");
Emp e1 = new Emp(8101, "小桌子");
Emp e2 = new Emp(8102, "小凳子");
d.getEmps().add(e1);
d.getEmps().add(e2);
session.save(d);
tx.commit();
HibernateUtil.closeSession();
}
// dept-emp一对多
public void qDept() {
session = HibernateUtil.getSession();
sql = "from Dept where deptNo =30";
Query query = session.createQuery(sql);
Dept d = (Dept) query.uniqueResult();
Set<Emp> emps = d.getEmps();
System.out.println("部门:" + d.getDeptName());
for (Emp e : emps) {
System.out.println("员工:" + e.getEname());
}
HibernateUtil.closeSession();
}
// emp-dept联合查询多对一
public void qEmp() {
session = HibernateUtil.getSession();
sql = "from Emp where empNo =7788";
Query query = session.createQuery(sql);
Emp e = (Emp) query.uniqueResult();
System.out.println("姓名:" + e.getEname() + "部门:"
+ e.getDept().getDeptName());
HibernateUtil.closeSession();
}
// 通过迭代器查询
public void qDeptByIt() {
session = HibernateUtil.getSession();
sql = "from Dept";
Query query = session.createQuery(sql);
Iterator<Dept> it = query.iterate();
while (it.hasNext()) {
Dept d = it.next();
System.out.println(d.getDeptName());
}
HibernateUtil.closeSession();
}
// 查询一列
public void qOneDept() {
session = HibernateUtil.getSession();
sql = "from Dept where deptName like ?";
Query query = session.createQuery(sql);
List<Byte> objArr = query.list();
for (Byte b : objArr) {
System.out.println(b);
}
HibernateUtil.closeSession();
}
// 查询部分列
public void qSomeDept() {
session = HibernateUtil.getSession();
sql = "select deptNo,deptName from Dept";
Query query = session.createQuery(sql);
List<Object[]> objArr = query.list();
for (Object[] obj : objArr) {
System.out.println(obj[0] + "," + obj[1]);
}
HibernateUtil.closeSession();
}
// 统计记录数
public void countDept() {
session = HibernateUtil.getSession();
sql = "select count(*) from Dept";
Query query = session.createQuery(sql);
int num = ((Long) query.uniqueResult()).intValue();
System.out.println(num);
session.close();
}
// 动态查询
public void qdept() {
DeptCondition dc = new DeptCondition();
dc.setDeptNo(new Byte("20"));
session = HibernateUtil.getSession();
StringBuffer sb = new StringBuffer("from Dept where 1=1");
/*
* if(dc.getDeptNo()>0){ sb.append("and deptNo>:deptNo"); }
*/
sql = sb.toString();
Query query = session.createQuery(sql);
query.setProperties(dc);
query.setFirstResult(0);
query.setMaxResults(2);
List<Dept> dlist = query.list();
for (Dept d : dlist) {
System.out.println(d.getDeptName());
}
}
// 查询语句
/*
* public void queryDept() { session = HibernateUtil.getSessi bon(); sql =
* "from Dept where deptName=:deptName"; String deptName = "SALES";
* DeptCondition dc = new DeptCondition(deptName); Query query =
* session.createQuery(sql); query.setProperties(dc); List<Dept> dlist =
* query.list(); for (Dept d : dlist) { System.out.println(d.getDeptNo());
*
* } HibernateUtil.closeSession();
*/
/* } */
// Detp表的操作
public void delete() {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
Dept d = new Dept();
d.setDeptNo(new Byte("60"));
session.delete(d);
tx.commit();
HibernateUtil.closeSession();
}
// session.get(obj.class,"");
public void update1() {
// 读取总配置文件
Configuration conf = new Configuration().configure();
// 创建SessionFactory对象
SessionFactory sf = conf.buildSessionFactory();
// 打开一个session会话
Session session = sf.openSession();
Dept d = (Dept) session.load(Dept.class, new Byte("50"));
d.setDeptName("凤巢");
d.setLocation("北京");
Transaction tx = session.beginTransaction();
tx.commit();
session.close();
}// session.get(obj.class,"");
public void update2() {
// 读取总配置文件
Configuration conf = new Configuration().configure();
// 创建SessionFactory对象
SessionFactory sf = conf.buildSessionFactory();
// 打开一个session会话
Session session = sf.openSession();
Dept d = new Dept();
d.setDeptNo(new Byte("60"));
d.setDeptName("凤巢");
// d.setLocation("北京");
Transaction tx = session.beginTransaction();
session.merge(d);
tx.commit();
session.close();
}
// session.get(obj.class,"");
public void get() {
// 读取总配置文件
Configuration conf = new Configuration().configure();
// 创建SessionFactory对象
SessionFactory sf = conf.buildSessionFactory();
// 打开一个session会话
Session session = sf.openSession();
Dept d = (Dept) session.load(Dept.class, new Byte("50"));
System.out.println("部门:" + d.getDeptName() + " 位置:" + d.getLocation());
}
// session.save(obj)
public void add() {
// 读取总配置文件
Configuration conf = new Configuration().configure();
// 创建SessionFactory对象
SessionFactory sf = conf.buildSessionFactory();
// 打开一个session会话
Session session = sf.openSession();
// 开启事务
Transaction tx = session.beginTransaction();
Dept d = new Dept();
d.setDeptNo(new Byte("60"));
d.setDeptName("技术部");
d.setLocation("郑州");
// 插入数据,底层执行SQL insert into 语句
session.save(d);
// 提交事务
tx.commit();
// 关闭会话
session.close();
}
