Refactoring Database Access in Marauroa: Difference between revisions
Content deleted Content added
imported>Hendrik Brummermann added diff of JMaPacman |
imported>Hendrik Brummermann →Porting of JMaPacman: format patch |
||
Line 81:
The following diff shows all the changes that were required to port JMaPacman. I think it may help you to get a feeling on how to adjust your own code.
public class MaPacmanRPRuleProcessor implements IRPRuleProcessor
{
public AccountResult createAccount(String username, String password, String email) {
- IDatabase database = DatabaseFactory.getDatabase();
+ '''TransactionPool transactionPool = TransactionPool.get();'''
- Transaction trans = database.getTransaction();
+ '''DBTransaction trans = transactionPool.beginWork();'''
+ '''AccountDAO accountDAO = DAORegister.get().get(AccountDAO.class);'''
- if (database.hasPlayer(trans, username)) {
+ if ('''accountDAO'''.hasPlayer(trans, username)) {
return new AccountResult(Result.FAILED_PLAYER_EXISTS, username);
}
- database.addPlayer(trans, username, Hash.hash(password), email);
+ '''accountDAO'''.addPlayer(trans, username, Hash.hash(password), email);
- trans.commit();
+ '''transactionPool.commit(trans);'''
return new AccountResult(Result.OK_CREATED, username);
} catch (SQLException e1) {
- try {
- trans.rollback();
-
-
-
- }
+ '''transactionPool.rollback(trans);'''
}
}
public CharacterResult createCharacter(String username, String character, RPObject tmpl) {
- IDatabase database = DatabaseFactory.getDatabase();
+ '''TransactionPool transactionPool = TransactionPool.get();'''
-
+ '''DBTransaction trans = transactionPool.
+ CharacterDAO characterDAO = DAORegister.get().get(CharacterDAO.class);
try {
-
- if (database.hasCharacter(trans, username, character)) {
+ if ('''characterDAO'''.hasCharacter(trans, username, character)) {
return new CharacterResult(Result.FAILED_PLAYER_EXISTS, character, tmpl);
@@ -196,18 +190,13 @@
- database.addCharacter(trans, username, character, object);
+ '''characterDAO'''.addCharacter(trans, username, character, object);
- trans.commit();
+ '''transactionPool.commit(trans);'''
return new CharacterResult(Result.OK_CREATED, character, object);
} catch (Exception e1) {
//logger.warn("SQL exception while trying to create a new character: ", e1);
- try {
- trans.rollback();
- } catch (SQLException e2) {
- //logger.error("Rollback failed: ", e2);
- System.out.println("Rollback failed: " + e2);
- }
+ '''transactionPool.rollback(trans);'''
return new CharacterResult(Result.FAILED_EXCEPTION, character, tmpl);
}
}
| |||