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


相关文章
|
2月前
|
SQL XML Java
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
91 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
2月前
|
Java 关系型数据库 数据库连接
mybatis-plus学习
MyBatis-Plus ,MyBatis 最佳搭档,只做增强不做改变,为简化开发、提高效率而生。
47 5
|
3月前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
48 1
|
3月前
|
Java 数据库连接 mybatis
后端框架的学习----mybatis框架(9、多对一处理和一对多处理)
这篇文章介绍了在MyBatis框架中如何处理多对一和一对多的关联查询,通过定义`<resultMap>`和使用`<association>`与`<collection>`元素来实现对象间的关联映射。
|
3月前
|
Java 数据库连接 测试技术
后端框架的学习----mybatis框架(8、lombok)
这篇文章介绍了如何在MyBatis框架中使用lombok库来简化Java实体类的编写,包括在IDEA中安装Lombok插件、在项目中导入lombok依赖以及在实体类上使用Lombok提供的注解。
|
3月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
4月前
|
Java 数据库连接 数据库
mybatis plus 中增删改查及Wrapper的使用
mybatis plus 中增删改查及Wrapper的使用
217 3
|
3月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
344 0
下一篇
无影云桌面