首页 > 其他分享 >Mybatis 05 注解实现增删改查

Mybatis 05 注解实现增删改查

时间:2023-09-20 11:38:44浏览次数:43  
标签:mapper sqlSessionFactory 05 改查 UserMapper sqlSession user Mybatis import

UserMapper
public interface UserMapper {
    /*注解实现增删改查*/
    @Select("select * from tb_user")
    List<User> selectAll2();
    @Insert("insert into tb_user values(null,#{username},#{password},#{gender},#{addr})")
    void insert(User user);
    @Update("update tb_user set username=#{username},password=#{password},gender=#{gender},addr=#{addr} where id=#{id}")
    void updateUser(User user);
    @Delete("delete from tb_user where id=#{id}")
    void delete(int id);
}
test
import com.entity.Brand;
import com.entity.User;
import com.mapper.BrandMapper;
import com.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class TestUser {
/*注解实现增删改查*/
    @Test
    public void testSelectAll2() throws IOException {
        //1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2. 获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3. 执行sql
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> list = mapper.selectAll2();
        System.out.println(list);
        //4. 释放资源
        sqlSession.close();
    }

    @Test
    public void testInsert() throws IOException {
        //1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User(null,"王王","123","男","赣州");
        mapper.insert(user);
        sqlSession.close();
    }

    @Test
    public void testUpdate() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User(4,"王维","123","男","赣州");
        mapper.updateUser(user);
        sqlSession.close();
    }
    @Test
    public void testDelete() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.delete(4);
        sqlSession.close();
    }

}

标签:mapper,sqlSessionFactory,05,改查,UserMapper,sqlSession,user,Mybatis,import
From: https://www.cnblogs.com/oyww-2027/p/17716869.html

相关文章

  • Mybatis 04 一对一,一对多,多对多关联映射
    一对一一个员工对应一个部门实体类emppackagecom.entity;importjava.io.Serializable;importjava.math.BigDecimal;publicclassEmpVoimplementsSerializable{privateIntegerempno;privateStringename;privateStringjob;privateInte......
  • MyBatis中#和$的区别
    MyBatis中#{}和${}的用法说一下为什么要写这篇文章,最近面试有被问到,一下子想不出来有啥区别,想记录一下加深自己的理解,同时自己也经常用MyBatis-Plus忽略了XML文件的编写和使用,所以需要加深一下这块的知识一、例子1、#{}将传入的数据当作一个字符串,会对传入的数据加上一个双......
  • 第05章-自定义函数和JSON数据解析
    目录5.1实现自定义UDF25.2实现自定义UDTF35.3实现自定义UDAF45.4解析JSON数据65.4.1解析OBJECT数据65.4.2解析ARRAY数据75.4.3禁止使用get_json_object函数8第05章自定义函数和JSON数据解析自定义函数简介有一些sql很难处理的逻辑,我们可以使用自定义函数去处理。比......
  • 小夜灯CB证书CE证书LVD证书EMC证书FCC证书EN60598-2-12
    小夜灯检测报告找我办理。小夜灯GB7000.212报告,小夜灯IEC60598-2-12报告小夜灯EN60598-2-12报告小夜灯CE证书小夜灯FCC证书小夜灯ROHS证书小夜灯REACH证书小夜灯EN62471报告小夜灯SAA证书小夜灯CB证书小夜灯TUV证书小夜灯COC证书小夜灯LVD证书小夜灯EMC证书小夜灯I......
  • 05访问控制:如何选取一个合适的数据保护方案?
    身份认证的核心问题是身份管理,因此我们可以采用单点登录的形式,来解决复杂的身份管理问题。常用的单点登录方式包括CAS流程、JWT、OAuth和OpenID。通过身份认证,我们只能够确认用户的身份,而对用户的操作和访问行为的把控,就是授权和审计的任务了。“授权”和“访问控制”其实是同一......
  • MyBatis
    MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQLMaps和DataAc......
  • mybatis
    MyBatis简介(了解)什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需......
  • Mybatis-Plus常见操作
    packagecom.ideas.system.service.impl;importcom.alibaba.fastjson.JSON;importcom.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;importcom.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;importcom.baomidou.mybatisplus......
  • 题解 AGC058B 【Adjacent Chmax】
    postedon2022-08-1500:08:56|under题解|sourceproblem一个长为\(n\)的排列\(P\),每次可以选择一个\(i\),令\(v=\max(P_i,P_{i+1})\),使\(P_i=P_{i+1}=v\),求若干次操作后有多少种不同的序列。\(1\leqn\leq5000\)。solution显然地,对于一个\(P_i\),它要么被完全覆盖......
  • P1056 NOIP2008 普及组 排座椅
    \(P1056\)[\(NOIP2008\)普及组]排座椅题解先想一下算法:因为题目里出现了最优解,最好的方案关键字,所以一定会用贪心。然后从题目给的样例解释可以看到:如果相邻的两行有许多组说话的同学,那么在这两行中间加一条过道是非常划算的;同理,列也是如此。恍然大悟,只要找出划分哪些......