Mybatis实现CRUD

本文详细介绍了如何使用Mybatis进行用户CRUD操作,包括根据ID查询、新增、修改和删除,同时强调了namespace和包名对应的重要性,并展示了事务提交的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、沿用上一篇博客“编写一个Mybatis程序”的项目

二、namespace

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

三、根据ID查询用户

3.1、UserDao接口

//根据ID查询用户
    User getUserById(int id);

3.2、UserMapper.xml

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

3.3、UserDaoTest测试类

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

四、增加用户

4.1、UserDao接口

//增加一个用户
    int addUser(User user);

4.2、UserMapper.xml

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

4.3、UserDaoTest测试类

    //增删改需要提交事务
    @Test
    public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.addUser(new User(4, "杨过", "124567"));
        System.out.println("成功插入:" + i + "条数据");
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

五、修改用户

5.1、UserDao接口

    //修改用户
    int updateUser(User user);

5.2、UserMapper.xml

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

5.3、UserDaoTest测试类

    @Test
    public void updateUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.updateUser(new User(4, "黄桃", "133455"));
        System.out.println("成功修改:" + i + "条数据");
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

六、删除用户

6.1、UserDao接口

    //删除用户
    int deleteUser(int id);

6.2、UserMapper.xml

    <delete id="deleteUser" parameterType="int">
        delete from mybatis.user where id = #{id};
    </delete>

6.3、UserDaoTest测试类

    @Test
    public void deleteUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.deleteUser(4);
        System.out.println("成功删除:" + i + "条数据");
        sqlSession.commit();
        sqlSession.close();
    }

七、总体代码

7.1、UserDao接口

package com.massimo.dao;

import com.massimo.pojo.User;

import java.util.List;

public interface UserDao {
    //查询全部用户
    List<User> getUserList();

    //根据ID查询用户
    User getUserById(int id);

    //增加一个用户
    int addUser(User user);

    //修改用户
    int updateUser(User user);

    //删除用户
    int deleteUser(int id);
}

7.2、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="com.massimo.dao.UserDao">
    <select id="getUserList" resultType="com.massimo.pojo.User">
        select * from mybatis.user
    </select>

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


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

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


    <delete id="deleteUser" parameterType="int">
        delete from mybatis.user where id = #{id};
    </delete>
</mapper>

7.3、UserDaoTest测试类

package com.massimo.dao;

        import com.massimo.pojo.User;
        import com.massimo.utils.MybatisUtils;
        import org.apache.ibatis.session.SqlSession;
        import org.junit.Test;

        import java.util.List;

public class UserDaoTest {
    @Test
    public void test(){
        //第一步:获得sqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        List<User> userList = mapper.getUserList();

        for (User user : userList) {
            System.out.println(user);
        }
        //关闭sqlSession
        sqlSession.close();
    }

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

    //增删改需要提交事务
    @Test
    public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.addUser(new User(4, "杨过", "124567"));
        System.out.println("成功插入:" + i + "条数据");
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void updateUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDaomapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.updateUser(new User(4, "黄桃", "133455"));
        System.out.println("成功修改:" + i + "条数据");
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void deleteUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.deleteUser(4);
        System.out.println("成功删除:" + i + "条数据");
        sqlSession.commit();
        sqlSession.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值