亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 2424 | 回復(fù): 0
打印 上一主題 下一主題

hibernate級(jí)聯(lián)插入實(shí)現(xiàn)多對(duì)多 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-11-27 11:14 |只看該作者 |倒序?yàn)g覽

最近學(xué)習(xí)hibernate 今天調(diào)試一個(gè)例子 實(shí)現(xiàn)多對(duì)多的 插入 采用中間表的形式 進(jìn)行操作
代碼如下:
teacher table
    create table `test`.`teacher`(
        `tid` int not null auto_increment,
       `tname` varchar(40),
        primary key (`tid`)
    );
    create unique index `PRIMARY` on `test`.`teacher`(`tid`);
studnt table
    create table `test`.`student`(
        `sid` int not null auto_increment,
       `sname` varchar(40),
        primary key (`sid`)
    );
    create unique index `PRIMARY` on `test`.`student`(`sid`);
stu_tea_tab table
    create table `test`.`stu_tea_tab`(
        `tid` int,
       `sid` int
    );
===========================
teacher.class
package com.test.beans;
import java.util.HashSet;
import java.util.Set;
public class Teacher
{
private Integer tid;
private String tname;
private Set students = new HashSet ( );

public Integer getTid()
{

  return tid;
}
public void setTid(Integer tid)
{

  this.tid = tid;
}
public String getTname()
{
  return tname;
}
public void setTname(String tname)
{
  this.tname = tname;
}
public Set getStudents()
{
  return students;
}
public void setStudents(Set students)
{
  this.students = students;
}
}
teacher 的配置文件:

  
   
   
  
  
   
  
  
   
   
  

student.class
package com.test.beans;
import java.util.HashSet;
import java.util.Set;
public class Student
{
private Integer sid;
private String sname;
private Set teachers = new HashSet();


public String getSname()
{

  return sname;
}
public void setSname(String sname)
{

  this.sname = sname;
}
public Integer getSid()
{

  return sid;
}
public void setSid(Integer sid)
{

  this.sid = sid;
}
public Set getTeachers()
{

  return teachers;
}
public void setTeachers(Set teachers)
{

  this.teachers = teachers;
}


}
student.hbm.xml

  
   
   
  
  
   
  
  
   
   
  

hibernatesessionfactory.java
package com.test.hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
public class HibernateSessionFactory {
    private static String CONFIG_FILE_LOCATION = "/com/test/hibernate/hibernate.cfg.xml";
private static final ThreadLocal threadLocal = new ThreadLocal();
    private  static Configuration configuration = new Configuration();
    private static org.hibernate.SessionFactory sessionFactory;
    private static String configFile = CONFIG_FILE_LOCATION;
static {
     try {
   configuration.configure(configFile);
   sessionFactory = configuration.buildSessionFactory();
  } catch (Exception e) {
   System.err
     .println("%%%% Error Creating SessionFactory %%%%");
   e.printStackTrace();
  }
    }
    private HibernateSessionFactory() {
    }

    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
  if (session == null || !session.isOpen()) {
   if (sessionFactory == null) {
    rebuildSessionFactory();
   }
   session = (sessionFactory != null) ? sessionFactory.openSession()
     : null;
   threadLocal.set(session);
  }
        return session;
    }
public static void rebuildSessionFactory() {
  try {
   configuration.configure(configFile);
   sessionFactory = configuration.buildSessionFactory();
  } catch (Exception e) {
   System.err
     .println("%%%% Error Creating SessionFactory %%%%");
   e.printStackTrace();
  }
}
    public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);
        if (session != null) {
            session.close();
        }
    }
public static org.hibernate.SessionFactory getSessionFactory() {
  return sessionFactory;
}
public static void setConfigFile(String configFile) {
  HibernateSessionFactory.configFile = configFile;
  sessionFactory = null;
}
public static Configuration getConfiguration() {
  return configuration;
}
}
studentdao.java
package com.test.daos;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.test.beans.Student;
import com.test.hibernate.HibernateSessionFactory;
public class StudentDao
{
public void addStudent(Student student)
{
  Session session = HibernateSessionFactory.getSession ( );
  
  Transaction tr = session.beginTransaction ( );
  
  session.save ( student );
  
  tr.commit();
  HibernateSessionFactory.closeSession ( );
}
}
測(cè)試類(lèi):
package com.test.test;

import com.test.beans.Student;
import com.test.beans.Teacher;
import com.test.daos.StudentDao;
import com.test.daos.TeacherDao;
public class Test
{
public static void main(String args[])

{
  Student stu1 = new Student();
  stu1.setSname ( "stu1" );
  Student stu2 = new Student();
  stu2.setSname ( "stu2" );
  
  Teacher tea1 = new Teacher();
  tea1.setTname ( "tea1" );
  
  Teacher tea2 = new Teacher();
  tea2.setTname ( "tea2" );
  
  stu1.getTeachers ( ).add ( tea1 );
  stu1.getTeachers ( ).add ( tea2 );
  
  stu2.getTeachers ( ).add ( tea1 );
  stu2.getTeachers ( ).add ( tea2 );
  
  StudentDao studentDao = new StudentDao();
  
  studentDao.addStudent ( stu1 );
  studentDao.addStudent ( stu2 );
}
}
說(shuō)明:在這里我們采用 學(xué)生 握有主動(dòng)權(quán)去選擇老師。
我個(gè)人覺(jué)得才用中間表的形式實(shí)現(xiàn)多對(duì)多比較好,降低了表和表之間的耦合度。
一點(diǎn)拙見(jiàn)。呵呵


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u1/50617/showart_2105262.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP