mybatis:Invalid bound statement (not found)
当出现mybatis 出现这个错误时需要注意
使用了接口编程方式
实体类User
配置文件UserMapper.xml
接口文件UserMapper.java
public interface UserMapper {
public User selectUserById(int id);
}
注意在配置文件中
<mapper namespace="db.UserMapper">
<select id="selectUserById" parameterType="int" resultType="entity.User">
select * from user where id = #{id}
</select>
</mapper>
namespace 要与接口文件UserMapper.java保持一致
select元素中的id要与 UserMapper.java中的方法名保持一致
mybatis 增删改查
UserMapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="db.UserMapper">
<resultMap type="entity.User" id="resultListUser">
<id column="id" property="id"/>
<result column="userName" property="userName"/>
<result column="userAge" property="userAge"/>
<result column="userAddress" property="userAddress"/>
</resultMap>
<select id="selectUserById" parameterType="int" resultType="entity.User">
select id,userName,userAge,userAddress from user where id=#{id}
</select>
<select id="selectUsers" parameterType="string" resultMap="resultListUser">
select * from user where userName like #{userName}
</select>
<!-- useGeneratedKeys 设置为true表明要mybatis获取有数据库自动生成的主键,
keyProperty="id"指定把获取的主键注入到User的id属性
-->
<insert id="addUser" parameterType="entity.User" useGeneratedKeys="true" keyProperty="id">
insert into user(userName,userAge,userAddress) values(#{userName},#{userAge},#{userAddress})
</insert>
<update id="updateUser" parameterType="entity.User">
update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
</mapper>
UserMapper.java
package db;
import java.util.List;
import entity.User;
public interface UserMapper {
public User selectUserById(int id);
public List<User> selectUsers(String userName);
public void addUser(User user);
public void updateUser(User user);
public void deleteUser(int id);
}
增删改查类
public class TestAddupdatedelete{
public void findlist(){
SqlSession session= SqlSessionHelper.getSessionFactory().openSession();
try{
UserMapper userMapper = session.getMapper(UserMapper.class);
List<User> users = userMapper.selectUsers("%");
for(User user:users){
System.out.println(user.getUserAddress()+" "+user.getUserName());
}
}finally{
session.clearCache();
session.close();
}
}
public void addUser(User user){
if(user ==null){
user = new User();
user.setUserAddress("武林广场");
user.setUserAge("80");
user.setUserName("青鸟");
}
SqlSession session = SqlSessionHelper.getSessionFactory().openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
userMapper.addUser(user);
session.commit();
System.out.println("当前增加的用户id为"+user.getId());
try{
}finally{
if(session != null)
session.close();
}
}
public void update(){
SqlSession session = SqlSessionHelper.getSessionFactory().openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
try{
User user = userMapper.selectUserById(4);
user.setUserAddress("上海市青浦区");
userMapper.updateUser(user);
session.commit();
}finally{
session.close();
}
}
public void delete(){
SqlSession session = SqlSessionHelper.getSessionFactory().openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
try{
userMapper.deleteUser(4);
session.commit();
}finally{
session.close();
}
}
}