Mybatis学习(二):实现增删改查

简介: 上篇博客部署了我的第一个Mybatis项目,并且成功查询了表中的所有数据,增删改的操作其实和查询大同小异。

上篇博客部署了我的第一个Mybatis项目,并且成功查询了表中的所有数据,增删改的操作其实和查询大同小异。


1、在接口中定义相关的方法

package demo.dao;
import demo.pojo.User;
import java.util.List;
import java.util.Map;
public interface UserMapper {
    //查询所有用户
    List<User> getUserList();
    //根据id查询用户
    User getUserById(int id);
    //插入一个用户
    int insertUser(User user);
//    int insertUser2(Map<String,Object> map);
    //根据id修改用户
    int updateUser(User user);
    //根据删除一个用户
    int deleteUser(int id);
}


2、在对应xml文件中实现

20210825103202715.png

<?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="demo.dao.UserMapper">
<!--    select all users-->
    <select id="getUserList" resultType="demo.pojo.User">
        select * from user
    </select>
<!--    select one user by its id-->
    <select id="getUserById" parameterType="int" resultType="demo.pojo.User" >
        select * from user where id=#{id}
    </select>
<!--    insert a user-->
    <insert id="insertUser" parameterType="demo.pojo.User">
        insert into user (username,sex,address) value (#{username},#{sex},#{address})
    </insert>
<!--    <insert id="insertUser2" parameterType="map">-->
<!--        insert into user (username,sex,address) value (#{username},#{sex},#{address})-->
<!--    </insert>-->
<!--    update a user by its id-->
    <update id="updateUser" parameterType="demo.pojo.User">
        update user set username=#{username},sex=#{sex},address=#{address} where id=#{id}
    </update>
<!--    delete a user by its id-->
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{id}
    </delete>
</mapper>


namespace对应要操作的接口名,id对应要实现的方法名,parameterType为传入的参数类型,resultType为返回的结果类型


3、可以写一个测试类测试了

package demo.dao;
import demo.pojo.User;
import demo.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 = null;
        try{
            sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> userList = mapper.getUserList();
            System.out.println(userList);
        }catch (Exception e){
            e.printStackTrace();
        } finally {
            sqlSession.close();
        }
    }
    /**
     * 测试 根据id查询用户
     */
    @Test
    public void test2(){
        SqlSession sqlSession = null;
        try{
        sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.getUserById(45);
        System.out.println(user);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sqlSession.close();
        }
    }
    /**
     * 测试 插入一个用户
     * 增删改需要提交事务
     */
    @Test
    public void test3(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User();
        user.setUsername("王老五");
        user.setAddress("深圳");
        user.setSex("男");
        int result = mapper.insertUser(user);
        //提交事务
        sqlSession.commit();
        System.out.println(result);
        sqlSession.close();
    }
    /**
     * 测试 根据id修改用户
     */
    @Test
    public void test4(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int result = mapper.updateUser(new User(48, "李老六", "", "男", "广州"));
        sqlSession.commit();
        System.out.println(result);
        sqlSession.close();
    }
    /**
     * 测试 根据id删除用户
     */
    @Test
    public void test5(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int result = mapper.deleteUser(43);
        System.out.println(result);
        sqlSession.commit();
        sqlSession.close();
    }
}


相关文章
|
4月前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
|
3月前
|
SQL 存储 Java
基于MyBatis的增删改查操作
基于MyBatis的增删改查操作
31 1
|
3月前
|
SQL 存储 Java
基于MyBatis的增删改查的基础操作
基于MyBatis的增删改查的基础操作
26 0
|
19天前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
26 1
|
2月前
|
Java 数据库连接 数据库
mybatis plus 中增删改查及Wrapper的使用
mybatis plus 中增删改查及Wrapper的使用
59 3
|
1月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
157 0
|
1月前
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(7、使用注解开发)
这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。
|
3月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
56 2
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法
|
4月前
|
SQL Java 数据库连接
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射