dao
1)什么是dao data access object(数据访问对象), dao封装了数据访问逻辑,使得调用者不用关心 具体的数据访问技术就可以访问数据库或者其它的 存储设备(比如文件、目录服务器、或者是其它的 第三方的程序)。 2)dao的组成 a,实体 一个java类,这个类与数据库中的表对应。 比如,t_order表与Order类对应: 对应关系指的是: t_order表名与Order类名对应 t_order表的列与Order类的属性对应 t_order表中的一条记录与Order 类的一个实例对应 b,dao接口 声明一系列方法(即对数据库进行哪些操作), 这些方法应该与具体的技术无关。 c,dao实现 实现dao接口的一个具体类 d,工厂 提供符合接口定义的对象,调用者不用关心 对象的创建细节。 也就是说,通过工厂,可以将调用者与要调用的 对象解耦了。package util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class ConfigUtil { private static Properties props = new Properties(); static { InputStream is = ConfigUtil.class.getClassLoader().getResourceAsStream( "test/config.properties"); try { props.load(is); } catch (IOException e) { e.printStackTrace(); } } public static String getValue(String key) { return props.getProperty(key); } public static void main(String[] args) { System.out.println(getValue("StudentDAO")); } }
package util; public class Factory { public static Object getInstance(String type) { String className = ConfigUtil.getValue(type); Object obj = null; try { obj = Class.forName(className).newInstance(); } catch (Exception e) { e.printStackTrace(); } return obj; } }
package dao; import java.util.List; import entity.Student; public interface StudentDAO { public Listlist() throws Exception; public void add(Student s) throws Exception; public void delete(long id) throws Exception; public Student find(long id) throws Exception; public void update(Student s) throws Exception; }