chenjinlong

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

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

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

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

            POJO有一些private的參數(shù)作為對(duì)象的屬性。然后針對(duì)每個(gè)參數(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對(duì)象有時(shí)也被稱為Data對(duì)象,大量應(yīng)用于表現(xiàn)現(xiàn)實(shí)中的對(duì)象。

                PO=persisent object 持久對(duì)象;
                 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;
             //英文版編程器如下
             //點(diǎn)右鍵  選source選Generate Constructor using Fields構(gòu)造方法
             public Person(){
          super();
          }
          //點(diǎn)右鍵  選source選Generate using Fields構(gòu)造一個(gè)帶參方法
           public person(Integer id,String name,String password){
           super()
           this.id=id;
           this.name=name;
           this.password=password;
          }
          //點(diǎn)右鍵 選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 閱讀(160) 評(píng)論(0)  編輯  收藏


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


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

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 江陵县| 凉山| 邯郸市| 治县。| 涪陵区| 夏邑县| 宜兰县| 潮安县| 都兰县| 阜阳市| 皮山县| 玛纳斯县| 松阳县| 桃江县| 开封市| 轮台县| 皮山县| 武山县| 隆化县| 环江| 黄龙县| 手游| 长丰县| 裕民县| 兴仁县| 邹城市| 逊克县| 班玛县| 遂平县| 广汉市| 南澳县| 天长市| 安多县| 浦城县| 眉山市| 鹤庆县| 沽源县| 满洲里市| 德清县| 华安县| 治县。|