端端舝

端端舝Share a Scribd company logo
www.keremet.com




      妤忘找找快把扶抑 扭把抉快抗找我把抉志忘扶我攸
      我扼找抉折扶我抗抉志 忱忘扶扶抑抒
      妒扼找抉折扶我抗: 把忘忌抉找抑 妙忘把找我扶忘 孜忘批抖快把忘




                                           忱抉抗抖忘忱折我抗
                                   妥把快扶抗快扶扮批 圾我找忘抖我抄
www.keremet.com




        ?    Table Data Gateway
        ?    Row Data Gateway
        ?    Active Record
        ?    Data Mapper
www.keremet.com




Table Data Gateway


            宋抖攻戒 找忘忌抖我扯抑 忱忘扶扶抑抒
            妊抉忱快把忪我找 志 扼快忌快 志扼快 抗抉技忘扶忱抑 SQL,
            扶快抉忌抒抉忱我技抑快 忱抖攸 我戒志抖快折快扶我攸, 志扼找忘志抗我,
            抉忌扶抉志抖快扶我攸 我 批忱忘抖快扶我攸 忱忘扶扶抑抒 我戒 找忘忌抖我扯抑
www.keremet.com
                              Table Data Gateway




妙快找抉忱抑 宋抖攻戒忘 找忘忌抖我扯抑 忱忘扶扶抑抒 我扼扭抉抖抆戒批攻找扼攸
忱把批忍我技我 抗抉技扭抉扶快扶找忘技我 忱抖攸 志戒忘我技抉忱快抄扼找志我攸 扼 坎坏
www.keremet.com
                          Table Data Gateway




                  妍忌抑折扶抉

坏抖攸 抗忘忪忱抉抄 找忘忌抖我扯抑 坎坏 扼抉戒忱忘快找扼攸
扼抉忌扼找志快扶扶抑抄 扮抖攻戒 找忘忌抖我扯抑 忱忘扶扶抑抒

宋抖攻戒 扶快 我技快快找 扼抉扼找抉攸扶我抄, 志扼快忍抉 抖我扮抆
扭快把快忱忘快找 忱忘扶扶抑快 志 找忘忌抖我扯批 我 我戒 扶快?
www.keremet.com
                               Table Data Gateway




                  孚抉把抉扮抉 扼抉折快找忘快找扼攸

扼 找我扭抉志抑技 把快扮快扶我快技 妙抉忱批抖抆 找忘忌抖我扯抑
(Table Module)

扼 扭忘找找快把扶抉技 妊扯快扶忘把我抄 找把忘扶戒忘抗扯我我
(Transaction Script)

                       妥我扭抉志抑快 把快扮快扶我攸 忱抖攸 扭把快忱扼找忘志抖快扶我攸 忌我戒扶快扼-抖抉忍我抗我
www.keremet.com
                         Table Data Gateway




                    妤把我技快把抑


ProfileDataManager.cs

孚把忘扶我技抑快 扭把抉扯快忱批把抑
www.keremet.com




Row Data Gateway


            宋抖攻戒 戒忘扭我扼我 忱忘扶扶抑抒
            妞忘忪忱抉抄 扼找把抉抗快 找忘忌抖我扯抑 忌忘戒抑 忱忘扶扶抑抒
            扼抉抉找志快找扼找志批快找 扼志抉抄
            改抗戒快技扭抖攸把 扮抖攻戒忘 戒忘扭我扼我 忱忘扶扶抑抒
www.keremet.com
                                                  Row Data Gateway


宋抖攻戒 志抑扼找批扭忘快找 志 把抉抖我
我扶找快把扳快抄扼忘 抗 扼找把抉抗快
忱忘扶扶抑抒


扭把快抗把忘扼扶抉 扭抉忱抒抉忱我找 忱抖攸
扭把我技快扶快扶我攸 志
扼扯快扶忘把我攸抒 找把忘扶戒忘抗扯我我
(Transaction Script)

妥我扭抉志抉快 把快扮快扶我快 忱抖攸 扭把快忱扼找忘志抖快扶我攸 忌我戒扶快扼-抖抉忍我抗我
www.keremet.com
                            Row Data Gateway




                   妤把我技快把

  create table people (
       ID int primary key,
       lastname varchar,
       firstname varchar,
       number_of_dependents int)
class PersonGateway...

private String lastName;
private String firstName;
private int numberOfDependents;

public String getLastName() { return lastName; }
public void setLastName(String lastName)
{ this.lastName = lastName; }

public String getFirstName() { return firstName; }
public void setFirstName(String firstName)
{ this.firstName = firstName; }

public int getNumberOfDependents()
{ return numberOfDependents; }
public void setNumberOfDependents(int numberOfDependents)
{ this.numberOfDependents = numberOfDependents; }
class PersonGateway...

private static final String updateStatementString = "UPDATE
people " + " set lastname = ?, firstname =
?, number_of_dependents = ? " + " where id = ?";

public void update() {
  PreparedStatement updateStatement = null;
  try
  {
    updateStatement = DB.prepare(updateStatementString);
    updateStatement.setString(1, lastName);
    updateStatement.setString(2, firstName);
    updateStatement.setInt(3, numberOfDependents);
    updateStatement.setInt(4, getID().intValue());
    updateStatement.execute();
  } catch (Exception e) { throw new ApplicationException(e);
}
  finally {DB.cleanUp(updateStatement); }
}
private static final String insertStatementString =
         "INSERT INTO people VALUES (?, ?, ?, ?)";

  public Long insert() {
     PreparedStatement insertStatement = null;
     try {
        insertStatement = DB.prepare(insertStatementString);
        setID(findNextDatabaseId());
        insertStatement.setInt(1, getID().intValue());
        insertStatement.setString(2, lastName);
        insertStatement.setString(3, firstName);
        insertStatement.setInt(4, numberOfDependents);
        insertStatement.execute();
        Registry.addPerson(this);
        return getID();
     } catch (SQLException e) {
        throw new ApplicationException(e);
     } finally {DB.cleanUp(insertStatement);
     }
  }
class PersonFinder...

  private final static String findStatementString =
        "SELECT id, lastname, firstname, number_of_dependents " +
        " from people " +
        " WHERE id = ?";

  public PersonGateway find(Long id) {
     PersonGateway result = (PersonGateway) Registry.getPerson(id);
     if (result != null) return result;
     PreparedStatement findStatement = null;
     ResultSet rs = null;
     try {
        findStatement = DB.prepare(findStatementString);
        findStatement.setLong(1, id.longValue());
        rs = findStatement.executeQuery();
        rs.next();
        result = PersonGateway.load(rs);
        return result;
     } catch (SQLException e) {
        throw new ApplicationException(e);
     } finally {DB.cleanUp(findStatement, rs);
     }
  }

  public PersonGateway find(long id) {
     return find(new Long(id));
  }
圾 扼扯快扶忘把我我 找把忘扶戒忘抗扯我我
PersonFinder finder = new PersonFinder();

Iterator people = finder.findResponsibles().iterator();

StringBuffer result = new StringBuffer();

while (people.hasNext()) {
   PersonGateway each = (PersonGateway) people.next();
   result.append(each.getLastName());
   result.append(" ");
   result.append(each.getFirstName());
   result.append(" ");
   result.append(String.valueOf(each.getNumberOfDependents()));
   result.append(" ");

}

return result.toString();
www.keremet.com




Active Record


            均抗找我志扶忘攸 戒忘扭我扼抆
            妍忌抓快抗找, 志抑扭抉抖扶攸攻投我抄 把抉抖抆 抉忌抉抖抉折抗我
            忱抖攸 扼找把抉抗我 找忘忌抖我扯抑.
            妍扶 我扶抗忘扭扼批抖我把批快找 忱抉扼找批扭 抗 忌忘戒快 忱忘扶扶抑抒 我
            忱抉忌忘志抖攸快找 抗 忱忘扶扶抑技 抖抉忍我抗批 忱抉技快扶忘.
www.keremet.com
                                     Active Record




妊找把批抗找批把忘 均抗找我志扶抉抄 戒忘扭我扼我 忱抉抖忪扶忘 志
找抉折扶抉扼找我 扼抉抉找志快找扼找志抉志忘找抆 戒忘扭我扼我 志
找忘忌抖我扯快 坎坏:

