Search in sources :

Example 26 with SqlParameter

use of org.springframework.jdbc.core.SqlParameter in project musiccabinet by hakko.

the class JdbcLibraryAdditionDao method addSubdirectories.

@Override
public void addSubdirectories(String directory, Set<String> subDirectories) {
    String sql = "insert into library.directory_import (parent_path, path) values (?,?)";
    BatchSqlUpdate batchUpdate = new BatchSqlUpdate(jdbcTemplate.getDataSource(), sql);
    batchUpdate.declareParameter(new SqlParameter("parent_path", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("path", Types.VARCHAR));
    for (String subDirectory : subDirectories) {
        batchUpdate.update(new Object[] { directory, subDirectory });
    }
    batchUpdate.flush();
}
Also used : SqlParameter(org.springframework.jdbc.core.SqlParameter) BatchSqlUpdate(org.springframework.jdbc.object.BatchSqlUpdate)

Example 27 with SqlParameter

use of org.springframework.jdbc.core.SqlParameter in project musiccabinet by hakko.

the class JdbcLibraryDeletionDao method deleteFiles.

@Override
public void deleteFiles(String directory, Set<File> files) {
    String sql = "insert into library.file_delete (path, filename) values (?,?)";
    BatchSqlUpdate batchUpdate = new BatchSqlUpdate(jdbcTemplate.getDataSource(), sql);
    batchUpdate.declareParameter(new SqlParameter("path", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("filename", Types.VARCHAR));
    for (File file : files) {
        batchUpdate.update(new Object[] { file.getDirectory(), file.getFilename() });
    }
    batchUpdate.flush();
}
Also used : SqlParameter(org.springframework.jdbc.core.SqlParameter) BatchSqlUpdate(org.springframework.jdbc.object.BatchSqlUpdate) File(com.github.hakko.musiccabinet.domain.model.library.File)

Example 28 with SqlParameter

use of org.springframework.jdbc.core.SqlParameter in project musiccabinet by hakko.

the class JdbcMusicBrainzAlbumDao method batchInsert.

private void batchInsert(List<MBRelease> releases) {
    String sql = "insert into music.mb_album_import" + " (artist_id, title, type_id, release_year, label_name," + " label_mbid, format, release_group_mbid) values (?,?,?,?,?,?,?,?)";
    BatchSqlUpdate batchUpdate = new BatchSqlUpdate(jdbcTemplate.getDataSource(), sql);
    batchUpdate.setBatchSize(1000);
    batchUpdate.declareParameter(new SqlParameter("artist_id", Types.INTEGER));
    batchUpdate.declareParameter(new SqlParameter("title", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("type_id", Types.INTEGER));
    batchUpdate.declareParameter(new SqlParameter("release_year", Types.SMALLINT));
    batchUpdate.declareParameter(new SqlParameter("label_name", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("label_mbid", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("format", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("release_group_mbid", Types.VARCHAR));
    for (MBRelease r : releases) {
        if (r.isValid()) {
            batchUpdate.update(new Object[] { r.getArtistId(), r.getTitle(), r.getAlbumType().ordinal(), r.getReleaseYear(), r.getLabelName(), r.getLabelMbid(), r.getFormat(), r.getReleaseGroupMbid() });
        } else {
            LOG.warn("Invalid MusicBrainz release ignored: " + r);
        }
    }
    batchUpdate.flush();
}
Also used : SqlParameter(org.springframework.jdbc.core.SqlParameter) BatchSqlUpdate(org.springframework.jdbc.object.BatchSqlUpdate) MBRelease(com.github.hakko.musiccabinet.domain.model.music.MBRelease)

Example 29 with SqlParameter

use of org.springframework.jdbc.core.SqlParameter in project musiccabinet by hakko.

the class JdbcTagDao method createTags.

@Override
public void createTags(List<String> tags) {
    String sql = "insert into music.tag (tag_name) select distinct (?)" + " where not exists (select 1 from music.tag where tag_name = ?)";
    BatchSqlUpdate batchUpdate = new BatchSqlUpdate(jdbcTemplate.getDataSource(), sql);
    batchUpdate.setBatchSize(1000);
    batchUpdate.declareParameter(new SqlParameter("tag_name", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("tag_name", Types.VARCHAR));
    for (String tag : tags) {
        batchUpdate.update(new Object[] { tag, tag });
    }
    batchUpdate.flush();
}
Also used : SqlParameter(org.springframework.jdbc.core.SqlParameter) BatchSqlUpdate(org.springframework.jdbc.object.BatchSqlUpdate)

Example 30 with SqlParameter

use of org.springframework.jdbc.core.SqlParameter in project musiccabinet by hakko.

the class JdbcTagDao method createTagCorrections.

/*
	 * tagCorrection is a map of <original tag name> -> <corrected tag name>
	 */
@Override
public void createTagCorrections(Map<String, String> tagCorrections) {
    String sql = "update music.tag t set corrected_id = null where corrected_id is not null";
    jdbcTemplate.execute(sql);
    if (tagCorrections.size() == 0)
        return;
    sql = getCreateMissingTagsSql(tagCorrections.size());
    jdbcTemplate.update(sql, (Object[]) tagCorrections.keySet().toArray(new String[tagCorrections.size()]));
    jdbcTemplate.update(sql, (Object[]) tagCorrections.values().toArray(new String[tagCorrections.size()]));
    sql = "update music.tag t set corrected_id = tc.id" + " from music.tag tc where t.tag_name = ? and tc.tag_name = ?";
    BatchSqlUpdate batchUpdate = new BatchSqlUpdate(jdbcTemplate.getDataSource(), sql);
    batchUpdate.setBatchSize(1000);
    batchUpdate.declareParameter(new SqlParameter("t.tag_name", Types.VARCHAR));
    batchUpdate.declareParameter(new SqlParameter("tc.tag_name", Types.VARCHAR));
    for (String tag : tagCorrections.keySet()) {
        batchUpdate.update(new Object[] { tag, tagCorrections.get(tag) });
    }
    batchUpdate.flush();
}
Also used : SqlParameter(org.springframework.jdbc.core.SqlParameter) BatchSqlUpdate(org.springframework.jdbc.object.BatchSqlUpdate)

Aggregations

SqlParameter (org.springframework.jdbc.core.SqlParameter)66 BatchSqlUpdate (org.springframework.jdbc.object.BatchSqlUpdate)23 Test (org.junit.Test)22 ResultSet (java.sql.ResultSet)15 DataSource (javax.sql.DataSource)15 HashMap (java.util.HashMap)12 Customer (org.springframework.jdbc.Customer)12 SqlOutParameter (org.springframework.jdbc.core.SqlOutParameter)6 LinkedHashMap (java.util.LinkedHashMap)5 ArrayList (java.util.ArrayList)4 InvalidDataAccessApiUsageException (org.springframework.dao.InvalidDataAccessApiUsageException)4 File (com.github.hakko.musiccabinet.domain.model.library.File)3 PreparedStatementCreatorFactory (org.springframework.jdbc.core.PreparedStatementCreatorFactory)3 MapSqlParameterSource (org.springframework.jdbc.core.namedparam.MapSqlParameterSource)3 Track (com.github.hakko.musiccabinet.domain.model.music.Track)2 PreparedStatement (java.sql.PreparedStatement)2 Map (java.util.Map)2 CallableStatementCreatorFactory (org.springframework.jdbc.core.CallableStatementCreatorFactory)2 SqlParameterValue (org.springframework.jdbc.core.SqlParameterValue)2 DriverManagerDataSource (org.springframework.jdbc.datasource.DriverManagerDataSource)2