zoukankan      html  css  js  c++  java
  • [找程序员代写推荐]JPA相关课程 代码

    完整测试项目可在这里下载:http://download.csdn.net/detail/liangrui1988/6542729


    部分代码:


    META-INF

    persistence.xml

    <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"    version="1.0">    <persistence-unit name="rui" transaction-type="RESOURCE_LOCAL">    <!--  全局事务配置       <jta-data-source>java:/DefaultDS</jta-data-source> -->       <properties>         <!-- hibernate config org.hibernate.dialect.HSQLDialect         org.hibernate.dialect.MySQLDialect         -->          <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>          <property name="hibernate.hbm2ddl.auto" value="update"/>          <property name="show_sql" value="true"/>                     <!-- database config -->          <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>          <property name="hibernate.connection.username" value="juxun"/>          <property name="hibernate.connection.password" value="rui"/>          <property name="hibernate.connection.url" value="jdbc:oracle:thin:@127.0.0.1:1521:ABC"/>                         <!--   <property name="hibernate.max_fetch_depth" value="3"/> -->               </properties>    </persistence-unit> </persistence> 



    ManyToMany


    package com.rui.ManyToMany;  import java.util.HashSet; import java.util.Set;  import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany;  import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter;  @Entity @GenericGenerator(name = "stuId", strategy = "sequence",parameters=@Parameter(name="sequence",value="preson_id")) public class Student {    private Integer id;  private String name;  private Set<Teacher> teacher=new HashSet<Teacher>();      @Id  @GeneratedValue(generator="stuId")  public Integer getId() {   return id;  }  public void setId(Integer id) {   this.id = id;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }    @ManyToMany(cascade={CascadeType.REFRESH})  //@JoinTable(name="stu_tea")  @JoinTable(name="stu_tea",inverseJoinColumns=@JoinColumn(name="tea_id")  ,joinColumns=@JoinColumn(name="stu_id"))  public Set<Teacher> getTeacher() {   return teacher;  }    public void setTeacher(Set<Teacher> teacher) {   this.teacher = teacher;  }    //添加学生和老师的关系   public void addTeacher(Teacher te){   this.teacher.add(te);    }   //解除学生跟老师的关系  public void removeTeacher(Teacher te){   if(this.teacher.contains(te)){    this.teacher.remove(te);   }  }    } 

    package com.rui.ManyToMany;  import java.util.HashSet; import java.util.Set;  import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToMany;  import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter;  @Entity @GenericGenerator(name = "teaId", strategy = "sequence",parameters=@Parameter(name="sequence",value="preson_id")) public class Teacher {    private Integer id;  private  String name;   private Set<Student> student=new HashSet<Student>();    @Id  @GeneratedValue(generator="teaId")  public Integer getId() {   return id;  }  public void setId(Integer id) {   this.id = id;  }  @Column(length=10,nullable=false)  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }    //被维护端 mappedBy  (Teacher)老师被学生维护 (Student)  @ManyToMany(cascade={CascadeType.REFRESH},mappedBy="teacher")  public Set<Student> getStudent() {   return student;  }  public void setStudent(Set<Student> student) {   this.student = student;  }      //为hash分区  @Override  public int hashCode() {   final int prime = 31;   int result = 1;   result = prime * result + ((id == null) ? 0 : id.hashCode());   return result;  }  @Override  public boolean equals(Object obj) {   if (this == obj)    return true;   if (obj == null)    return false;   if (getClass() != obj.getClass())    return false;   Teacher other = (Teacher) obj;   if (id == null) {    if (other.id != null)     return false;   } else if (!id.equals(other.id))    return false;   return true;  }          } 

    package com.rui.ManyToMany;  import static org.junit.Assert.*;  import java.util.HashSet; import java.util.Set;  import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;  import org.junit.Test;  import com.rui.ManyToOne.Order; import com.rui.ManyToOne.OrderItem;  public class ManyToManyTest {   @Test  public void test() {   EntityManagerFactory emf=Persistence.createEntityManagerFactory("rui");    EntityManager em= emf.createEntityManager();    em.getTransaction().begin();        Teacher te=new Teacher();    te.setName("刘老师");    Teacher te2=new Teacher();    te.setName("李老师");    em.persist(te);    //给学生分两个老师    Student stu=new Student();    stu.setName("小明");    //stu.getTeacher().add(te);//学生加老师    //stu.getTeacher().add(te2);        em.persist(stu);//保存学生        em.getTransaction().commit();        em.close();    emf.close();   System.out.println("ok....");  }      /**   * 建立关系   */  @Test  public void addRe(){   EntityManagerFactory emf=Persistence.createEntityManagerFactory("rui");    EntityManager em= emf.createEntityManager();    em.getTransaction().begin();      Student st=em.find(Student.class,46);//获取一个学生      //刷新对象 获得老师 并建立关系   st.addTeacher(em.getReference(Teacher.class,47));      em.getTransaction().commit();      em.close();   emf.close();  System.out.println("ok....");  }      /**   * 删除关系   */  @Test  public void removeRe(){   EntityManagerFactory emf=Persistence.createEntityManagerFactory("rui");    EntityManager em= emf.createEntityManager();    em.getTransaction().begin();     Student st=em.find(Student.class,46);//获取一个学生     st.removeTeacher(em.getReference(Teacher.class,45));//刷新对象 并建立关系     em.getTransaction().commit();     em.close();   emf.close();  System.out.println("ok....");  }     /**   * 删除老师   */  @Test  public void deleteTeacher(){   EntityManagerFactory emf=Persistence.createEntityManagerFactory("rui");    EntityManager em= emf.createEntityManager();    em.getTransaction().begin();   //先解除关系才能删除老师     Student st=em.find(Student.class,46);//获取一个学生      st.removeTeacher(em.getReference(Teacher.class,45));   //删除老师   em.remove(em.getReference(Teacher.class,45));    em.getTransaction().commit();     em.close();   emf.close();  System.out.println("ok....");  }         /**   * 删除学生   */  @Test  public void deleteStudent(){   EntityManagerFactory emf=Persistence.createEntityManagerFactory("rui");    EntityManager em= emf.createEntityManager();    em.getTransaction().begin();      Student st=em.find(Student.class,46);//获取一个学生         //删除 学生 关系维护端 有权利操作外健   em.remove(st);    em.getTransaction().commit();     em.close();   emf.close();  System.out.println("ok....");  } } 

    ManyToOne

    ==========================================

    package com.rui.ManyToOne;  import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne;  @Entity public class OrderItem {    private Integer id;  private String productName;//产品名称  private Float sellPrice;//销售价格  private Order order;//订单    @Id  //@Column(name="ids",length=8)  public Integer getId() {   return id;  }  public void setId(Integer id) {   this.id = id;  }  public String getProductName() {   return productName;  }  public void setProductName(String productName) {   this.productName = productName;  }  public Float getSellPrice() {   return sellPrice;  }  public void setSellPrice(Float sellPrice) {   this.sellPrice = sellPrice;  }  //optional =true 可选 ,存放的值可以为null(外健)  @ManyToOne(cascade={CascadeType.REFRESH,CascadeType.MERGE}  ,optional=false)  @JoinColumn(name="order_id") //关联字段  外健id  public Order getOrder() {   return order;  }  public void setOrder(Order order) {   this.order = order;  }      } 

    package com.rui.ManyToOne;  import java.util.HashSet; import java.util.Set;  import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table;  @Entity @Table(name="orders") public class Order {  private String orderId;  private Float amount;  private Set<OrderItem> item=new HashSet<OrderItem>();    @Id  @Column(name="order_id",length=8)  public String getOrderId() {   return orderId;  }  public void setOrderId(String orderId) {   this.orderId = orderId;  }  @Column(nullable=false)  public Float getAmount() {   return amount;  }  public void setAmount(Float amount) {   this.amount = amount;  }  /**   * alter table OrderItem   * add constraint pk_order foreign key order   * reference order(orderId)   * 一个订单对应多个订单项   * 多个订单项对应一个订单   * @return   */  //那个类出现了mappedBy 就是关系被维护端    //order 指定这个属性来维据关系   @OneToMany(cascade={CascadeType.REFRESH,CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}   ,fetch=FetchType.LAZY,mappedBy="order")  public Set<OrderItem> getItem() {   return item;  }  public void setItem(Set<OrderItem> item) {   this.item = item;  }    public void addOrderItem(OrderItem oi){      oi.setOrder(this);//送来的订单项对象里加入 订单   this.item.add(oi);//添加订单   里的订单项  }            } 

    package com.rui.ManyToOne;  import static org.junit.Assert.*;  import java.util.UUID;  import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;  import org.junit.Test;  public class OneToManyTest {  @Test  public void test() {   EntityManagerFactory emf=Persistence.createEntityManagerFactory("rui");    EntityManager em= emf.createEntityManager();    em.getTransaction().begin();      Order order=new Order();   order.setOrderId("888");//UUID.randomUUID().toString()   order.setAmount(90F);      OrderItem oi=new OrderItem();   oi.setId(20);   oi.setProductName("ipone");   oi.setSellPrice(5888F);   //oi.setOrder(order);      OrderItem oi2=new OrderItem();   oi2.setId(21);   oi2.setProductName("ipone6");   oi2.setSellPrice(6888F);      //订单里加入订单项   order.addOrderItem(oi);   order.addOrderItem(oi2);   //插入订单   em.persist(order);   em.getTransaction().commit();      emf.close();  System.out.println("ok....");  }  } 

    ==================

    复合主健

    package com.rui.compositePK;  import javax.persistence.EmbeddedId; import javax.persistence.Entity;  @Entity public class AriLine {    private AriLinePK id;//这里把复合主健看成一个整体 用一个类来描述它  private String name;      public AriLine(){}    public AriLine(String stratCity,String endCity,String name){   this.id=new AriLinePK(stratCity,endCity);         this.name=name;    }    @EmbeddedId //可嵌入的类 id  public AriLinePK getId() {   return id;  }  public void setId(AriLinePK id) {   this.id = id;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }          } 


  • 相关阅读:
    关于android.view.WindowLeaked异常的解决方案
    android 使用shape使android组件呈现特殊效果
    (IOS)N duplicate symbols for architecture i386
    (IOS)国际本地化设置
    URL参数中有 特殊符号或加密数据 的问题解决
    S2S:分享出的营销机遇
    (IOS)Apple 证书相关
    (IOS)阻止文件被iTunes和iCloud同步
    (IOS)多线程开发
    时间复杂度
  • 原文地址:https://www.cnblogs.com/java20131201/p/3476040.html
Copyright © 2011-2022 走看看