步骤:
(1)在数据库testdb6中创建学生表student( Integer id, Varchar sname, Integer cid ),班级表class1( Integer id, Varchar cname ),同时在数据库中将student表的外键cid与class1表的主键id进行关联。
创建的过程可以参照这篇文章,http://blog.csdn.net/m_eve/article/details/70850546
Class1表
Student表
然后点击外键,如下图
(2)在MyEclipse中创建与数据库testdb6的连接,创建一个Java项目工程chap,为工程添加Hibernate支持
(3)在MyEclipse的DB Browser窗格中利用Hivernate反向工程(Hibernate Reverse Engineering)生成class表和student表的映射文件及POJO类。
这几步直接参考这篇文章,http://blog.csdn.net/m_eve/article/details/70850546
(4)在Java项目中创建一个测试类Test.java,并完成以下操作。
1)在class表中添加“101”和“102”两个班级
2)在student表中添加4个学生,包括“101”班的“李逵”和“林冲”,“102”班的“孙权”和“周瑜”。
(1)testz.java
package com.entity;
import java.util.Iterator;
import java.util.Set;
import org.hibernate.Session;
import a006.HibernateSessionFactory;
public class testz {
Session s1 = HibernateSessionFactory.getSession();
public Class1 getClass(int id){
Session s1 = HibernateSessionFactory.getSession();
Class1 dep = (Class1)s1.get(Class1.class, id);
s1.close();
return dep;
}
public void ins(){} //插入班级
public void ins(String cname1){
Class1 dep1 = new Class1();
dep1.setCname(cname1); //班级
s1.save(dep1);
}
public void inss(){} //插入学生
public void ins(String sname,Class1 dep1){
Student stu1 = new Student();
stu1.setSname(sname);
stu1.setClass1(dep1);
s1.save(stu1);
}
public void del(){} //删除学生
public void del(int id){
Student stu5 = (Student)s1.get(Student.class, id);//学生ID
s1.delete(stu5);
}
public void que(){} //查询某一个班级的学生
public void que(int cid){
Class1 dep = (Class1)s1.get(Class1.class, cid);
Set students = dep.getStudents();
Iterator it = students.iterator();
while(it.hasNext()){ //查询
Student stu = (Student)it.next();
System.out.println(stu.getSname());
}
}
public void up(){} //某一学生转班
public void up(int sid,int cid){//学生id,班级id
Student stu1 = (Student)s1.get(Student.class, sid);//学生ID
Class1 dep1 = (Class1)s1.get(Class1.class, cid); //转班
stu1.setClass1(dep1);
}
}
(2)test.java,每次执行时调用一个方法,将其它方法注释即可
package com.entity;
import org.hibernate.Session;
import org.hibernate.Transaction;
import a006.HibernateSessionFactory;
public class test {
public static void main(String[] args) {
Session s1 = HibernateSessionFactory.getSession();
Transaction tx = null;
tx = s1.beginTransaction();
// insert a = new insert(); //插入班级
// a.ins("101");
//
// Class1 dep1 = (Class1)s1.get(Class1.class,1); //插入学生
// testz b = new testz();
// b.ins("林冲",dep1);
//
// testz c = new testz(); //删除学生
// c.del(6);
testz d = new testz();
d.up(2, 1); //将id为2的学生转到id为1的班级
// testz e = new testz();
// e.que(1); //查询id为1的班级的学生
tx.commit();
}
}
最后注意一下,如果你发现没有办法添加中文字符,那么可以参考这篇文章,http://blog.csdn.net/M_Eve/article/details/70763481