Mybatis 需要注意的问题

来源:互联网 发布:淘宝伴侣下载 编辑:程序博客网 时间:2024/06/03 11:08

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();
    }
    
}

}

0 0