Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void addMinionEx4() throws IOException, SQLException {
- System.out.println("Enter minion info (copy the input):");
- String[] minionsInfo = reader.readLine().split("\\s+");
- String minionName = minionsInfo[1];
- int minionAge = Integer.parseInt(minionsInfo[2]);
- String townName = minionsInfo[3];
- System.out.println("Enter villain name:");
- String villainName = reader.readLine().split("\\s+")[1];
- int townId = getEntityIdByName(townName, "towns");
- if (townId < 0) {
- insertIntoTowns(townName);
- townId = getEntityIdByName(townName, "towns");
- System.out.printf("Town %s was added to the database.%n", townName);
- }
- insertMinionIntoMinions(minionName, minionAge, townId);
- int villainId = getEntityIdByName(villainName, "villains");
- if (villainId < 0) {
- createVillain(villainName);
- villainId = getEntityIdByName(villainName, "villains");
- System.out.printf("Villain %s was added to the database.%n", villainName);
- }
- addMinionToVillain(minionName, villainId);
- System.out.printf("Successfully added %s to be minion of %s.%n", minionName, villainName);
- }
- private void addMinionToVillain(String minionName, int villainId) throws SQLException {
- int minionId = getEntityIdByName(minionName, "minions");
- String query = "INSERT INTO minions_villains VALUES (?, ?)";
- connection.setAutoCommit(false);
- PreparedStatement statement = connection.prepareStatement(query);
- statement.setInt(1, minionId);
- statement.setInt(2, villainId);
- statement.execute();
- connection.commit();
- }
- private void createVillain(String villainName) throws SQLException {
- String query = "INSERT INTO villains(name, evilness_factor) VALUES (?, ?)";
- connection.setAutoCommit(false);
- PreparedStatement statement = connection.prepareStatement(query);
- statement.setString(1, villainName);
- statement.setString(2, "evil");
- statement.execute();
- connection.commit();
- }
- private void insertMinionIntoMinions(String minionName, int minionAge, int townId) throws SQLException {
- String query = "INSERT INTO minions(name, age, town_id) VALUES (?, ?, ?)";
- connection.setAutoCommit(false);
- PreparedStatement statement = connection.prepareStatement(query);
- statement.setString(1, minionName);
- statement.setInt(2, minionAge);
- statement.setInt(3, townId);
- statement.execute();
- connection.commit();
- }
- private void insertIntoTowns(String townName) throws SQLException {
- String query = "INSERT INTO towns(name) VALUES (?)";
- connection.setAutoCommit(false);
- PreparedStatement statement = connection.prepareStatement(query);
- statement.setString(1, townName);
- statement.execute();
- connection.commit();
- }
- private int getEntityIdByName(String entityName, String tableName) throws SQLException {
- String query = String.format("SELECT id FROM %s WHERE name = ?", tableName);
- PreparedStatement statement = connection.prepareStatement(query);
- statement.setString(1, entityName);
- ResultSet resultSet = statement.executeQuery();
- return resultSet.next() ? resultSet.getInt(1) : -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement