Upload
bose999
View
9.076
Download
9
Embed Size (px)
DESCRIPTION
~5分で出来るとこまで編 for LT~
Citation preview
GAE/J 開発環境でJDO入門~5分で出来るとこまで編 for LT~
bose.techie.jp
JDOってなんなんだよ><
vGAE/Jでアプリを作る時に提供されてるのはRDBではなくてBigTableってやつ。それをあれこれするAPIがJDOやJPAなんだ。
§ JDOやJPAは標準的なものだからね!GAE/J独自じゃないよ!
はいー どーん
開発環境の作り方
開発環境構築の参考URL
http://gihyo.jp/dev/column/01/java/2009/0415
あたり読むといいと思うよ。自習してくれ!
画像自重
こんなこと言われないように><
はセリ自重
本題ですよー
今日はJDOってどうやって書くのを
中心にささっと紹介します。
まずEntity
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class User {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String userId;
@Persistent
private String password;
あとげったー、せったーね。
GAE/Jでは必須アプリで
主キー定義するという意味
アプリケーションで値を自動生成
んで Daoね その1
public class UserDao {
public void insert(PersistenceManager pm, User user){pm.makePersistent(user);
}
public void update(PersistenceManager pm, User user){insert(pm, user);
}
public User selectKey(PersistenceManager pm, Key key){return (User)pm.getObjectById(User.class, key);
}
public void delete(PersistenceManager pm, User user){pm.deletePersistent(user);
}
んで Daoね その2
public User selectUserId(PersistenceManager pm, String userId){
Query query = pm.newQuery(User.class);query.declareParameters("java.lang.String userId");query.setRange(0, 10);
try {List<User> users = (List<User>) query.execute(userId);If(users != null && users.size() > 0){
return users.get(0);} else {
return null;}
} finally {query.closeAll();
}}
}
じゃあ 使うよ
User user = new User();user.setUserId("peko");user.setPassword("pokopen!");PersistenceManager persistenceManager =
PMFactory.getPersistenceManager();Transaction transaction = persistenceManager.currentTransaction();transaction.begin();try {
UserDao userDao = new UserDao();userDao.insert(persistenceManager,user);user = userDao.selectUserId(persistenceManager,"peko");userDao.delete(persistenceManager,user);transaction.commit();
} catch (Exception e) {e.printStackTrace();
} finally {if (transaction.isActive()){
transaction.rollback();}persistenceManager.close();
}
トランザクション開始
エンティティの操作を行う為のインタフェース
データ永続化
データ検索
データ削除
トランザクションコミット
トランザクションロールバック
はセリ自重
はーい 注目! ここでCMです!
WEB+DB PRESSにグルージェント荒川大先生の
BigTable/JDOに関する記事が掲載。
精読してね>< はセリ自重
壮大な
前フリ終了