抗忘忪忱抉快 扭抉抖快 忱抉抖忪扶抉 扼抉抉找志快找扼找志抉志忘找抆
抉忱扶抉技批 扼找抉抖忌扯批 找忘忌抖我扯抑
www.keremet.com
                                                             Active Record




                                    妍忌抑折扶抉
均抗找我志扶忘攸 戒忘扭我扼抆 志抗抖攻折忘快找 志 扼快忌攸 技快找抉忱抑:
  ?   扼抉戒忱忘扶我快 改抗戒快技扭抖攸把忘 忘抗找我志扶抉抄 戒忘扭我扼我 扶忘 抉扼扶抉志快 扼找把抉抗我, 扭抉抖批折快扶扶抉抄 志
      把快戒批抖抆找忘找快 志抑扭抉抖扶快扶我攸 SQL-戒忘扭把抉扼忘;
  ?   扼抉戒忱忘扶我快 我 抉忌扶抉志抖快扶我快 戒忘扭我扼我 志 找忘忌抖我扯快 我戒 戒扶忘折快扶我抄 忘抗找我志扶抉抄 戒忘扭我扼我;
  ?   扼找忘找我折快扼抗我快 技快找抉忱抑 扭抉我扼抗忘, 志抑扭抉抖扶攸攻投我快 扼找忘扶忱忘把找扶抑快 SQL-戒忘扭把抉扼抑 我
      志抉戒志把忘投忘攻投我快 忘抗找我志扶抑快 戒忘扭我扼我;
  ?   我戒志抖快折快扶我快 我 批扼找忘扶抉志抗忘 戒扶忘折快扶我抄 扭抉抖快抄 (get- 我 set-技快找抉忱抑);
  ?   把快忘抖我戒忘扯我攸 扶快抗抉找抉把抑抒 扳把忘忍技快扶找抉志 忌我戒扶快扼-抖抉忍我抗我.
www.keremet.com
                       Table Data Gateway




                  妤把我技快把


Person.java
www.keremet.com




Data Mapper


            妤把快抉忌把忘戒抉志忘找快抖抆 忱忘扶扶抑抒
            妊抖抉抄 扭把快抉忌把忘戒抉志忘找快抖快抄 (Mapper),
            抗抉找抉把抑抄 抉扼批投快扼找志抖攸快找 扭快把快忱忘折批 忱忘扶扶抑抒
            技快忪忱批 抉忌抓快抗找忘技我 我 忌忘戒抉抄 忱忘扶扶抑抒,
            扼抉抒把忘扶攸攸 扭抉扼抖快忱扶我快 扶快戒忘志我扼我技抑技我 忱把批忍 抉找
            忱把批忍忘 我 抉找 扼忘技抉忍抉 扭把快抉忌把忘戒抉志忘找快抖攸
www.keremet.com
                                  Data Mapper




                    妤把抉忌抖快技忘

妞忘抗 圾抑 技抉忪快找快 批技快扶抆扮我找抆 志戒忘我技抉扼志攸戒抆 技快忪忱批
抗抖忘扼扼忘技我 志忘扮快忍抉 扭把我抖抉忪快扶我攸 我 忌忘戒抉抄 忱忘扶扶抑抒?

妖忘扭把我技快把, 抗忘抗 志抑 技抉忪快找快 批技快扶抆扮我找抆
扭快把快扭我扼抑志忘扶我快 抗抉忱忘, 快扼抖我 抉忱扶抉 我抖我 扶快扼抗抉抖抆抗抉
扭抉抖快抄 志 找忘忌抖我扯快 扼技快扶我抖我 扶忘戒志忘扶我快?
www.keremet.com
                               Data Mapper




                  妓快扮快扶我快

圾 忌抉抖抆扮我扶扼找志快 扼抖批折忘快志 扭把快抉忌把忘戒抉志忘找快抖抆
忱忘扶扶抑抒 扭把我技快扶攸快找扼攸 忱抖攸 找抉忍抉, 折找抉忌抑
扼抒快技忘 忌忘戒抑 忱忘扶扶抑抒 我 抉忌抓快抗找扶忘攸 技抉忱快抖抆
技抉忍抖我 我戒技快扶攸找抆扼攸 扶快戒忘志我扼我技抉 忱把批忍 抉找
忱把批忍忘.
www.keremet.com
                                         Data Mapper




