DAO及factory示例

2016-02-19 13:23 10 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享DAO及factory示例吧。

【 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

来源:http://www.tulaoshi.com/n/20160219/1604051.html

延伸阅读
这是我前段时间学数据库时做的一个小程序,采用DAO访问ACCESS数据库,程序的主界面如下,控制相对来说很是简单,实现了数据库的基本操作。如图一所示: 几点说明: 在程序中使用了CButtonStyle这个免费类库,它可以实现带位图的按位,这里是以加载图标的方式操作的,在InitButtonSytle()中,为了使代码更短小,用循环实现了图...
找图网(www.ztu68.com) 本文来自找图网 找图网(www.ztu68.com) 本文来自找图网 copyright www.ztu68.com
标签: Web开发
示例地址:Canvas Resize Demo 原文作者:Dr. Tom Trenka 原文日期: 2013年8月6日 翻译日期: 2013年8月8日 Tom Trenka 能为"我"的博客写一篇文章,对我来说是一个巨大的荣誉。Tom是Dojo框架的最初贡献者之一,也是我在SitePen公司的良师益友.我见证了他最顶级的天才能力,并且他总是第一个以前瞻性的解决方案预见了很多棘手的问...
SQL的意思是结构化查询语言,其主要功能是同各种数据库建立联系,进行沟通.查询指的是对存储于SQL的数据的请求。查询要完成的任务是:将 Select 语句的结果集提供给用户。Select 语句从 SQL 中检索出数据,然后以一个或多个结果集的形式将其返回给用户。  ======================================================...

经验教程

760

收藏

51
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部