From f08abdf936c6ebc303f1ade8d7bbc8dbe4c77708 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 23 Oct 2023 10:19:13 +0300 Subject: jdbc: row mapper usage refactoring --- .../java/com/juick/service/UserServiceImpl.java | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/main/java/com/juick/service/UserServiceImpl.java') diff --git a/src/main/java/com/juick/service/UserServiceImpl.java b/src/main/java/com/juick/service/UserServiceImpl.java index 7f73e6d1..2f03c5bf 100644 --- a/src/main/java/com/juick/service/UserServiceImpl.java +++ b/src/main/java/com/juick/service/UserServiceImpl.java @@ -71,6 +71,8 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { } } + private final UserMapper userMapper = new UserMapper(); + @Transactional @Override public String getSignUpHashByTelegramID(final Long telegramId, final String username) { @@ -118,7 +120,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { COALESCE(f.fb_id, vk.vk_id, t.tg_id, e.user_id, 0) AS verified, premium FROM users u LEFT JOIN facebook f ON f.user_id = u.id LEFT JOIN vk ON u.id = vk.user_id LEFT JOIN telegram t ON u.id = t.user_id - LEFT JOIN emails e ON e.user_id = u.id WHERE u.id = ?""", new UserMapper(), uid); + LEFT JOIN emails e ON e.user_id = u.id WHERE u.id = ?""", userMapper, uid); return list.isEmpty() ? Optional.empty() : Optional.of(list.get(0)); } @@ -133,7 +135,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { FROM users u LEFT JOIN facebook f ON f.user_id = u.id LEFT JOIN vk ON u.id = vk.user_id LEFT JOIN telegram t ON u.id = t.user_id LEFT JOIN emails e ON e.user_id = u.id - WHERE u.nick = ?""", new UserMapper(), username); + WHERE u.nick = ?""", userMapper, username); if (!list.isEmpty()) return list.get(0); } @@ -159,7 +161,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { "LEFT JOIN vk ON u.id = vk.user_id LEFT JOIN telegram t ON u.id = t.user_id " + "LEFT JOIN emails e ON e.user_id = u.id " + "WHERE u.id = (SELECT DISTINCT user_id FROM emails WHERE email = ?)", - new UserMapper(), + userMapper, email); if (!list.isEmpty()) @@ -185,7 +187,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { "LEFT JOIN vk ON u.id = vk.user_id LEFT JOIN telegram t ON u.id = t.user_id " + "LEFT JOIN emails e ON e.user_id = u.id " + "WHERE u.id = (SELECT user_id FROM jids WHERE jid = ?)", - new UserMapper(), + userMapper, jid); if (!list.isEmpty()) @@ -208,7 +210,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { "LEFT JOIN emails e ON e.user_id = u.id " + "WHERE u.nick IN (:unames)", new MapSqlParameterSource("unames", unames), - new UserMapper()); + userMapper); } @Transactional(readOnly = true) @@ -225,7 +227,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { "LEFT JOIN emails e ON e.user_id = u.id " + "WHERE u.id IN (:ids)", new MapSqlParameterSource("ids", uids), - new UserMapper()); + userMapper); } @Transactional(readOnly = true) @@ -260,7 +262,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { "LEFT JOIN vk ON u.id = vk.user_id LEFT JOIN telegram t ON u.id = t.user_id " + "LEFT JOIN emails e ON e.user_id = u.id " + "WHERE logins.hash = ?", - new UserMapper(), + userMapper, hash); if (!list.isEmpty()) { @@ -297,7 +299,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { "LEFT JOIN vk ON u.id = vk.user_id LEFT JOIN telegram t ON u.id = t.user_id " + "LEFT JOIN emails e ON e.user_id = u.id " + "WHERE nick = ?", - new UserMapper(), + userMapper, username); if (!list.isEmpty()) { @@ -747,7 +749,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { LEFT JOIN vk ON u.id = vk.user_id LEFT JOIN telegram t ON u.id = t.user_id LEFT JOIN emails e ON e.user_id = u.id WHERE t.tg_id = ?""", - new UserMapper(), id + userMapper, id ); return list.isEmpty() ? Optional.empty() : Optional.of(list.get(0)); @@ -900,8 +902,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { public boolean canDeleteTelegramUser(User user) { return getEmails(user).size() > 0 || getFbCrossPostStatus(user.getUid()).isConnected() || getVkTokens(user.getUid()) != null; } - private static class TokenMapper implements RowMapper { - + private class TokenMapper implements RowMapper { @Override public ExternalToken mapRow(ResultSet rs, int rowNum) throws SQLException { return new ExternalToken( @@ -913,12 +914,14 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { } } + private final TokenMapper tokenMapper = new TokenMapper(); + @Transactional(readOnly = true) @Override public Collection getToken(final int uid, final String serviceType) { return getJdbcTemplate().query( "SELECT regid, service_type FROM user_services WHERE user_id=? AND service_type=?", - new TokenMapper(), + tokenMapper, uid, serviceType); } @@ -932,7 +935,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { SELECT regid, service_type FROM user_services INNER JOIN users ON (users.id = user_services.user_id) WHERE users.id IN (:ids)""", new MapSqlParameterSource("ids", uids), - new TokenMapper()); + tokenMapper); } @Transactional -- cgit v1.2.3