High Level Database Access: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
No edit summary
imported>Hendrik Brummermann
No edit summary
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Navigation for Marauroa Top|Users}}
{{Navigation for Marauroa Top|Using}}
{{Navigation for Marauroa Users}}
{{Navigation for Marauroa Users}}


Line 15: Line 15:
== Data Access Objects ==
== Data Access Objects ==


In compliance to the Marauroa architecture, database access related code is not spread all over the code base but concentrated in a set of data access objects (DAO). There is JavaDoc available for the complete [http://stendhal.game-host.org/hudson/job/marauroa_HEAD/javadoc/marauroa/server/game/db/package-summary.html DAO package]. Note that games can add their own DAOs.
In compliance to the Marauroa architecture, database access related code is not spread all over the code base but concentrated in a set of data access objects (DAO). There is JavaDoc available for the complete [http://stendhalgame.org/hudson/job/marauroa_HEAD/javadoc/marauroa/server/game/db/package-summary.html DAO package]. Note that games can add their own DAOs.


So lets assume you want to log a gameEvent about a player logging out:
So lets assume you want to log a gameEvent about a player logging out:
Line 38: Line 38:
DBTransaction transaction = TransactionPool.get().beginWork();
DBTransaction transaction = TransactionPool.get().beginWork();
try {
try {
DAORegister.get().get(GameEventDAO.class).addGameEvent(playerName, "saved");
DAORegister.get().get(GameEventDAO.class).addGameEvent(transaction, playerName, "saved");
DAORegister.get().get(GameEventDAO.class).addGameEvent(playerName, "logout");
DAORegister.get().get(GameEventDAO.class).addGameEvent(transaction, playerName, "logout");
} finally {
} finally {
TransactionPool.get().commit(transaction);
TransactionPool.get().commit(transaction);
Line 46: Line 46:


Please note that commit() will automatically perform a rollback and throw an SQLException if there have been any errors.
Please note that commit() will automatically perform a rollback and throw an SQLException if there have been any errors.
{{#breadcrumbs: [[Marauroa]] | [[Navigation for Marauroa Users|Using]] | [[High Level Database Access]] }}