DAO程序设计
DAO是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。DAO可以说是一种设计模式,它属于J2EE设计模式。
开发人员用(DAO)这种模式将底层数据访问操作与高层业务逻辑分离开,一个典型的 DAO 实现有以下组件:
- 一个 DAO 工厂类
- 一个 DAO 接口
- 一个实现了 DAO 接口的具体类
- 数据传输对象(有时称为值对象)
POJO与PO的区别:
POJO:Plain Ordinary Java Objects
简单的Java对象(Plain Ordinary Java Objects)(Plain Old Java Object)实际就是普通JavaBeans
POJO是Plain Ordinary Java Objects的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口。例如:
public class User {
private long id;
private String name;
public void setId(long id) {
this.id = id;
}
public void setName(String name) {
this.name=name;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
}
POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。
PO=persisent object 持久对象;
J2EE组件层次:我们都应该遵循
客户端—>表示层—>业务层—>数据层—>数据库
public interface DAO{
public void insert(Person person);
}
public class Person{
private int id;
priavte String name;
priavte String password;
//英文版编程器如下
//点右键 选source选Generate Constructor using Fields构造方法
public Person(){
super();
}
//点右键 选source选Generate using Fields构造一个带参方法
public person(Integer id,String name,String password){
super()
this.id=id;
this.name=name;
this.password=password;
}
//点右键 选source选Generate Getters and Setters创建javabean
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
public class DataBaseConnection {
private final String DB="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private final String URL="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
private final String SA="sa";
private final String PASSWORD="";
public void DataBaseConnection(){
try {
Class.forName(DB);
Connection conn= DriverManager.getConnection(URL,SA,PASSWORD);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connertion getConnection(){
return this.conn;
public viod close(){
if(conn!=null){
this.conn.close();
}
}
}
}
public class DAOImp implements DAO{
public void inster(Person person){
String sql="inster into person(id,name,password) values(?,?,?)";
PreparedStatement pstmt=null;
DataBaseConnection dbc=null;
try{
dbc=new DataBaseconnection();
pstmt=dbc.getConnection().preparedStatement(sql);
pstmt.setString(1, person.getId());
pstmt.setString(2,person.getName());
pstmt.setString(3, person.getPassword());
pstmt.executeUpdate();
}catch(Exception e){
throw new Exception("操作出现异常");
}
}
}