Sunday, January 12, 2014

Bulk Inserts Into jlhobbies and jlstudents table for testing the concepts

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
    <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
    <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
    <property name="hibernate.connection.username">hr</property>
    <property name="hibernate.connection.password">hr</property>
    <property name="hibernate.hbm2ddl.auto" >update</property>
    <property name="hibernate.show_sql">true</property>
    <mapping class="org.jl.vo.StudentTo"/>  
    <mapping class="org.jl.vo.HobbyTo"/>
   
  </session-factory>
</hibernate-configuration>

2)
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.jl.vo;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 *
 * @author Rishitha
 */
@Entity
@Table(name="jlhobbies")
public class HobbyTo {
    @Id
    private int hobbyId;
    private String hobbyName;
    private String hobbyCategory;
    @ManyToOne
    @JoinColumn(name = "sid")
    private StudentTo student;

  
   
    public HobbyTo(){}

    public int getHobbyId() {
        return hobbyId;
    }

    public void setHobbyId(int hobbyId) {
        this.hobbyId = hobbyId;
    }

    public String getHobbyName() {
        return hobbyName;
    }

    public void setHobbyName(String hobbyName) {
        this.hobbyName = hobbyName;
    }

    public String getHobbyCategory() {
        return hobbyCategory;
    }

    public void setHobbyCategory(String hobbyCategory) {
        this.hobbyCategory = hobbyCategory;
    }
   
   
     public StudentTo getStudent() {
        return student;
    }

    public void setStudent(StudentTo student) {
        this.student = student;
    }
   
   
   
}

3)
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.jl.vo;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

/**
 *
 * @author Rishitha
 */
@Entity
@Table(name="jlstudents")
public class StudentTo {
    @Id
    private int sid;
    @Column(name="jlsfname")
    private String sfname;
    @Column(name="jlslname")
    private String slname;
    @Temporal(TemporalType.DATE)

    private Date   sbdate;

  
   
   
    @OneToMany(mappedBy="student",cascade = {javax.persistence.CascadeType.ALL}, orphanRemoval=true)
  
    private Set<HobbyTo> hobbies = new HashSet();
   
   
   
    public StudentTo(){
       
    }

    public Date getSbdate() {
        return sbdate;
    }

    public void setSbdate(Date sbdate) {
        this.sbdate = sbdate;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getSfname() {
        return sfname;
    }

    public void setSfname(String sfname) {
        this.sfname = sfname;
    }

    public String getSlname() {
        return slname;
    }

    public void setSlname(String slname) {
        this.slname = slname;
    }

    public Set<HobbyTo> getHobbies() {
        return hobbies;
    }

    public void setHobbies(Set<HobbyTo> hobbies) {
        this.hobbies = hobbies;
    }
   
   
  
   
}

4)
package hibex;

import java.util.HashSet;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.jl.vo.HobbyTo;
import org.jl.vo.StudentTo;

/**
 *
 * @author Rishitha
 */
public class OneToManyMappingInsertion3 {
    public static void main(String args[]){
       
         SessionFactory sf = new Configuration().configure().buildSessionFactory();
       
        //Session is very important
        //and using session we do every thing in hibernate.
        //Eg We can save,update,delete,load,get etc.........
        Session ses = sf.openSession();
        //Now let us see how to add the hobbies to student1
        Transaction tx = null;
        try{
        tx = ses.beginTransaction();
               
        int counter =1;
        for(int i =1;i<=10000;i++){
            //Create the Student Object
            StudentTo sts = new StudentTo();
                sts.setSfname("FirstName "+i);
                sts.setSlname("LastName "+i);
                sts.setSid(i);
                sts.setSbdate(new java.util.Date());
            //Generate Hobbies Objects and add it to set and
            //add it to student
            for(int j=1;j<=10;j++){
               
               HobbyTo hob = new HobbyTo();
               hob.setHobbyCategory("Category:"+j);
               hob.setHobbyName("Student: "+i+" Hobby:"+j);
               hob.setHobbyId(counter++);
               hob.setStudent(sts);
               sts.getHobbies().add(hob);
              
              
              
              
               
            }
            ses.save(sts);
           
           
           
        }
       
       
       
       
      
        //ses.save(hob1);
        tx.commit();
        }catch(Exception e ){
            tx.rollback();
            e.printStackTrace();
        }
       
       
       
    }
}

No comments:

Post a Comment