Add monster card table and initial dao

This commit is contained in:
P0nk
2023-07-25 18:46:03 +02:00
parent e31465a1b5
commit b3ec325e95
3 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
package database.monsterbook;
import database.DaoException;
import database.PgDatabaseConnection;
import org.jdbi.v3.core.Handle;
import org.jdbi.v3.core.JdbiException;
import java.util.List;
public class MonsterCardDao {
private final PgDatabaseConnection connection;
public MonsterCardDao(PgDatabaseConnection connection) {
this.connection = connection;
}
public List<MonsterCard> load(int chrId) {
try (Handle handle = connection.getHandle()) {
return handle.createQuery("""
SELECT *
FROM monster_card
WHERE chr_id = ?;""")
.bind(0, chrId)
.mapTo(MonsterCard.class)
.list();
} catch (JdbiException e) {
throw new DaoException("Failed to find monster cards for chr id %d".formatted(chrId), e);
}
}
}

View File

@@ -0,0 +1,17 @@
package database.monsterbook;
import org.jdbi.v3.core.mapper.RowMapper;
import org.jdbi.v3.core.statement.StatementContext;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MonsterCardRowMapper implements RowMapper<MonsterCard> {
@Override
public MonsterCard map(ResultSet rs, StatementContext ctx) throws SQLException {
int cardId = rs.getInt("card_id");
byte level = rs.getByte("level");
return new MonsterCard(cardId, level);
}
}