程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> DAO及factory示例

DAO及factory示例

編輯:JAVA編程入門知識

  =============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
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved