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("操作出現異常");
}
}
}