Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- ConnectionPool connectionPool = ConnectionPool.getInstance();
- Connection connection = connectionPool.getConnection();
- try {
- Statement statement = connection.createStatement();
- String sqlQuery = "SELECT artist_name, song_name, content, song_part\n" +
- "FROM songs\n" +
- "INNER JOIN songsdatabase.lines ON songsdatabase.lines.song_id = songs.song_id\n" +
- "INNER JOIN artists ON songs.artist_id = artists.artist_id\n" +
- "WHERE songs.song_id = 1;";
- ResultSet resultSet = statement.executeQuery(sqlQuery);
- Song song = new Song();
- SongLyricsComposite songLyrics = new SongLyricsComposite();
- List<List<String>> lyricsPartsAsStringValues = new ArrayList<>();
- int count = 0;
- while (resultSet.next()) {
- if (count == 0) {
- song.setName(resultSet.getString("song_name"));
- Artist artist = new Artist();
- artist.setName(resultSet.getString("artist_name"));
- song.setArtist(artist);
- }
- lyricsPartsAsStringValues.add(Arrays.asList(resultSet.getString("song_part"),
- resultSet.getString("content")));
- count++;
- }
- int lyricsPartType = 0;
- int lineContent = 1;
- SongLyricsComposite lyricsPart = null;
- for (int index = 0; index < lyricsPartsAsStringValues.size(); index++) {
- List<String> entry = lyricsPartsAsStringValues.get(index);
- String partType = entry.get(lyricsPartType);
- String content = entry.get(lineContent);
- switch (partType) {
- case "verse":
- if (lyricsPart == null) {
- lyricsPart = new SongLyricsComposite();
- lyricsPart.setType(SongLyricsPartType.VERSE);
- }
- break;
- case "chorus":
- if (lyricsPart == null) {
- lyricsPart = new SongLyricsComposite();
- lyricsPart.setType(SongLyricsPartType.CHORUS);
- }
- break;
- case "hook":
- if (lyricsPart == null) {
- lyricsPart = new SongLyricsComposite();
- lyricsPart.setType(SongLyricsPartType.HOOK);
- }
- break;
- case "bridge":
- if (lyricsPart == null) {
- lyricsPart = new SongLyricsComposite();
- lyricsPart.setType(SongLyricsPartType.BRIDGE);
- }
- break;
- default:
- break;
- }
- lyricsPart.add(new Line(content));
- int nextIndex = index + 1;
- String nextType = null;
- if (nextIndex != lyricsPartsAsStringValues.size()) {
- nextType = lyricsPartsAsStringValues.get(nextIndex).get(lyricsPartType);
- }
- if (!partType.equals(nextType)) {
- songLyrics.add(lyricsPart);
- lyricsPart = null;
- }
- }
- song.setLyrics(songLyrics);
- List<SongLyrics> lyricsPartsAsList = new ArrayList<>();
- ((SongLyricsComposite) song.getLyrics()).getComponents().forEach(part -> lyricsPartsAsList.add(part));
- request.setAttribute("songArtist", song.getArtist().getName());
- request.setAttribute("songName", song.getName());
- request.setAttribute("song", song);
- String listOfLyricsParts = "listOfLyricsParts";
- request.setAttribute(listOfLyricsParts, lyricsPartsAsList);
- request.getRequestDispatcher("/song.jsp").forward(request, response);
- connectionPool.returnConnection(connection);
- resultSet.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement