Refactoring Database Access in Marauroa: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Madmetzger |
imported>Kymara |
||
| (33 intermediate revisions by 3 users not shown) | |||
| Line 18: | Line 18: | ||
<!-- OUTDATED [[Image:Marauroa.server.game.db.png]] --> |
<!-- OUTDATED [[Image:Marauroa.server.game.db.png]] --> |
||
[[Image:Active object commands.JPG]] |
|||
== Concept FAQ == |
== Concept FAQ == |
||
| Line 37: | Line 36: | ||
Imagine you want to subclass the CharacterDAO with your class SomeGameCharacterDAO: |
Imagine you want to subclass the CharacterDAO with your class SomeGameCharacterDAO: |
||
<source lang="java"> |
|||
public class SomeGameCharacterDAO extends CharacterDAO { |
public class SomeGameCharacterDAO extends CharacterDAO { |
||
... |
... |
||
</source> |
|||
You simply register it as |
You simply register it as |
||
<source lang="java"> |
|||
DAORegistry.get().register(CharacterDAO.class, new SomeGameCharacterDAO()); |
DAORegistry.get().register(CharacterDAO.class, new SomeGameCharacterDAO()); |
||
</source> |
|||
Note: In the register call the first parameter is the parent class you want to replace. |
Note: In the register call the first parameter is the parent class you want to replace. |
||
| Line 47: | Line 49: | ||
=== What are those database adapters for? === |
=== What are those database adapters for? === |
||
They are a thin layer of database abstraction. This allows us to not only support MySQL but also database systems |
They are a thin layer of database abstraction. This allows us to not only support MySQL but also database systems which don't require an external server. |
||
=== Why is there a method getLastInsertId? === |
=== Why is there a method getLastInsertId? === |
||
| Line 81: | Line 82: | ||
The following diff shows the complete list of changes that were required to port JMaPacman. I think it may help you to get a feeling on how to adjust your own code. |
The following diff shows the complete list of changes that were required to port JMaPacman. I think it may help you to get a feeling on how to adjust your own code. |
||
<!-- |
|||
Don't use syntax highlighting here because it does not work well with the diff characters and bold formation |
|||
<source lang="java"> |
|||
--> |
|||
public class MaPacmanRPRuleProcessor implements IRPRuleProcessor |
public class MaPacmanRPRuleProcessor implements IRPRuleProcessor |
||
{ |
{ |
||
| Line 163: | Line 167: | ||
} |
} |
||
} |
} |
||
[[Category:Marauroa]] |
|||