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