Module 5 - DAO - Other Mappings
Module 5 - DAO - Other Mappings
1. Lab11A.java 3. Lab11C.java
package com. jlcindia.client; package com. jlcindia.client;
@Override
public void addCustomer(CustomerTO cto) {
Customer cust=new Customer(cto.getCname(),cto.getEmail(),cto.getPhone(), cto.getCity(),cto.getBalance(),
cto.getStatus());
htemp.save(cust);
}
@Override
public void updateCustomer(CustomerTO cto) {
Customer cust=new Customer(cto.getCid(),cto.getCname(),cto.getEmail(),cto.getPhone(),
cto.getCity(),cto.getBalance(), cto.getStatus());
htemp.update(cust);
}
@Override
public void deleteCustomer(int cid) {
htemp.delete(Customer.class, cid);
}
@Override
public CustomerTO getCustomerByCid(int cid) {
Customer cust = (Customer)htemp.load(Customer.class, cid);
CustomerTO cto=new
CustomerTO(cust.getCid(),cust.getCname(),cust.getEmail(),cust.getPhone(),cust.getCity(),cust.getBalance(),cust.ge
tStatus());
return cto;
}
}
1. Lab13A.java
package com.coursecube.hibernate; Customer cust=new Customer("sd","[email protected]",333);
session.save(cust);
import org.hibernate.*;
/* tx.commit();
* @Author : Srinivas Dande session.close();
* @company : Java Learning Center
* */ } catch (Exception e) {
public class Lab13A { e.printStackTrace();
public static void main(String[] args) { }
try { }
SessionFactory sessionFactory }
=HibernateUtil.getSessionFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
tx.commit(); @Version
session.close(); private int version;
@Override
public String toString() {
return cid + "\t" + cname + "\t" + email + "\t" +
phone+"\t"+version ;
}
A)Tables Required
1) mycustomers2
cid cname email phone updatedDate
1 Sri [email protected] 99999 2019-07-29 20:05:04
3. Customer.java @Column(name="phone")
package com.coursecube.hibernate; private long phone;
1. Lab15A.java 2. Customer.java
package com.coursecube.hibernate; package com.coursecube.hibernate;
1. Lab16A.java 2. Customer.java
package com.coursecube.hibernate; package com.coursecube.hibernate;
1. Lab17A.java 2. Customer.java
package com.coursecube.hibernate; package com.coursecube.hibernate;
…
}
2) Customer.java
@Entity(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int sid;
@Embedded
@AttributeOverrides(value = {
@AttributeOverride(name = "street",
column = @Column(name = "mystreet")),
@AttributeOverride(name = "city",
column = @Column(name = "mycity")) ,
@AttributeOverride(name = "state",
column = @Column(name = "mystate"))
})
private Address address;
…
}
Lab18: Files required
1. Lab18A.java 2. Lab18B.java
3. Address.java 4. Customer.java
5. HibernateUtil.java
Customer cust=session.load(Customer.class,1);
System.out.println(cust.getCid());
System.out.println(cust.getCname());
System.out.println(cust.getAddress().getCity());
@Column(name="myphone")
private String phone;
@Embedded
@AttributeOverrides({
@AttributeOverride(name= "street"
,column=@Column(name="mystreet")),
@AttributeOverride(name= "city"
,column=@Column(name="mycity")),
@AttributeOverride(name= "state"
,column=@Column(name="mystate"))
})
private Address address;
1. Lab19A.java 2. Lab19B.java
package com.coursecube.hibernate; package com.coursecube.hibernate;
tx.commit(); tx.commit();
session.close(); session.close();
}catch(Exception ex) { }catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
if(tx!=null) if(tx!=null)
tx.rollback(); tx.rollback();
} }
} }
} }
@Basic
private String cname;
@Basic(optional = true)
private String email;
@Basic(optional = false,fetch=FetchType.LAZY)
private String phone;
@Basic(optional = false,fetch=FetchType.LAZY)
private String city;
public Customer() { }
public Customer(String cname, String email) {
super();
this.cname = cname;
this.email = email;
}
tx.commit();
session.close();
}catch(Exception ex) {
ex.printStackTrace();
if(tx!=null)
tx.rollback();
}
}
}
@ElementCollection @Column(name="cardNumber")
@CollectionTable(name="myskills",joinColumns = private long cardNumber;
@JoinColumn(name="authorId")) @Column(name="cardType")
@Column(name="skillName") private String cardType;
private Set<String> skills; @Column(name="expDate")
private Date expDate;
@ElementCollection
@CollectionTable(name="myqualis",joinColumns = @Column(name="cvv")
@JoinColumn(name="authorId")) private int cvv;
@OrderColumn(name="qorder")
@Column(name="qualis") @Column(name="status")
private List<String> qualifications; private String status;
@ElementCollection @ManyToOne
@CollectionTable(name="myexps",joinColumns = @JoinColumn(name="mycid",referencedColumnName =
@JoinColumn(name="authorId")) "cid")
@MapKeyColumn(name="companyName") private Customer customer;
@Column(name="yoe") public CreditCard() {}
private Map<String,Integer> exps; public CreditCard(long cardNumber, String cardType,
Date expDate, int cvv, String status) {
@ManyToMany(mappedBy = "myauthors") this.cardNumber = cardNumber;
private Set<Book> mybooks; this.cardType = cardType; this.expDate = expDate;
public Author() {} this.cvv = cvv; this.status = status;
public Author(String authorName, String email, long }
phone, Set<String> skills, List<String> qualifications, //Setters and Getters
Map<String, Integer> exps) { @Override
this.authorName = authorName; public String toString() {
this.email = email; this.phone = phone; return cardNumber + "\t" + cardType + "\t" + expDate +
this.skills = skills; this.qualifications = qualifications; "\t" + cvv + "\t" + status ;
this.exps = exps; }
} }
@Column(name="edition") @Column(name="cname")
private int edition; private String cname;
@Column(name="yop")
private int yop; @Column(name="email")
@Column(name="status") private String email;
private String status;
@Column(name="phone")
@ManyToMany private long phone;
@JoinTable(
name="authors_books", @Column(name="dob")
joinColumns private Date dob;
=@JoinColumn(name="myBookId",referencedColumnN
ame = "bookId"), @OneToMany(mappedBy = "customer")
inverseJoinColumns private Set<CreditCard> mycards;
=@JoinColumn(name="myAuthorId",referencedColumn
Name = "authorId") @OneToMany(mappedBy = "customer")
) private Set<Order> myorders;
private Set<Author> myauthors;
public Customer() { }
@OneToMany(mappedBy = "mybook") public Customer(String cname, String email, long phone,
private Set<OrderItem> myOrderItems; Date dob) {
public Book() {} this.cname = cname; this.email = email;
public Book(String bookName, double cost, int edition, this.phone = phone; this.dob = dob;
int yop, String status) { }
this.bookName = bookName; //Setters and Getters
this.cost = cost; this.edition = edition; @Override
this.yop = yop; this.status = status; public String toString() {
} return cid + "\t" + cname + "\t" + email + "\t" + phone +
//Setters and Getters "\t" + dob ;
} }
@Column(name="supportPhone") @Column(name="supportEmail")
private long supportPhone; private String supportEmail;
@Column(name="rpoints") @Column(name="discounts")
private int rpoints; private double discounts;
@Column(name="cashback") @Column(name="shippingFee")
private double cashback; private double shippingFee;
@Column(name="earlyAccess") @Column(name="handlingCharges")
private boolean earlyAccess; private double handlingCharges;
@ManyToOne cfg.addAnnotatedClass(Customer.class);
@JoinColumn(name="myBookId",referencedColumnNa cfg.addAnnotatedClass(SilverCustomer.class);
me = "bookId") cfg.addAnnotatedClass(GoldCustomer.class);
private Book mybook; cfg.addAnnotatedClass(ShippingAddress.class);
cfg.addAnnotatedClass(CreditCard.class);
public OrderItem() {} cfg.addAnnotatedClass(Order.class);
public OrderItem(int qty, double cost, String status) { cfg.addAnnotatedClass(OrderItem.class);
this.qty = qty; this.cost = cost; cfg.addAnnotatedClass(Book.class);
this.status = status; cfg.addAnnotatedClass(Author.class);
}
public OrderItem(int qty, double cost, String status, StandardServiceRegistryBuilder ssrbuilder=new
Book mybook) { StandardServiceRegistryBuilder();
this.qty = qty; ServiceRegistry
this.cost = cost; serviceReg=ssrbuilder.applySettings(cfg.getProperties()).
this.status = status; build();
this.mybook = mybook; sessionFactory=cfg.buildSessionFactory(serviceReg);
} }
//Setters and Getters public static SessionFactory getSessionFactory() {
//toString() return sessionFactory;
} }
}