【 tulaoshi.com - 编程语言 】
                             
                              =============Student.Java========== 
  import java.sql.*; 
  public class Student implements java.io.Serializable{ 
  private String id; 
  private String name; 
  private Date birthday;    
  public Student(){} 
  public Student(String id, String name, Date birthday){ 
  this.id = id; 
  this.name = name; 
  this.birthday = birthday; 
  }    
  public String getId() { return id; } 
  public void setId(String id) { this.id = id; }    
  public String getName() { return name; } 
  public void setName(String name) { this.name = name; }    
  public Date getBirthday() { return birthday; } 
  public void setBirthday(Date birthday) { this.birthday = birthday; } 
  }    
  =================Course.java====================== 
  public class Course implements java.io.Serializable{ 
  private String id; 
  private String name; 
  private String description;    
  public Course() {} 
  public Course(String id, String name, String description){ 
  this.id = id; 
  this.name = name; 
  this.description = description; 
  }    
  public String getId() { return id; } 
  public void setId(String id) { this.id = id; }    
  public String getName() { return name; } 
  public void setName(String name ) { this.name = name; }    
  public String getDescription() { return description; } 
  public void setDescription(String description) { this.description = description; } 
  }    
  ==============SMdao.java================== 
  import java.sql.*; 
  public interface SMdao { 
  public Student createStudent(String id, String name, Date birthday); 
   publc Course createCourse(String id, String name, String description);    
  public Student findStudent(String id); 
  public Course findCourse(String id);    
  public void clean(); 
  }    
  ==============FileSMdaoImpl.java============== 
  import java.util.Properties; 
  import java.sql.*; 
  import java.io.*;    
  public class FileSMdaoImpl implements SMdao { 
  private Properties pro; 
  private final static String SFILE_URL = "student.file.url"; 
  private final static String CFILE_URL = "course.file.url"; 
  public FileSMdaoImpl(Properties pro){ 
  this.pro = pro; 
  }    
  public Student createStudent(String id, String name, Date birthday) { 
  FileOutputStream fos = null; 
  ObjectOutputStream oos = null; 
  Student stu = null;    
  try { 
  fos = new FileOutputStream(pro.getProperty(FILE_URL), true); 
  oos = new ObjectOutputStream(fos); 
  stu = new Student(id, name, birthday); 
  oos.writeObject(stu); 
  } catch(Exception e) { stu = null; } 
  finally{ 
  try { if(oos != null) oos.close(); } catch(Exception e){} 
  try { if(fos != null) oos.close(); } catch(Exception e) {} 
  }    
  return stu; 
  }    
  public Course createCourse(String id, String name, String description){ 
  return null; 
  }    
  public Student findStudent(String id) { 
  return null; 
  }    
  public Course findCourse(String id) { 
  return null; 
  }    
  public void clean() {} 
  } 
  ==============DBSMdaoImpl.java============== 
  import java.sql.*; 
  import java.util.Properties;    
  public class DBSMdaoImpl implements SMDao { 
  private Connection con; 
  private final static String DBDRV = "db.driver"; 
  private final static String DBURL = "db.url"; 
  private final static String DBUSER = "db.user"; 
  private final static String DBPASSWD = "db.passWord";    
  public DBSMdaoImpl(Properties pro) { 
  try { 
  Class.forName(pro.getProperty(DBDRV)); 
  String user = pro.getProperty(DBUSER); 
  String passwd = pro.getProperty(DBPASSWD); 
  if(user != null) 
  con = DriverManager.getConnection(pro.getProperty(DBURL), 
  user, passwd); 
  else 
  con = DriverManager.getConnection(pro.getProperty(DBURL)); 
  } catch(Exception e){} 
  }    
  public Student createStudent(String id, String name, Date birtyday) { 
  if(con == null) return null; 
  Student stu = null; 
  PreparedStatement stm = null;    
  try { 
  stm = con.prepareStatement("insert into student(id, name, birthday) " + 
     "values(?, ?, ?)"); 
  stm.setString(1, id); 
  stm.setString(2, name); 
  stm.setDate(3, birthday);    
  if(stm.executeUpdate()  0) 
  stu = new Student(id, name, birthday); 
  }catch(Exception e){} 
  finally{ 
  try {if(stm != null) stm.close();} 
  catch(Exception e) {} 
  }    
  return stu; 
  }    
  public Course createCourse(String id, String name, String desc) { return null; } 
  public Student findStudent(String id) { return null; } 
  public Course findCourse(String id) { return null; }    
  public void clean() { 
  try { 
  if(con != null) con.close(); 
  }catch(Exception e) {} 
  } 
  }    
  ===============SMdaoFactory.java=============== 
  import java.util.*;    
  public class SMdaoFactory { 
  Properties pro; 
  public static final String TYPE_FILE = "file"; 
  public static final String TYPE_DB = "database"; 
  private String type; 
     private static SMdaoFactory factory; 
   static{  factory = new SMdaoFactory();}    
  private SMdaoFactory() {    
  }    
  public static SMdaoFactory newInstance() { return factory; }    
  public void setType(String type) { this.type = type; }    
  public void setProperties(Properties pro) { this.pro = pro; }    
  public SMdao createSMdao() { 
  if(type.equals(TYPE_FILE)) 
  return new FileSMdaoImpl(pro); 
  else 
  return new DBSMdaoImpl(pro); 
  } 
  }       
  =================Main.java========================================= 
  import java.io.*; 
  import java.util.*; 
  import java.sql.*; 
  public class Main{ 
  public static void main(String args[]){ 
  Properties pro = new Properites(); 
  try { 
  pro.load(Main.class.getResourceAsStream("conf.properties"); 
  }catch(Exception e) { 
  e.printStackTrace(); 
  System.exit(1); 
  }    
  SMdaoFactory factory = SMdaoFactory.newInstance(); 
  factory.setType(SMdaoFactory.TYPE_DB); 
  factory.setProperties(pro); 
  SMdao dao = factory.createSMdao(); 
  GregorainCalendar calendar = new GregorainCalendar(); 
  calendar.set(Calendar.YEAR, 1975); 
  calendar.set(Calendar.MONTH, 2); 
  calendar.set(Calendar.DAY_OF_MONTH, 21); 
  java.sql.Date birthday = new java.sql.Date(calendar.getTimeInMills()); 
  Student stu = dao.createStudent("12345", "George", birthday); 
  } 
  } 
  ==============conf.properties=================== 
  db.driver=COM.pointbase.jdbc.jdbcUniversalDriver 
  db.url=jdbc:pointbase:server://george/sample 
  db.user=pbpulic 
  db.password=pbpublic    
  student.file.url=student 
  course.file.url=course