aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2023-10-23 10:19:13 +0300
committerGravatar Vitaly Takmazov2023-10-23 10:19:13 +0300
commitf08abdf936c6ebc303f1ade8d7bbc8dbe4c77708 (patch)
tree091cc3e383edf62706b3af8f2a8610a3c27c6677 /src/main/java
parent36279101e3903126619e658a53c946cbe8bfc808 (diff)
jdbc: row mapper usage refactoring
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/juick/service/MessagesServiceImpl.java6
-rw-r--r--src/main/java/com/juick/service/TagServiceImpl.java15
-rw-r--r--src/main/java/com/juick/service/UserServiceImpl.java29
3 files changed, 30 insertions, 20 deletions
diff --git a/src/main/java/com/juick/service/MessagesServiceImpl.java b/src/main/java/com/juick/service/MessagesServiceImpl.java
index fc190c97..8b729c60 100644
--- a/src/main/java/com/juick/service/MessagesServiceImpl.java
+++ b/src/main/java/com/juick/service/MessagesServiceImpl.java
@@ -127,6 +127,8 @@ public class MessagesServiceImpl extends BaseJdbcService implements MessagesServ
}
}
+ private final MessageMapper messageMapper = new MessageMapper();
+
/**
* @see <a href=
* "https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-type-conversions.html">Java,
@@ -817,7 +819,7 @@ public class MessagesServiceImpl extends BaseJdbcService implements MessagesServ
subscr_messages.last_read_rid, users.premium""";
List<Message> msgs = getNamedParameterJdbcTemplate().query(query,
new MapSqlParameterSource("ids", mids)
- .addValue("uid", uid), new MessageMapper());
+ .addValue("uid", uid), messageMapper);
Map<Integer, Set<Reaction>> likes = updateReactionsFor(mids);
msgs.forEach(i -> i.setReactions(likes.get(i.getMid())));
msgs.sort(Comparator.comparing(item -> mids.indexOf(item.getMid())));
@@ -887,7 +889,7 @@ public class MessagesServiceImpl extends BaseJdbcService implements MessagesServ
.addValue("mid", mid)
.addValue("uid", user.getUid())
.addValue("now", toDateTime(Instant.now().atOffset(ZoneOffset.UTC)), dateTimeType()),
- new MessageMapper());
+ messageMapper);
replies.forEach(i -> {
i.setEntities(MessageUtils.getEntities(i));
i.getUser().setAvatar(webApp.getAvatarUrl(i.getUser()));
diff --git a/src/main/java/com/juick/service/TagServiceImpl.java b/src/main/java/com/juick/service/TagServiceImpl.java
index 9b8b4d95..c9384f6a 100644
--- a/src/main/java/com/juick/service/TagServiceImpl.java
+++ b/src/main/java/com/juick/service/TagServiceImpl.java
@@ -62,6 +62,9 @@ public class TagServiceImpl extends BaseJdbcService implements TagService {
return tag;
}
}
+
+ private final TagMapper tagMapper = new TagMapper();
+
@Override
public Tag getTag(int tid) {
return getTag(0, tid);
@@ -78,7 +81,7 @@ public class TagServiceImpl extends BaseJdbcService implements TagService {
new MapSqlParameterSource()
.addValue("userId", userId)
.addValue("tagId", tid),
- new TagMapper());
+ tagMapper);
return list.isEmpty() ? null : list.get(0);
}
@@ -102,7 +105,7 @@ public class TagServiceImpl extends BaseJdbcService implements TagService {
new MapSqlParameterSource()
.addValue("userId", userId)
.addValue("tagName", tagName),
- new TagMapper());
+ tagMapper);
Tag ret = list.isEmpty() ? null : list.get(0);
@@ -144,7 +147,7 @@ public class TagServiceImpl extends BaseJdbcService implements TagService {
: holder.getKey().intValue();
}
- private static class TagStatsMapper implements RowMapper<TagStats> {
+ private class TagStatsMapper implements RowMapper<TagStats> {
@Override
public TagStats mapRow(ResultSet rs, int rowNum) throws SQLException {
@@ -156,6 +159,8 @@ public class TagServiceImpl extends BaseJdbcService implements TagService {
}
}
+ private final TagStatsMapper tagStatsMapper = new TagStatsMapper();
+
@Transactional(readOnly = true)
@Override
public List<TagStats> getUserTagStats(final int uid) {
@@ -164,7 +169,7 @@ public class TagServiceImpl extends BaseJdbcService implements TagService {
"FROM (messages INNER JOIN messages_tags ON (messages.user_id=? " +
"AND messages.message_id=messages_tags.message_id)) " +
"INNER JOIN tags ON messages_tags.tag_id=tags.tag_id GROUP BY tags.tag_id, tags.name ORDER BY tags.name ASC",
- new TagStatsMapper(),
+ tagStatsMapper,
uid);
}
@@ -202,7 +207,7 @@ public class TagServiceImpl extends BaseJdbcService implements TagService {
return getNamedParameterJdbcTemplate()
.query(sql, new MapSqlParameterSource()
.addValue("ts", toDateTime(ts.atOffset(ZoneOffset.UTC)), dateTimeType()),
- new TagStatsMapper());
+ tagStatsMapper);
}
@Transactional
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<ExternalToken> {
-
+ private class TokenMapper implements RowMapper<ExternalToken> {
@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<ExternalToken> 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