Mercurial Hosting > nabble
view src/nabble/model/TagImpl.java @ 62:4674ed7d56df default tip
remove n2
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 30 Sep 2023 20:25:29 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
package nabble.model; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; import java.util.ArrayList; import java.util.List; import fschmidt.db.postgres.DbDatabaseImpl; final class TagImpl { private TagImpl() {} // never static void addTag(Site site,Node node,User user,String label) { try { Connection con = site.getDb().getConnection(); PreparedStatement stmt = con.prepareStatement( "insert into tag (node_id,user_id,label) values (?,?,?)" ); if( node == null ) { stmt.setNull( 1, Types.INTEGER ); } else { stmt.setLong( 1, node.getId() ); } if( user == null ) { stmt.setNull( 2, Types.INTEGER ); } else { stmt.setLong( 2, user.getId() ); } stmt.setString( 3, label ); DbDatabaseImpl.executeUpdateIgnoringDuplicateKeys(stmt); stmt.close(); con.close(); } catch(SQLException e) { throw new RuntimeException(e); } } static int countTags(SiteKey siteKey,String sqlCondition) { try { Connection con = siteKey.getDb().getConnection(); try { Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery( "select count(*) as n from tag where " + sqlCondition ); rs.next(); int n = rs.getInt("n"); rs.close(); stmt.close(); return n; } finally { con.close(); } } catch(SQLException e) { throw new RuntimeException("sqlCondition = "+sqlCondition,e); } } static List<String> findTagLabels(Site site,String sqlCondition) { try { List<String> list = new ArrayList<String>(); Connection con = site.getDb().getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery( "select distinct label from tag where " + sqlCondition ); while( rs.next() ) { list.add( rs.getString("label") ); } rs.close(); stmt.close(); con.close(); return list; } catch(SQLException e) { throw new RuntimeException(e); } } static List<Long> findTagUserIds(Site site,String sqlCondition) { try { List<Long> list = new ArrayList<Long>(); Connection con = site.getDb().getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery( "select distinct user_id from tag where " + sqlCondition ); while( rs.next() ) { list.add( rs.getLong("user_id") ); } rs.close(); stmt.close(); con.close(); return list; } catch(SQLException e) { throw new RuntimeException(e); } } static List<Long> findTagNodeIds(Site site,String sqlCondition) { try { List<Long> list = new ArrayList<Long>(); Connection con = site.getDb().getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery( "select distinct node_id from tag where " + sqlCondition ); while( rs.next() ) { list.add( rs.getLong("node_id") ); } rs.close(); stmt.close(); con.close(); return list; } catch(SQLException e) { throw new RuntimeException(e); } } static void deleteTags(SiteKey siteKey,String sqlCondition) { try { Connection con = siteKey.getDb().getConnection(); Statement stmt = con.createStatement(); stmt.executeUpdate( "delete from tag where " + sqlCondition ); stmt.close(); con.close(); } catch(SQLException e) { throw new RuntimeException(e); } } }