Java判断用户重复点赞

概述

在Web应用程序中,点赞是一种常见的社交功能。当一个用户点赞一个帖子或评论时,我们需要判断该用户是否已经点过赞。本文将介绍如何使用Java编写代码来判断用户是否重复点赞,并提供代码示例。

问题分析

当用户点赞后,我们需要将用户的点赞记录保存到数据库或缓存中。为了判断用户是否已经点过赞,我们可以查询数据库或缓存来查找用户的点赞记录。如果找到了用户的点赞记录,则表示用户已经点过赞,否则表示用户尚未点赞。

数据库设计

首先,我们需要设计一个数据库表来保存用户的点赞记录。假设我们的表名为likes,包含以下字段:

字段名 类型 说明
id int 点赞记录的唯一标识
user_id int 用户的唯一标识
target_id int 被点赞对象的唯一标识(例如帖子或评论的ID)

判断用户是否重复点赞的代码

下面是一个示例的Java代码,用于判断用户是否重复点赞:

import java.sql.*;

public class LikeChecker {
    private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
    private static final String USER = "root";
    private static final String PASSWORD = "password";

    public static boolean hasLiked(int userId, int targetId) {
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        boolean result = false;

        try {
            Class.forName(JDBC_DRIVER);
            conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
            String sql = "SELECT * FROM likes WHERE user_id = ? AND target_id = ?";
            stmt = conn.prepareStatement(sql);
            stmt.setInt(1, userId);
            stmt.setInt(2, targetId);
            rs = stmt.executeQuery();
            result = rs.next();
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (stmt != null) {
                    stmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        return result;
    }
}

上述代码中,我们使用java.sql包提供的API来连接数据库,并执行一条带有参数的SQL查询语句。如果查询结果集中存在记录,则表示用户已经点过赞。否则,表示用户尚未点赞。

使用示例

以下是一个示例代码,展示了如何使用上述的LikeChecker类来判断用户是否重复点赞:

public class Main {
    public static void main(String[] args) {
        int userId = 1; // 用户ID
        int targetId = 1001; // 被点赞对象的ID

        boolean hasLiked = LikeChecker.hasLiked(userId, targetId);
        if (hasLiked) {
            System.out.println("用户已经点过赞");
        } else {
            System.out.println("用户尚未点赞");
        }
    }
}

总结

本文介绍了如何使用Java编写代码来判断用户是否重复点赞。我们设计了一个数据库表来保存用户的点赞记录,并使用Java的数据库API来执行查询操作。通过判断查询结果集中是否存在记录,我们可以判断用户是否已经点过赞。以上就是这个问题的解决方案,希望对你有所帮助。

参考资料

  • [Java Database Connectivity (JDBC)](
  • [MySQL Connector/J](