那我如果不需要当前登录的用户,也就是userId对应的用户怎么办?
时间: 2024-04-18 12:33:34 浏览: 11
如果不需要查询当前登录的用户,可以通过在WHERE子句中添加条件来排除该用户。修改后的代码如下:
```java
@Select("SELECT DISTINCT u.* FROM user_inf u JOIN addfriend_inf af ON (u.user_id = af.my_id OR u.user_id = af.friend_id) WHERE ((af.my_id = #{userId} AND u.user_id != #{userId}) OR (af.friend_id = #{userId} AND u.user_id != #{userId})) AND af.apply_state = 2")
List<User> selectFriendsByUserId(@Param("userId") int userId);
```
在查询条件中添加了 `u.user_id != #{userId}` 来排除当前登录的用户,确保查询结果不包含当前用户。这样就修复了重复查询和排除当前用户的问题。
相关问题
新增时获取当前登录用户id昨为创建者信息存入数据库,后端该怎么获取
在后端代码中获取当前登录用户的方式取决于您使用的技术栈和身份认证方式。以下是一些常用的方式:
1. 基于Session的身份认证
如果您使用基于Session的身份认证,可以通过获取当前请求的Session对象,从中获取存储的用户id信息。
在Java Servlet中,可以使用`request.getSession()`获取当前请求对应的Session对象,然后使用`session.getAttribute("userId")`获取存储的用户id信息。
在Spring MVC中,可以在Controller中的方法中添加一个参数,使用`@SessionAttribute("userId")`注解来获取存储的用户id信息。
2. 基于Token的身份认证
如果您使用基于Token的身份认证,可以在每次请求中在Header中附带Token信息。后端可以通过解析Token获取当前登录用户的信息。
在Java中,可以使用JWT(JSON Web Token)实现Token认证。具体实现方式可以参考相关的库或框架,例如Spring Security中的JWT支持。
无论使用何种方式,获取到用户id之后,您可以将其作为创建者信息存入数据库中。
前后端分离项目,.net core signalr 根据用户发送指定消息,但是当前系统登录用户接收不到消息,这是什么原因呢
这可能是因为您的系统登录用户没有成功连接到SignalR的Hub。请确保您的前端代码中使用了正确的方法调用来连接SignalR Hub,并且将用户的唯一标识符传递给了Hub。例如,在前端代码中,您可以使用类似于以下代码的方式连接到SignalR Hub:
```javascript
var connection = new signalR.HubConnectionBuilder()
.withUrl("/myHub", { accessTokenFactory: () => authToken })
.build();
connection.start().then(function () {
console.log("SignalR Connected!");
}).catch(function (err) {
console.log(err);
});
```
在此示例中,您可以通过将用户的认证令牌(authToken)传递给Hub来标识连接的用户。
如果您已经正确连接到了SignalR Hub,但仍然无法接收到指定的消息,请确保您的Hub代码正确地将消息发送到指定的用户。您可以在Hub代码中使用类似于以下代码的方式向指定用户发送消息:
```csharp
public async Task SendMessageToUser(string userId, string message)
{
await Clients.User(userId).SendAsync("ReceiveMessage", message);
}
```
在此示例中,您可以将指定用户的唯一标识符(userId)传递给Clients.User()方法,以便将消息发送给该用户。同时,您需要确保您的前端代码中定义了对应的接收消息的处理方法,例如:
```javascript
connection.on("ReceiveMessage", function (message) {
console.log("Received message: " + message);
});
```
如果您仍然无法解决问题,请检查您的代码逻辑、网络连接等方面,以便找出问题所在。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)