Mybatis的CRUD使用详解

一.Mybatis的CRUD使用详解

注意:增删改需要提交事务。

namespace(UserMapper.xml)

namespace中的包名需要和Dao/mapper接口的包名一致。

<!--nameSpace绑定一个对应的Dao接口-->
<mapper namespace="com.zhu.dao.UserMapper">

1.1 select

1.编写接口:

List<User> getUserList();

2.编写对应的mapper对应的sql语句:

选择、查询语句。

<select id="getUserList" resultType="com.zhu.pojo.User">
    select * from mybatis.user;
</select>
  • id:对应的nameSpace中的方法名。

  • resultType:Sql语句的返回值。

  • parameterType:参数类型。

3.测试类:

@Test
public void test(){
    
    
    //测试
    SqlSession sqlSession = Mybatisutils.getSqlSession();
    UserMapper userDao = sqlSession.getMapper(UserMapper.class);
    List<User> userList = userDao.getUserList();
    for (User user : userList) {
    
    
        System.out.println(user);
    }
    sqlSession.close();
}

效果如下:

image-20230326003149778

1.编写接口:

    <select id="getUserById" parameterType="int" resultType="com.zhu.pojo.User">
        select * from mybatis.user where id = #{
    
    id};
    </select>

2.编写对应的mapper对应的sql语句:

更具id查询对应信息:

User getUserById(int id);

3.测试类:

@Test
public void getUserById(){
    
    
    SqlSession sqlSession = Mybatisutils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    User userById = mapper.getUserById(1);
    System.out.println(userById);
    sqlSession.close();
}

效果如下:

image-20230326003214547

1.2 insert

1.编写接口:

int addUser(User user);

2.编写对应的mapper对应的sql语句:

增加:

    <insert id="addUser" parameterType="com.zhu.pojo.User" >
        insert into  mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
    </insert>

3.测试类:

    @Test
    public void addUser(){
    
    
        SqlSession sqlSession = Mybatisutils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        int haha = mapper.addUser(new User(4, "haha", "32423"));
        if (haha>0){
    
    
            System.out.println("插入成功");
        }
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

注意:增删改需要提交事务。

效果如下:

image-20230326003331357

image-20230326003339818

1.3 update

1.编写接口:

int updateUser(User user);

2.编写对应的mapper对应的sql语句:

增加:

    <update id="updateUser" parameterType="com.zhu.pojo.User">
        update mybatis.user set name=#{name},pwd=#{pwd}  where id = #{id};
    </update>

3.测试类:

    @Test
    public void updateUser(){
    
    
        SqlSession sqlSession = Mybatisutils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.updateUser(new User(4,"哈哈","4234"));
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

注意:增删改需要提交事务。

测试截图如下:

image-20230326003433735

1.3 delete

1.编写接口:

int daeleteUser(int id);

2.编写对应的mapper对应的sql语句:

增加:

    <delete id="daeleteUser" parameterType="com.zhu.pojo.User">
        delete from mybatis.user where id=#{id};
    </delete>

3.测试类:

    @Test
    public void deleteUser(){
    
    
        SqlSession sqlSession = Mybatisutils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.daeleteUser(4);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

注意:增删改需要提交事务。

测试截图如下:

image-20230326003516863

二.常见错误

  • 标签不要匹配错
  • resource 绑定 mapper, 需要使用路径!
  • 程序配置文件必须符合规范!
  • NullPointerException, 没有注册到资源!
  • 输出的 xml 文件中存在中文乱码问题!
  • maven 资源没有导出问题!

猜你喜欢

转载自blog.csdn.net/weixin_52908342/article/details/129774853