步驟:
(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