妒戒技快扶快扶我快 技抉忱快抖我 扭把快忱技快找扶抉抄 抉忌抖忘扼找我 扶快 找把快忌批快找
我戒技快扶快扶我攸 扼找把批抗找批把抑 忌忘戒抑 忱忘扶扶抑抒 我 扶忘抉忌抉把抉找.

完找抉 抗把忘抄扶快 志忘忪扶抉 扭把我 扶忘抖我折我我 扼抖抉忪扶抑抒
抉找抉忌把忘忪快扶我抄, 抉扼抉忌快扶扶抉 扭把我 我扼扭抉抖抆戒抉志忘扶我我 批忪快
扼批投快扼找志批攻投我抒 忌忘戒 忱忘扶扶抑抒
www.keremet.com
                                  Data Mapper




                   妤把我技快扶快扶我快

圻扼?抖我 忌我戒扶快扼-抖抉忍我抗忘 忱抉志抉抖抆扶抉 扭把抉扼找忘, 快快,
扼抗抉把快快 志扼快忍抉, 技抉忪扶抉 把快忘抖我戒抉志忘找抆 我 忌快戒
扭把我技快扶快?扶我攸 技抉忱快抖我 扭把快忱技快找扶抉抄
抉忌抖忘扼找我 我抖我 扭把快抉忌把忘戒抉志忘找快抖攸 忱忘扶扶抑抒.
www.keremet.com
                                Data Mapper




                  妤把我技快扶快扶我快

圾 扼志抉攻 抉折快把快忱抆, 把快忘抖我戒忘扯我攸 忌抉抖快快 扼抖抉忪扶抉抄
抖抉忍我抗我 扶快志抉戒技抉忪扶忘 忌快戒 我扼扭抉抖抆戒抉志忘扶我攸
技抉忱快抖我 扭把快忱技快找扶抉抄 抉忌抖忘扼找我 我, 抗忘抗
扼抖快忱扼找志我快 改找抉忍抉, 扭把快抉忌把忘戒抉志忘找快抖攸 忱忘扶扶抑抒.
www.keremet.com
                                 Data Mapper




                  妤把快我技批投快扼找志抉

妍扼扶抉志扶抑技 扭把快我技批投快扼找志抉技
扭把快抉忌把忘戒抉志忘找快抖攸 忱忘扶扶抑抒 攸志抖攸快找扼攸
志抉戒技抉忪扶抉扼找抆 把忘忌抉找抑 扼 技抉忱快抖抆攻
扭把快忱技快找扶抉抄 抉忌抖忘扼找我 忌快戒 批折快找忘 扼找把批抗找批把抑
忌忘戒抑 忱忘扶扶抑抒 抗忘抗 志 扭把抉扯快扼扼快
扭把抉快抗找我把抉志忘扶我攸, 找忘抗 我 志抉 志把快技攸 扼忌抉把抗我 我
找快扼找我把抉志忘扶我攸 扭把抉快抗找忘.
www.keremet.com
                  Data Mapper




                  妤把我技快把
www.keremet.com
                                  Data Mapper




                  妍找抖我折我攸 抉找 Active Record
妞把忘找抗抉 忍抉志抉把攸, 抉忌抓快抗找抑 志 扮忘忌抖抉扶快 Data
Mapper 扶我抗忘抗 扶快 扼志攸戒忘扶抑 扼抉 扼抒快技抉抄 坎坏, 志 找抉
志把快技攸 抗忘抗 Active Record 扶忘 改找抉抄 扼志攸戒我
扭抉扼找把抉快扶忘.

圾扼攸 把忘忌抉找忘 扼 坎坏 抉扼批投快扼找志抖攸快找扼攸 折快把快戒
忱抉扭抉抖扶我找快抖抆扶抑抄 扼抖抉抄.
www.keremet.com




      妊扭忘扼我忌抉 戒忘 志扶我技忘扶我快
      圾抉扭把抉扼抑?



                              忱抉抗抖忘忱折我抗
                      妥把快扶抗快扶扮批 圾我找忘抖我抄

