14
GAE/J 開発環境でJDO入門 5分で出来るとこまで編 for LTbose.techie.jp

GAE/J 開発環境でJDO入門

  • Upload
    bose999

  • View
    9.076

  • Download
    9

Embed Size (px)

DESCRIPTION

~5分で出来るとこまで編 for LT~

Citation preview

Page 1: GAE/J 開発環境でJDO入門

GAE/J 開発環境でJDO入門~5分で出来るとこまで編 for LT~

bose.techie.jp

Page 2: GAE/J 開発環境でJDO入門

JDOってなんなんだよ><

vGAE/Jでアプリを作る時に提供されてるのはRDBではなくてBigTableってやつ。それをあれこれするAPIがJDOやJPAなんだ。

§ JDOやJPAは標準的なものだからね!GAE/J独自じゃないよ!

Page 3: GAE/J 開発環境でJDO入門

はいー どーん

開発環境の作り方

Page 4: GAE/J 開発環境でJDO入門

開発環境構築の参考URL

http://gihyo.jp/dev/column/01/java/2009/0415

あたり読むといいと思うよ。自習してくれ!

画像自重

Page 5: GAE/J 開発環境でJDO入門

こんなこと言われないように><

はセリ自重

Page 6: GAE/J 開発環境でJDO入門
Page 7: GAE/J 開発環境でJDO入門

本題ですよー

今日はJDOってどうやって書くのを

中心にささっと紹介します。

Page 8: GAE/J 開発環境で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では必須アプリで

主キー定義するという意味

アプリケーションで値を自動生成

Page 9: GAE/J 開発環境でJDO入門

んで 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);

}

Page 10: GAE/J 開発環境でJDO入門

んで 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();

}}

}

Page 11: GAE/J 開発環境でJDO入門

じゃあ 使うよ

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();

トランザクション開始

エンティティの操作を行う為のインタフェース

データ永続化

データ検索

データ削除

トランザクションコミット

トランザクションロールバック

Page 12: GAE/J 開発環境でJDO入門

はセリ自重

Page 13: GAE/J 開発環境でJDO入門

はーい 注目! ここでCMです!

WEB+DB PRESSにグルージェント荒川大先生の

BigTable/JDOに関する記事が掲載。

精読してね>< はセリ自重

Page 14: GAE/J 開発環境でJDO入門

壮大な

前フリ終了