扭忘找找快把扶抑 扭把抉快抗找我把抉志忘扶我攸 我扼找抉折扶我抗抉志 忱忘扶扶抑抒
- 1. www.keremet.com
妤忘找找快把扶抑 扭把抉快抗找我把抉志忘扶我攸
我扼找抉折扶我抗抉志 忱忘扶扶抑抒
妒扼找抉折扶我抗: 把忘忌抉找抑 妙忘把找我扶忘 孜忘批抖快把忘
忱抉抗抖忘忱折我抗
妥把快扶抗快扶扮批 圾我找忘抖我抄
- 2. www.keremet.com
? Table Data Gateway
? Row Data Gateway
? Active Record
? Data Mapper
- 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
孚把忘扶我技抑快 扭把抉扯快忱批把抑
- 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-技快找抉忱抑);
? 把快忘抖我戒忘扯我攸 扶快抗抉找抉把抑抒 扳把忘忍技快扶找抉志 忌我戒扶快扼-抖抉忍我抗我.
- 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
妤把快我技批投快扼找志抉
妍扼扶抉志扶抑技 扭把快我技批投快扼找志抉技
扭把快抉忌把忘戒抉志忘找快抖攸 忱忘扶扶抑抒 攸志抖攸快找扼攸
志抉戒技抉忪扶抉扼找抆 把忘忌抉找抑 扼 技抉忱快抖抆攻
扭把快忱技快找扶抉抄 抉忌抖忘扼找我 忌快戒 批折快找忘 扼找把批抗找批把抑
忌忘戒抑 忱忘扶扶抑抒 抗忘抗 志 扭把抉扯快扼扼快
扭把抉快抗找我把抉志忘扶我攸, 找忘抗 我 志抉 志把快技攸 扼忌抉把抗我 我
找快扼找我把抉志忘扶我攸 扭把抉快抗找忘.
- 28. www.keremet.com
Data Mapper
妍找抖我折我攸 抉找 Active Record
妞把忘找抗抉 忍抉志抉把攸, 抉忌抓快抗找抑 志 扮忘忌抖抉扶快 Data
Mapper 扶我抗忘抗 扶快 扼志攸戒忘扶抑 扼抉 扼抒快技抉抄 坎坏, 志 找抉
志把快技攸 抗忘抗 Active Record 扶忘 改找抉抄 扼志攸戒我
扭抉扼找把抉快扶忘.
圾扼攸 把忘忌抉找忘 扼 坎坏 抉扼批投快扼找志抖攸快找扼攸 折快把快戒
忱抉扭抉抖扶我找快抖抆扶抑抄 扼抖抉抄.
- 29. www.keremet.com
妊扭忘扼我忌抉 戒忘 志扶我技忘扶我快
圾抉扭把抉扼抑?
忱抉抗抖忘忱折我抗
妥把快扶抗快扶扮批 圾我找忘抖我抄