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

猿创征文|Mybatis注解完成增删改查操作

目录

  Mybatis的注解开发

mybatis的常用注解

注解完成增删改查操作

新增操作

修改操作

删除操作

查询操作

查询全部操作


  Mybatis的注解开发

mybatis的常用注解

这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。

@Insert:实现新增

@Update:实现更新

@Delete:实现删除

@Select:实现查询

@Result:实现结果集封装

@Results:可以与@Resuit一起使用,封装多个结果集

@One:实现一对一结果集封装

@Many:实现一对多结果集封装

注解完成增删改查操作

在UserMapper接口中

package com_mybatis_ann.mapper;

import com_mybatis_ann.pojo.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface UserMapper {
    @Insert("insert into user values(#{id},#{username},#{password},#{birthday})")
    public void insert(User user);

    @Update("update user set username=#{username},password=#{password} where id=#{id}")
    public void update(User user);

    @Delete("delete from user where id=#{id}")
    public void delete(int id);

    @Select("select * from user where id=#{id}")
    public User findById(int id);

    @Select("select * from user")
    public List<User> findAll();
}

在user类中有

package com_mybatis_table.pojo;

import java.util.Date;
import java.util.List;

public class User {

    private int id;
    private String username;
    private String password;
    private Date birthday;
//get和set方法和toString方法省略
  

}

 sqlMapConfig配置文件中新增

  <mappers>
        <package name="com_mybatis_ann.mapper"></package>
    </mappers>

测试下

新增操作

public class MybatisTest {
    private UserMapper mapper;

//    提前运行,抽取出来
    @Before
    public void before() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        mapper = sqlSession.getMapper(UserMapper.class);
    }


    @Test
    public void testInsert(){
        User user = new User();
        user.setUsername("tom");
        user.setPassword("abc");
        mapper.insert(user);
    }
}

修改操作

    @Test
    public void testUpdate(){
        User user = new User();
        user.setId(2);
        user.setUsername("lucy");
        user.setPassword("123");
        mapper.update(user);
    }

删除操作

    @Test
    public void testDelete(){
        mapper.delete(2);
    }

查询操作

   @Test
    public void testFindById(){
        User user = mapper.findById(3);
        System.out.println(user);
    }

查询全部操作

  @Test
    public void testFindAll(){
        List<User> all = mapper.findAll();
        for (User user : all) {
            System.out.println(user);
        }
    }

相关文章:

  • Code For Better ---- 拥抱TensorFlow 拥抱未来
  • 【SpringBoot】SpringBoot自定义banner,成千上万种可供选择,当然也可以自定义生成哦
  • 物联网面试题之如果有二维数组int arr[3][4]和如果有数组int arr[5]
  • Hadoop和Spark的对比
  • 智能座舱行为识别数据解决方案,助力打造第三空间新体验
  • centos8同步时间安装时间校准服务
  • PHP 图像处理组件:Intervention/image
  • java幼儿园信息管理系统
  • 599. 两个列表的最小索引总和
  • Vcenter6.5扩容存储后无法创建虚机处理方法
  • Docker基础-3.本地镜像发布与容器数据卷
  • C#对象序列化
  • Java常用集合总结
  • C++ string容器
  • 锂电池储能系统建模发展现状及其数据驱动建模初步探讨
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • create-react-app项目添加less配置
  • JS变量作用域
  • leetcode98. Validate Binary Search Tree
  • Lsb图片隐写
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • v-if和v-for连用出现的问题
  • Vue.js-Day01
  • vue中实现单选
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分布式事物理论与实践
  • 分享几个不错的工具
  • 分享一份非常强势的Android面试题
  • 配置 PM2 实现代码自动发布
  • 我这样减少了26.5M Java内存!
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​ssh免密码登录设置及问题总结
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $(selector).each()和$.each()的区别
  • (52)只出现一次的数字III
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (二)PySpark3:SparkSQL编程
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (算法)前K大的和
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)JAVA中的堆栈
  • (转)大型网站的系统架构
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET CLR Hosting 简介
  • .NET Core WebAPI中封装Swagger配置
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net对接阿里云CSB服务
  • .net经典笔试题
  • .net快速开发框架源码分享