Add monster card table and initial dao
This commit is contained in:
30
src/main/java/database/monsterbook/MonsterCardDao.java
Normal file
30
src/main/java/database/monsterbook/MonsterCardDao.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
17
src/main/java/database/monsterbook/MonsterCardRowMapper.java
Normal file
17
src/main/java/database/monsterbook/MonsterCardRowMapper.java
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user