Hibernate两个表关联的增删改查_hibernate增删改查

其他范文 时间:2020-02-27 04:15:24 收藏本文下载本文
【www.daodoc.com - 其他范文】

Hibernate两个表关联的增删改查由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“hibernate增删改查”。

一对多的CRUD

增:

第一种:

//大概是向某个班级中添加学生

public boolean save(int id,Salary s){ SeionFactory sf=null;Seion seion=null;Transaction tx=null;try {

sf = new Configuration().configure().buildSeionFactory();seion = sf.openSeion();tx=seion.beginTransaction();

Employee e=(Employee)seion.get(Employee.cla,id);Salary sa=new Salary();

sa.setMonths(s.getMonths());sa.setPay(s.getPay());e.getSalary().add(sa);seion.save(e);tx.commit();return true;} catch(HibernateException e){

// TODO Auto-generated catch block e.printStackTrace();return false;} }

第二种:

public boolean save(Salary s,Employee em){ SeionFactory sf=null;Seion seion=null;Transaction tx=null;try {

sf = new Configuration().configure().buildSeionFactory();seion = sf.openSeion();tx=seion.beginTransaction();Employee e=new Employee();e.setName(em.getName());e.setAddre(em.getAddre());

Salary sa=new Salary();

sa.setMonths(s.getMonths());sa.setPay(s.getPay());e.getSalary().add(sa);seion.save(e);tx.commit();return true;} catch(HibernateException e){

// TODO Auto-generated catch block e.printStackTrace();return false;

}finally{

seion.close();sf.close();} }

删:

//根据传过来的学生id,删除学生信息。需要级联删除,在配置的时候加上cascade=“all”

public boolean delete(int id){ SeionFactory sf=null;Seion seion = null;try { sf = new Configuration().configure().buildSeionFactory();

seion = sf.openSeion();Transaction tx=seion.beginTransaction();Employee em=(Employee)seion.get(Employee.cla, id);seion.delete(em);tx.commit();return true;} catch(HibernateException e){ // TODO Auto-generated catch block e.printStackTrace();return false;}finally{ seion.close();sf.close();} }

多对一的CRUD

查询所有:《外键在多的一方的表中》

dao层:

先查多的一方的所有 public List selectStudent(){

SeionFactory sf = new Configuration().configure().buildSeionFactory();

Seion seion = sf.openSeion();String hql=“from Student”;

Query query=seion.createQuery(hql);List stu = query.list();return stu;}

根据多的一方的id查询一的一方

public Claes selectClaes(Student student){

SeionFactory sf = new Configuration().configure().buildSeionFactory();

Seion seion = sf.openSeion();

Student stu=(Student)seion.get(Student.cla, student.getId());

Claes claes=stu.getClaes();return claes;}

service层的遍历拼接:

public List infoServlce(){

HibernateImpl dao=new HibernateImpl();List student=dao.selectStudent();List info=new ArrayList();for(Student st:student){

Claes claes=dao.selectClaes(st);

Info in=new Info(st.getName(),claes.getName());

System.out.println(info.toString());info.add(in);}

return info;}

Test版本的一对多,多对一的增删改差

多对一测试的CRUD

package dao;

import org.hibernate.Seion;import org.hibernate.SeionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;

import pojo.Claes;import pojo.Student;

public cla HibernateTest { @Test public void save(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();Seion seion = sf.openSeion();Transaction tx = seion.beginTransaction();Claes c = new Claes();c.setName(“1208C”);Student s = new Student();s.setName(“张三”);s.setClaes(c);seion.save(s);tx.commit();seion.close();sf.close();

}

@Test public void select(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();

Seion seion = sf.openSeion();

Transaction tx = seion.beginTransaction();Student s =(Student)seion.get(Student.cla, 6);String username = s.getName();Claes c = s.getClaes();System.out.println(username + “:” + c.toString());tx.commit();seion.close();sf.close();}

@Test public void delete(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();

Seion seion = sf.openSeion();

Transaction tx = seion.beginTransaction();Student s =(Student)seion.get(Student.cla, 4);seion.delete(s);tx.commit();seion.close();sf.close();}

@Test public void update(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();

Seion seion = sf.openSeion();

Transaction tx = seion.beginTransaction();Claes c=(Claes)seion.get(Claes.cla, 2);Student s=(Student)seion.get(Student.cla, 3);s.setClaes(c);tx.commit();seion.close();sf.close();} }

一对多测试的CRUD

package test;

import java.util.Set;

import org.hibernate.Seion;import org.hibernate.SeionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;

import pojo.Claes;import pojo.Student;

public cla HibTest { @Test public void save(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();Seion seion = sf.openSeion();Transaction tx = seion.beginTransaction();Student s1=new Student();s1.setName(“任阳东”);Student s2=new Student();s2.setName(“田鑫圆”);

Claes c1=new Claes();c1.setName(“1207C”);

Set set=c1.getStudent();set.add(s1);set.add(s2);seion.save(c1);tx.commit();seion.close();sf.close();} @Test public void delete(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();Seion seion = sf.openSeion();Transaction tx = seion.beginTransaction();Claes c=(Claes)seion.get(Claes.cla, 2);seion.delete(c);tx.commit();seion.close();sf.close();} @Test public void get(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();Seion seion = sf.openSeion();Transaction tx = seion.beginTransaction();Claes c=(Claes)seion.get(Claes.cla, 3);System.out.println(c.getName());for(Student s:c.getStudent()){ System.out.println(s.toString());} tx.commit();seion.close();sf.close();} }

一对多双向关联测设的CRUD

package test;

import java.util.Set;

import org.hibernate.Seion;import org.hibernate.SeionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;

import pojo.Claes;import pojo.Student;

public cla HibTest { @Test public void save(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();Seion seion = sf.openSeion();Transaction tx = seion.beginTransaction();Student s1=new Student();s1.setName(“任阳硕”);Student s2=new Student();s2.setName(“程圆”);

Claes c1=new Claes();c1.setName(“1208B”);

Set set=c1.getStudent();set.add(s1);set.add(s2);seion.save(c1);tx.commit();seion.close();sf.close();} @Test public void delete(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();Seion seion = sf.openSeion();Transaction tx = seion.beginTransaction();Claes c=(Claes)seion.get(Claes.cla, 4);seion.delete(c);tx.commit();seion.close();sf.close();} @Test public void get(){ SeionFactory sf = new Configuration().configure().buildSeionFactory();Seion seion = sf.openSeion();Transaction tx = seion.beginTransaction();Claes c=(Claes)seion.get(Claes.cla, 5);System.out.println(c.getName());for(Student s:c.getStudent()){ System.out.println(s.toString());} tx.commit();seion.close();sf.close();} }

下载Hibernate两个表关联的增删改查word格式文档
下载Hibernate两个表关联的增删改查.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文