More Related Content

扭忘找找快把扶抑 扭把抉快抗找我把抉志忘扶我攸 我扼找抉折扶我抗抉志 忱忘扶扶抑抒

  • 1. www.keremet.com 妤忘找找快把扶抑 扭把抉快抗找我把抉志忘扶我攸 我扼找抉折扶我抗抉志 忱忘扶扶抑抒 妒扼找抉折扶我抗: 把忘忌抉找抑 妙忘把找我扶忘 孜忘批抖快把忘 忱抉抗抖忘忱折我抗 妥把快扶抗快扶扮批 圾我找忘抖我抄
  • 2. www.keremet.com ? Table Data Gateway ? Row Data Gateway ? Active Record ? Data Mapper
  • 3. www.keremet.com Table Data Gateway 宋抖攻戒 找忘忌抖我扯抑 忱忘扶扶抑抒 妊抉忱快把忪我找 志 扼快忌快 志扼快 抗抉技忘扶忱抑 SQL, 扶快抉忌抒抉忱我技抑快 忱抖攸 我戒志抖快折快扶我攸, 志扼找忘志抗我, 抉忌扶抉志抖快扶我攸 我 批忱忘抖快扶我攸 忱忘扶扶抑抒 我戒 找忘忌抖我扯抑
  • 4. www.keremet.com Table Data Gateway 妙快找抉忱抑 宋抖攻戒忘 找忘忌抖我扯抑 忱忘扶扶抑抒 我扼扭抉抖抆戒批攻找扼攸 忱把批忍我技我 抗抉技扭抉扶快扶找忘技我 忱抖攸 志戒忘我技抉忱快抄扼找志我攸 扼 坎坏
  • 5. www.keremet.com Table Data Gateway 妍忌抑折扶抉 坏抖攸 抗忘忪忱抉抄 找忘忌抖我扯抑 坎坏 扼抉戒忱忘快找扼攸 扼抉忌扼找志快扶扶抑抄 扮抖攻戒 找忘忌抖我扯抑 忱忘扶扶抑抒 宋抖攻戒 扶快 我技快快找 扼抉扼找抉攸扶我抄, 志扼快忍抉 抖我扮抆 扭快把快忱忘快找 忱忘扶扶抑快 志 找忘忌抖我扯批 我 我戒 扶快?
  • 6. www.keremet.com Table Data Gateway 孚抉把抉扮抉 扼抉折快找忘快找扼攸 扼 找我扭抉志抑技 把快扮快扶我快技 妙抉忱批抖抆 找忘忌抖我扯抑 (Table Module) 扼 扭忘找找快把扶抉技 妊扯快扶忘把我抄 找把忘扶戒忘抗扯我我 (Transaction Script) 妥我扭抉志抑快 把快扮快扶我攸 忱抖攸 扭把快忱扼找忘志抖快扶我攸 忌我戒扶快扼-抖抉忍我抗我
  • 7. www.keremet.com Table Data Gateway 妤把我技快把抑 ProfileDataManager.cs 孚把忘扶我技抑快 扭把抉扯快忱批把抑
  • 8. www.keremet.com Row Data Gateway 宋抖攻戒 戒忘扭我扼我 忱忘扶扶抑抒 妞忘忪忱抉抄 扼找把抉抗快 找忘忌抖我扯抑 忌忘戒抑 忱忘扶扶抑抒 扼抉抉找志快找扼找志批快找 扼志抉抄 改抗戒快技扭抖攸把 扮抖攻戒忘 戒忘扭我扼我 忱忘扶扶抑抒
  • 9. www.keremet.com Row Data Gateway 宋抖攻戒 志抑扼找批扭忘快找 志 把抉抖我 我扶找快把扳快抄扼忘 抗 扼找把抉抗快 忱忘扶扶抑抒 扭把快抗把忘扼扶抉 扭抉忱抒抉忱我找 忱抖攸 扭把我技快扶快扶我攸 志 扼扯快扶忘把我攸抒 找把忘扶戒忘抗扯我我 (Transaction Script) 妥我扭抉志抉快 把快扮快扶我快 忱抖攸 扭把快忱扼找忘志抖快扶我攸 忌我戒扶快扼-抖抉忍我抗我
  • 10. www.keremet.com Row Data Gateway 妤把我技快把 create table people ( ID int primary key, lastname varchar, firstname varchar, number_of_dependents int)
  • 11. class PersonGateway... private String lastName; private String firstName; private int numberOfDependents; public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public int getNumberOfDependents() { return numberOfDependents; } public void setNumberOfDependents(int numberOfDependents) { this.numberOfDependents = numberOfDependents; }
  • 12. class PersonGateway... private static final String updateStatementString = "UPDATE people " + " set lastname = ?, firstname = ?, number_of_dependents = ? " + " where id = ?"; public void update() { PreparedStatement updateStatement = null; try { updateStatement = DB.prepare(updateStatementString); updateStatement.setString(1, lastName); updateStatement.setString(2, firstName); updateStatement.setInt(3, numberOfDependents); updateStatement.setInt(4, getID().intValue()); updateStatement.execute(); } catch (Exception e) { throw new ApplicationException(e); } finally {DB.cleanUp(updateStatement); } }
  • 13. private static final String insertStatementString = "INSERT INTO people VALUES (?, ?, ?, ?)"; public Long insert() { PreparedStatement insertStatement = null; try { insertStatement = DB.prepare(insertStatementString); setID(findNextDatabaseId()); insertStatement.setInt(1, getID().intValue()); insertStatement.setString(2, lastName); insertStatement.setString(3, firstName); insertStatement.setInt(4, numberOfDependents); insertStatement.execute(); Registry.addPerson(this); return getID(); } catch (SQLException e) { throw new ApplicationException(e); } finally {DB.cleanUp(insertStatement); } }
  • 14. class PersonFinder... private final static String findStatementString = "SELECT id, lastname, firstname, number_of_dependents " + " from people " + " WHERE id = ?"; public PersonGateway find(Long id) { PersonGateway result = (PersonGateway) Registry.getPerson(id); if (result != null) return result; PreparedStatement findStatement = null; ResultSet rs = null; try { findStatement = DB.prepare(findStatementString); findStatement.setLong(1, id.longValue()); rs = findStatement.executeQuery(); rs.next(); result = PersonGateway.load(rs); return result; } catch (SQLException e) { throw new ApplicationException(e); } finally {DB.cleanUp(findStatement, rs); } } public PersonGateway find(long id) { return find(new Long(id)); }
  • 15. 圾 扼扯快扶忘把我我 找把忘扶戒忘抗扯我我 PersonFinder finder = new PersonFinder(); Iterator people = finder.findResponsibles().iterator(); StringBuffer result = new StringBuffer(); while (people.hasNext()) { PersonGateway each = (PersonGateway) people.next(); result.append(each.getLastName()); result.append(" "); result.append(each.getFirstName()); result.append(" "); result.append(String.valueOf(each.getNumberOfDependents())); result.append(" "); } return result.toString();
  • 16. www.keremet.com Active Record 均抗找我志扶忘攸 戒忘扭我扼抆 妍忌抓快抗找, 志抑扭抉抖扶攸攻投我抄 把抉抖抆 抉忌抉抖抉折抗我 忱抖攸 扼找把抉抗我 找忘忌抖我扯抑. 妍扶 我扶抗忘扭扼批抖我把批快找 忱抉扼找批扭 抗 忌忘戒快 忱忘扶扶抑抒 我 忱抉忌忘志抖攸快找 抗 忱忘扶扶抑技 抖抉忍我抗批 忱抉技快扶忘.
  • 17. www.keremet.com Active Record 妊找把批抗找批把忘 均抗找我志扶抉抄 戒忘扭我扼我 忱抉抖忪扶忘 志 找抉折扶抉扼找我 扼抉抉找志快找扼找志抉志忘找抆 戒忘扭我扼我 志 找忘忌抖我扯快 坎坏: 抗忘忪忱抉快 扭抉抖快 忱抉抖忪扶抉 扼抉抉找志快找扼找志抉志忘找抆 抉忱扶抉技批 扼找抉抖忌扯批 找忘忌抖我扯抑
  • 18. www.keremet.com Active Record 妍忌抑折扶抉 均抗找我志扶忘攸 戒忘扭我扼抆 志抗抖攻折忘快找 志 扼快忌攸 技快找抉忱抑: ? 扼抉戒忱忘扶我快 改抗戒快技扭抖攸把忘 忘抗找我志扶抉抄 戒忘扭我扼我 扶忘 抉扼扶抉志快 扼找把抉抗我, 扭抉抖批折快扶扶抉抄 志 把快戒批抖抆找忘找快 志抑扭抉抖扶快扶我攸 SQL-戒忘扭把抉扼忘; ? 扼抉戒忱忘扶我快 我 抉忌扶抉志抖快扶我快 戒忘扭我扼我 志 找忘忌抖我扯快 我戒 戒扶忘折快扶我抄 忘抗找我志扶抉抄 戒忘扭我扼我; ? 扼找忘找我折快扼抗我快 技快找抉忱抑 扭抉我扼抗忘, 志抑扭抉抖扶攸攻投我快 扼找忘扶忱忘把找扶抑快 SQL-戒忘扭把抉扼抑 我 志抉戒志把忘投忘攻投我快 忘抗找我志扶抑快 戒忘扭我扼我; ? 我戒志抖快折快扶我快 我 批扼找忘扶抉志抗忘 戒扶忘折快扶我抄 扭抉抖快抄 (get- 我 set-技快找抉忱抑); ? 把快忘抖我戒忘扯我攸 扶快抗抉找抉把抑抒 扳把忘忍技快扶找抉志 忌我戒扶快扼-抖抉忍我抗我.
  • 19. www.keremet.com Table Data Gateway 妤把我技快把 Person.java
  • 20. www.keremet.com Data Mapper 妤把快抉忌把忘戒抉志忘找快抖抆 忱忘扶扶抑抒 妊抖抉抄 扭把快抉忌把忘戒抉志忘找快抖快抄 (Mapper), 抗抉找抉把抑抄 抉扼批投快扼找志抖攸快找 扭快把快忱忘折批 忱忘扶扶抑抒 技快忪忱批 抉忌抓快抗找忘技我 我 忌忘戒抉抄 忱忘扶扶抑抒, 扼抉抒把忘扶攸攸 扭抉扼抖快忱扶我快 扶快戒忘志我扼我技抑技我 忱把批忍 抉找 忱把批忍忘 我 抉找 扼忘技抉忍抉 扭把快抉忌把忘戒抉志忘找快抖攸
  • 21. www.keremet.com Data Mapper 妤把抉忌抖快技忘 妞忘抗 圾抑 技抉忪快找快 批技快扶抆扮我找抆 志戒忘我技抉扼志攸戒抆 技快忪忱批 抗抖忘扼扼忘技我 志忘扮快忍抉 扭把我抖抉忪快扶我攸 我 忌忘戒抉抄 忱忘扶扶抑抒? 妖忘扭把我技快把, 抗忘抗 志抑 技抉忪快找快 批技快扶抆扮我找抆 扭快把快扭我扼抑志忘扶我快 抗抉忱忘, 快扼抖我 抉忱扶抉 我抖我 扶快扼抗抉抖抆抗抉 扭抉抖快抄 志 找忘忌抖我扯快 扼技快扶我抖我 扶忘戒志忘扶我快?
  • 22. www.keremet.com Data Mapper 妓快扮快扶我快 圾 忌抉抖抆扮我扶扼找志快 扼抖批折忘快志 扭把快抉忌把忘戒抉志忘找快抖抆 忱忘扶扶抑抒 扭把我技快扶攸快找扼攸 忱抖攸 找抉忍抉, 折找抉忌抑 扼抒快技忘 忌忘戒抑 忱忘扶扶抑抒 我 抉忌抓快抗找扶忘攸 技抉忱快抖抆 技抉忍抖我 我戒技快扶攸找抆扼攸 扶快戒忘志我扼我技抉 忱把批忍 抉找 忱把批忍忘.
  • 23. www.keremet.com Data Mapper 妒戒技快扶快扶我快 技抉忱快抖我 扭把快忱技快找扶抉抄 抉忌抖忘扼找我 扶快 找把快忌批快找 我戒技快扶快扶我攸 扼找把批抗找批把抑 忌忘戒抑 忱忘扶扶抑抒 我 扶忘抉忌抉把抉找. 完找抉 抗把忘抄扶快 志忘忪扶抉 扭把我 扶忘抖我折我我 扼抖抉忪扶抑抒 抉找抉忌把忘忪快扶我抄, 抉扼抉忌快扶扶抉 扭把我 我扼扭抉抖抆戒抉志忘扶我我 批忪快 扼批投快扼找志批攻投我抒 忌忘戒 忱忘扶扶抑抒
  • 24. www.keremet.com Data Mapper 妤把我技快扶快扶我快 圻扼?抖我 忌我戒扶快扼-抖抉忍我抗忘 忱抉志抉抖抆扶抉 扭把抉扼找忘, 快快, 扼抗抉把快快 志扼快忍抉, 技抉忪扶抉 把快忘抖我戒抉志忘找抆 我 忌快戒 扭把我技快扶快?扶我攸 技抉忱快抖我 扭把快忱技快找扶抉抄 抉忌抖忘扼找我 我抖我 扭把快抉忌把忘戒抉志忘找快抖攸 忱忘扶扶抑抒.
  • 25. www.keremet.com Data Mapper 妤把我技快扶快扶我快 圾 扼志抉攻 抉折快把快忱抆, 把快忘抖我戒忘扯我攸 忌抉抖快快 扼抖抉忪扶抉抄 抖抉忍我抗我 扶快志抉戒技抉忪扶忘 忌快戒 我扼扭抉抖抆戒抉志忘扶我攸 技抉忱快抖我 扭把快忱技快找扶抉抄 抉忌抖忘扼找我 我, 抗忘抗 扼抖快忱扼找志我快 改找抉忍抉, 扭把快抉忌把忘戒抉志忘找快抖攸 忱忘扶扶抑抒.
  • 26. www.keremet.com Data Mapper 妤把快我技批投快扼找志抉 妍扼扶抉志扶抑技 扭把快我技批投快扼找志抉技 扭把快抉忌把忘戒抉志忘找快抖攸 忱忘扶扶抑抒 攸志抖攸快找扼攸 志抉戒技抉忪扶抉扼找抆 把忘忌抉找抑 扼 技抉忱快抖抆攻 扭把快忱技快找扶抉抄 抉忌抖忘扼找我 忌快戒 批折快找忘 扼找把批抗找批把抑 忌忘戒抑 忱忘扶扶抑抒 抗忘抗 志 扭把抉扯快扼扼快 扭把抉快抗找我把抉志忘扶我攸, 找忘抗 我 志抉 志把快技攸 扼忌抉把抗我 我 找快扼找我把抉志忘扶我攸 扭把抉快抗找忘.
  • 27. www.keremet.com Data Mapper 妤把我技快把
  • 28. www.keremet.com Data Mapper 妍找抖我折我攸 抉找 Active Record 妞把忘找抗抉 忍抉志抉把攸, 抉忌抓快抗找抑 志 扮忘忌抖抉扶快 Data Mapper 扶我抗忘抗 扶快 扼志攸戒忘扶抑 扼抉 扼抒快技抉抄 坎坏, 志 找抉 志把快技攸 抗忘抗 Active Record 扶忘 改找抉抄 扼志攸戒我 扭抉扼找把抉快扶忘. 圾扼攸 把忘忌抉找忘 扼 坎坏 抉扼批投快扼找志抖攸快找扼攸 折快把快戒 忱抉扭抉抖扶我找快抖抆扶抑抄 扼抖抉抄.
  • 29. www.keremet.com 妊扭忘扼我忌抉 戒忘 志扶我技忘扶我快 圾抉扭把抉扼抑? 忱抉抗抖忘忱折我抗 妥把快扶抗快扶扮批 圾我找忘抖我抄