mybatis根据登录的id进行条件查询

mybatis根据登录的id进行条件查询,求详细的代码,java web实现

1.定义需要查询的实体类

public class User {

    private int id;       //用户 ID
    private String username;   //用户名
    private String password;   //密码
    private int age;      //年龄
    // getter 和 setter 方法
}
2.编写 mapper.xml 文件

<mapper namespace="com.example.mapper.UserMapper">
    <select id="findUserById" resultMap="userMap">
        SELECT * FROM User WHERE id = #{id}
    </select>
</mapper>
3.编写 UserMapper 接口

public interface UserMapper {

    User findUserById(int id);

}
4.编写 UserMapper.xml 的映射配置

<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="userMap" type="User">
        <id column="id" property="id"/>
        <result column="username" property="username"/>
        <result column="password" property="password"/>
        <result column="age" property="age"/>
    </resultMap>
    <select id="findUserById" resultMap="userMap">
        SELECT * FROM User WHERE id = #{id}
    </select>
</mapper>
5.编写 UserService 接口和 UserServiceImpl 实现类

public interface UserService {

    User findUserById(int id);

}

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    public User findUserById(int id) {
        return userMapper.findUserById(id);
    }
}
6.编写 Controller 类

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/findUserById")
    public String findUserById(int id, Model model) {
        User user = userService.findUserById(id);
        model.addAttribute("user", user);
        return "user";
    }

}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/769866
  • 这篇博客你也可以参考下:Mybatis入门程序-根据id查询数据
  • 除此之外, 这篇博客: mybatis替换JDBC中的 关于添加数据后,java类可以得到他的自增长的id 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    以前通过添加后查询赋值获取到数据库自增生成的id, 需要执行获取生成id的sql语句:

    在mapper中可以使用绑定

    在数据库中存在一个这样的方法

    <!--SELECT LAST_INSERT_ID()  获取最后一次产生的id   必须是在同一次会话-->
    
    <insert id="addUser" parameterType="com.fs.entity.User">
        <!--
              resultType: 结果的数据类型
              keyProperty: 把查询的结果赋值那个属性: 属性名
              keyColumn: 把查询的那一列赋值给属性, 如果只有一列,省略
              order:  指定selectKey中的sql语句执行顺序       
    					AFTER: 在insertsql之后执行   
    					BEFORE  在insertsql之前执行
            -->
        <selectKey resultType="int" keyProperty="id"  order="AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into  tb_user(username,password,sex,brithday,address) values(#{username},#{password},#{sex},#{brithday},#{address})
    </insert>
    
  • 您还可以看一下 汪翠老师的Java零基础到架构师全套课程课程中的 mybatis整合多数据源代码测试小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^