当前位置: 首页 > news >正文

Mybatis持久层框架 | CRUD

在这里插入图片描述

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


CRUD

CRUD是指在做计算处理时的增加(Create)、读取(Read)、更新(Update)和删除(Delete):主要被用在描述软件系统中数据库或者持久层的基本操作功能

环境准备

  • 环境目录

在这里插入图片描述

  • UserMapper接口(对接数据库中的数据)
package com.wei.dao;

import com.wei.pojo.User;

import java.util.List;

public interface UserMapper {

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

  • UserMapper.xnl(Mapper中编写sql语句)
<?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">

<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.wei.dao.UserMapper">
    
<!--select查询语句查询全部用户-->    
    <select id="getUserById" parameterType="int" resultType="com.wei.pojo.User">
        select * from mybatis.user where id = #{id}
    </select>
    
</mapper>
  • UserDaoTest(测试类)
package com.wei.dao;

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

import java.util.List;

public class UserDaoTest {

    @Test
    public void getUserById(){
        //获取执行sql对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        //获得接口UserMapper
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //调用1号用户
        User user = mapper.getUserById(1);
        System.out.println(user);


        //关闭SqlSession,避免造成内存出现问题
        sqlSession.close();
    }
    
}

  • namespace:namespace中的包名要和接口的包名一致
  • id:就是对应的UserMapper接口中的方法名
  • resultType:Sql语句执行的返回值
  • parameterMap:参数类型
<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.wei.dao.UserMapper">
    
<!--select查询语句查询全部用户-->    
    <select id="getUserById" parameterType="int" resultType="com.wei.pojo.User">
        select * from mybatis.user where id = #{id}		// #{id} : 获取UserMapper接口 中 User getUserById(int id); 的id
    </select>
    
</mapper>

Tip:增删改需要提交事物 ( sqlSession.commit(); )

select

  • UserMapper.xnl中的查询语句
<!--select查询语句-->
    <select id="getUserList" resultType="com.wei.pojo.User">
        select * from mybatis.user
    </select>
  • UserMapper接口
//获取全部用户
    List<User> getUserList();
  • UserDaoTest(测试类)
    @Test
    public void test(){
        //获取执行sql对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        //获得接口UserMapper
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        //通过增强for循环遍历数组
        List<User> userList = mapper.getUserList();
        for (User user :userList){
            System.out.println(user);
        }

        //关闭SqlSession,避免造成内存出现问题
        sqlSession.close();
    }

insert

  • UserMapper.xnl中的查询语句
    <!--insert查询语句-->
    <!--User对象中的属性可以直接取-->
    <insert id="addUser" parameterType="com.wei.pojo.User">
        insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd});
    </insert>
  • UserMapper接口
    //插入一个用户inserst
    int addUser(User user);
  • UserDaoTest(测试类)
    //根据id插入数据
    @Test
    public void addUser(){

        //获取执行sql对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        //获得接口UserMapper
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        int qwe = mapper.addUser(new User(5, "qwe", "123456"));
        if (qwe>0){
            System.out.println("插入成功!");
        }
        //提交事物
        sqlSession.commit();

        //关闭SqlSession,避免造成内存出现问题
        sqlSession.close();
    }

update

  • UserMapper.xnl中的查询语句
    <!--更新数据-->
    <update id="updateUser" parameterType="com.wei.pojo.User">
        update mybatis.user set name = #{name},pwd  = #{pwd} where id = #{id};
    </update>
  • UserMapper接口
    //更新数据
    int updateUser(User user);
  • UserDaoTest(测试类)
    @Test
    public void updateUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.updateUser(new User(5, "呵呵", "123"));

        sqlSession.commit();
        sqlSession.close();
    }

delete

  • UserMapper.xnl中的查询语句
    <!--删除用户-->
    <delete id="deleteUser" parameterType="int">
        delete from mybatis.user where id = #{id};
    </delete>
  • UserMapper接口
    //删除用户
    int deleteUser(int id);
  • UserDaoTest(测试类)
    @Test
    public void deleteUser(){

        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.deleteUser(5);

        sqlSession.commit();
        sqlSession.close();

    }

resultType和parameterType 区别

  • resultType :主要针对于从数据库中提取相应的数据出来 如:select
  • parameterType :主要针对于将信息存入到数据库中 如:insert 、update、alter

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝冲冲冲🤞


在这里插入图片描述

相关文章:

  • 内网渗透(八)之基础知识-企业域中计算机分类和专业名
  • Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏
  • 周赛331总结
  • SSM整合知识点记录
  • 设计模式-模板方法模式
  • MySQL数据库01——mysql的安装和配置(包含workbench安装,超详细)
  • 2/4考试总结
  • Ta-Lib源码解析(三):蜡烛图指标 (Candlestick Indicator) #(附Python重构代码和示意图)(补充中)
  • 【嵌入式】MDK使用sct文件将代码段放入RAM中执行
  • 《基于Xilinx的时序分析、约束和收敛》目录与传送门
  • Jackson序列化带有注解的字段的原理浅析
  • 第十届“图灵杯”NEUQ-ACM程序设计竞赛题解(A-I)
  • Linux ALSA 之九:ALSA ASOC Codec Driver
  • 一文读懂JVM类加载机制过程及原理
  • 一文带你入门MyBatis Plus
  • java split()方法 toLowerCase() 方法
  • Ubuntu - command checklist
  • 小程序-模板与配置-WXSS模板样式
  • 小程序-模板与配置-WXML模板语法
  • 群晖NAS安装frp实现内网穿透(非Docker)
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