chenjinlong

          5月6日收獲(DAO程序設(shè)計)

                                                                                                          DAO程序設(shè)計
                 DAO是Data Access Object數(shù)據(jù)訪問接口,數(shù)據(jù)訪問:顧名思義就是與數(shù)據(jù)庫打交道。夾在業(yè)務(wù)邏輯與數(shù)據(jù)庫資源中間。DAO可以說是一種設(shè)計模式,它屬于J2EE設(shè)計模式。
                    開發(fā)人員用(DAO)這種模式將底層數(shù)據(jù)訪問操作與高層業(yè)務(wù)邏輯分離開,一個典型的 DAO 實現(xiàn)有以下組件:

          • 一個 DAO 工廠類
          • 一個 DAO 接口
          • 一個實現(xiàn)了 DAO 接口的具體類
          • 數(shù)據(jù)傳輸對象(有時稱為值對象)

                POJO與PO的區(qū)別:
                POJO:Plain Ordinary Java Objects
                簡單的Java對象(Plain Ordinary Java Objects)(Plain Old Java Object)實際就是普通JavaBeans
            POJO是Plain Ordinary Java Objects的縮寫不錯,但是它通指沒有使用Entity Beans的普通java對象,可以把POJO作為支持業(yè)務(wù)邏輯的協(xié)助類。

            POJO有一些private的參數(shù)作為對象的屬性。然后針對每個參數(shù)定義了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對象,大量應(yīng)用于表現(xiàn)現(xiàn)實中的對象。

                PO=persisent object 持久對象;
                 J2EE組件層次:我們都應(yīng)該遵循
                  客戶端—>表示層—>業(yè)務(wù)層—>數(shù)據(jù)層—>數(shù)據(jù)庫

          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構(gòu)造方法
             public Person(){
          super();
          }
          //點右鍵  選source選Generate using Fields構(gòu)造一個帶參方法
           public person(Integer id,String name,String password){
           super()
           this.id=id;
           this.name=name;
           this.password=password;
          }
          //點右鍵 選source選Generate Getters and Setters創(chuàng)建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("操作出現(xiàn)異常");
             
            }
           }

          }

           


           

               

          posted on 2010-05-06 19:25 chenjinlong 閱讀(159) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 赤壁市| 庄河市| 德令哈市| 工布江达县| 水富县| 乐安县| 临海市| 遵化市| 邵东县| 壶关县| 什邡市| 卓尼县| 民县| 大理市| 赫章县| 门头沟区| 双城市| 长宁区| 锡林郭勒盟| 赤水市| 丹棱县| 东源县| 肥东县| 昆山市| 杂多县| 防城港市| 安顺市| 阿巴嘎旗| 营口市| 贵阳市| 东城区| 兰考县| 巴里| 五台县| 贵港市| 沧州市| 灵璧县| 襄樊市| 潮安县| 乃东县| 手机|