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";
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:以前通过添加后查询赋值获取到数据库自增生成的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>