High Level Database Access: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Hendrik Brummermann |
imported>Hendrik Brummermann No edit summary |
||
| (51 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{Navigation for Marauroa Top}} |
{{Navigation for Marauroa Top|Using}} |
||
{{Navigation for Marauroa Users}} |
{{Navigation for Marauroa Users}} |
||
| Line 7: | Line 7: | ||
This article describes how you can use Marauroa in your games to |
This article describes how you can use Marauroa in your games to access the database on a high level. The internal works are explained in [[Low Level Database Access]]. The table structure of the Marauroa database is explained in [[Marauroa Database Structure]]. |
||
Most of the database access is transparent. For example if client requests the creation of an account and the game server logic accepts that request, Marauroa will automatically add the necessary rows to the database. |
Most of the database access is transparent. For example if client requests the creation of an account and the game server logic accepts that request, Marauroa will automatically add the necessary rows to the database. |
||
| 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:// |
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 45: | Line 45: | ||
</source> |
</source> |
||
Please note that commit() will automatically perform a rollback and throw an SQLException if there |
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]] }} |
|||