Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Friday, November 23, 2007

java code for Class Hiearchy Mapping Table Per Concrete Class

/////////////////////////////////////////////////////////////////////////
import java.io.*;
import java.util.*;

public class Book {
int id;
String title;
String artist;
Date purchaseDate;
double cost;

public Book() {
}

public Book(String title, String artist, Date purchaseDate, double cost) {
this.title = title;
this.artist = artist;
this.purchaseDate = purchaseDate;
this.cost = cost;
}

public void setId(int id) {
this.id = id;
}

public int getId(){
return id;
}

public void setTitle(String title) {
this.title = title;
}

public String getTitle() {
return title;
}

public void setArtist(String artist) {
this.artist = artist;
}

public String getArtist() {
return artist;
}

public void setPurchasedate(Date purchaseDate) {
this.purchaseDate = purchaseDate;
}

public Date getPurchasedate() {
return purchaseDate;
}

public void setCost(double cost) {
this.cost = cost;
}

public double getCost() {
return cost;
}
}


/////////////////////////////////////////////////////////////////////////

"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">



org.hsqldb.jdbcDriver
jdbc:hsqldb:data/tutorial
sa



1


org.hibernate.dialect.HSQLDialect


true







/////////////////////////////////////////////////////////////////////////
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

public static final SessionFactory sessionFactory;

static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static final ThreadLocal session = new ThreadLocal();

public static Session currentSession() throws HibernateException {
Session s = (Session) session.get();
// Open a new Session, if this thread has none yet
if (s == null) {
s = sessionFactory.openSession();
// Store it in the ThreadLocal variable
session.set(s);
}
return s;
}

public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
if (s != null)
s.close();
session.set(null);
}

static Connection conn;
static Statement st;
public static void setup(String sql) {
try {
// Step 1: Load the JDBC driver.
Class.forName("org.hsqldb.jdbcDriver");
System.out.println("Driver Loaded.");
// Step 2: Establish the connection to the database.
String url = "jdbc:hsqldb:data/tutorial";

conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");

st = conn.createStatement();
st.executeUpdate(sql);
} catch (Exception e) {
System.err.println("Got an exception! ");
e.printStackTrace();
System.exit(0);
}
}
public static void checkData(String sql) {
try {
HibernateUtil.outputResultSet(st
.executeQuery(sql));
// conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void outputResultSet(ResultSet rs) throws Exception{
ResultSetMetaData metadata = rs.getMetaData();

int numcols = metadata.getColumnCount();
String[] labels = new String[numcols];
int[] colwidths = new int[numcols];
int[] colpos = new int[numcols];
int linewidth;

for (int i = 0; i < numcols; i++) {
labels[i] = metadata.getColumnLabel(i + 1); // get its label
System.out.print(labels[i]+" ");
}
System.out.println("------------------------");

while (rs.next()) {
for (int i = 0; i < numcols; i++) {
Object value = rs.getObject(i + 1);
if(value == null){
System.out.print(" ");
}else{
System.out.print(value.toString().trim()+" ");
}

}
System.out.println(" ");
}
}
}


/////////////////////////////////////////////////////////////////////////

import java.util.*;

public class InternationalBook extends Book {

private String languages;
private int region;

public InternationalBook() {
}

public InternationalBook(String title, String artist, Date purchaseDate, double cost, String language, int region) {
super(title, artist, purchaseDate, cost);

languages = language;
this.region = region;
}

public void setLanguages(String s) {
languages = s;
}

public String getLanguages() {
return languages;
}

public void setRegion(int i) {
region = i;
}

public int getRegion() {
return region;
}
}



/////////////////////////////////////////////////////////////////////////


import java.io.Serializable;
import java.util.*;

import org.hibernate.*;
import org.hibernate.cfg.*;
import org.hibernate.criterion.*;
import org.hibernate.event.*;
import org.hibernate.event.def.*;

public class Main {
public static void main(String[] args) throws Exception {
HibernateUtil.setup("create table cd(id int,title varchar,artist varchar,purchasedate date,cost double);");
HibernateUtil.setup("create table secd(id int,title varchar,artist varchar,purchasedate date,cost double,newfeatures varchar);");
HibernateUtil.setup("create table icd(id int,title varchar,artist varchar,purchasedate date,cost double,languages varchar,region int);");


Session session = HibernateUtil.currentSession();

Book cd = new Book("Book", "R", new Date(), 9.99);
SpecialEditionBook secd = new SpecialEditionBook("sBook", "R", new Date(), 9.99, "W");
InternationalBook icd = new InternationalBook("IBook", "R", new Date(), 9.99, "S", 4);

session.save(cd);
session.save(secd);
session.save(icd);

session.flush();
session.close();
HibernateUtil.checkData("select * from cd");
HibernateUtil.checkData("select * from secd");
HibernateUtil.checkData("select * from icd");
}
}


/////////////////////////////////////////////////////////////////////////
import java.util.*;

public class SpecialEditionBook extends Book {

private String newfeatures;

public SpecialEditionBook() {
}

public SpecialEditionBook(String title, String artist, Date purchaseDate, double cost, String features) {
super(title, artist, purchaseDate, cost);

newfeatures = features;
}

public void setNewfeatures(String s) {
newfeatures = s;
}

public String getNewfeatures() {
return newfeatures;
}
}



/////////////////////////////////////////////////////////////////////////


PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">


































No comments: