diff options
author | Simon Rettberg | 2015-06-16 18:22:54 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-06-16 18:22:54 +0200 |
commit | 9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1 (patch) | |
tree | b7fb7612f4319943426d8ca30d1a8a7fb68b4208 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java | |
parent | [server] On mah way (lots of restructuring, some early db classes, sql dump o... (diff) | |
download | tutor-module-9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1.tar.gz tutor-module-9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1.tar.xz tutor-module-9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1.zip |
[server] Add script field to lecture table; implement getImageDetails method to get detailed information about an image from the database
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java new file mode 100644 index 00000000..6cabd021 --- /dev/null +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java @@ -0,0 +1,70 @@ +package org.openslx.bwlp.sat.database.mappers; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.openslx.bwlp.sat.database.Database; +import org.openslx.bwlp.sat.database.MysqlConnection; +import org.openslx.bwlp.sat.database.MysqlStatement; + +public class DbSoftwareTag { + + private static final Logger LOGGER = Logger.getLogger(DbSoftwareTag.class); + + /** + * Get list of software installed in a certain image version. + * + * @param connection database connection to use + * @param imageVersionId UUID of image version + * @return list of software products + * @throws SQLException + */ + public static List<String> getImageVersionSoftwareList(MysqlConnection connection, String imageVersionId) + throws SQLException { + MysqlStatement stmt = connection.prepareStatement("SELECT softwarestring FROM software" + + " INNER JOIN imageversion_x_software USING (softwareid)" + + " WHERE imageversionid = :imageversionid"); + stmt.setString("imageversionid", imageVersionId); + ResultSet rs = stmt.executeQuery(); + List<String> softwareList = new ArrayList<>(); + while (rs.next()) { + softwareList.add(rs.getString("softwarestring")); + } + stmt.close(); + return softwareList; + } + + /** + * Get list of software installed in a certain image version. + * + * @param imageVersionId UUID of image version + * @return list of software products + * @throws SQLException + */ + public static List<String> getImageVersionSoftwareList(String imageVersionId) throws SQLException { + try (MysqlConnection connection = Database.getConnection()) { + return getImageVersionSoftwareList(connection, imageVersionId); + } catch (SQLException e) { + LOGGER.error("Query failed in DbSoftware.getImageVersionSoftwareList()", e); + throw e; + } + } + + public static List<String> getImageTags(MysqlConnection connection, String imageBaseId) throws SQLException { + MysqlStatement stmt = connection.prepareStatement("SELECT displayname FROM tag" + + " INNER JOIN imagebase_x_tag USING (tagid)" + + " WHERE imagebaseid = :imagebaseid"); + stmt.setString("imagebaseid", imageBaseId); + ResultSet rs = stmt.executeQuery(); + List<String> tagList = new ArrayList<>(); + while (rs.next()) { + tagList.add(rs.getString("displayname")); + } + stmt.close(); + return tagList; + } + +} |