mybatis从入门到精通(二) 增删查改

mybatis从入门到精通(二) 增删查改

一丶前言

  "增删查改"是后台开发的常用操作, 因此, 学习mybatis或者其他orm框架有必要统一学习一下"增删查改".

二丶准备开发环境

  使用"mybatis从入门到精通(一) 入门"准备的开发环境

三丶查 -- <select/>

  UserMapper.java

    User selectUser(@Param("userId") int userId);

  UserMapper.xml

    <select id="selectUser" resultMap="UserMap">
        select * from user where user_id = #{userId}
    </select>

  MybatisTests.java

    @Test
    public void selectTest(){
        // 查询
        User user=userMapper.selectUser(1);
        sqlSession.commit();

        System.out.println("name: "+user.getUserName()+", age: "+user.getAge());

        Assert.assertEquals(new Integer(1), user.getUserId());
    }

四丶增 -- <insert/>

  UserMapper.java

    void insertUser(@Param("user") User user);

  UserMapper.xml

    <insert id="insertUser">
        insert into user(user_id, user_name, age, country) values (#{user.userId}, #{user.userName}, #{user.age}, #{user.country})
    </insert>

  MybatisTests.java

    @Test
    public void insertTest(){
        // 插入
        User user=createTestUser();
        userMapper.insertUser(user);

        sqlSession.commit();  // 需要提交, 数据库才会有数据

        User user_=userMapper.selectUser(9);
        Assert.assertEquals(true, user_!=null);
        Assert.assertEquals(new Integer(9), user_.getUserId());
        System.out.println(user_.getUserName());
    }

五丶改 -- <update/>

  UserMapper.java

    void updateUserNameById(@Param("userId") int userId, @Param("userName") String userName);

  

  UserMapper.xml

    <update id="updateUserNameById">
        update user set user_name=#{userName} where user_id=#{userId}
    </update>

  MybatisTests.java

    @Test
    public void updateTest(){
        User user=userMapper.selectUser(9);
        if(user==null){
            user=createTestUser();
            userMapper.insertUser(user);

            sqlSession.commit();  // 需要提交, 数据库才会有数据
        }

        //修改
        userMapper.updateUserNameById(9, "update_name");
        sqlSession.commit();

        User user_=userMapper.selectUser(9);
        Assert.assertEquals("update_name", user_.getUserName());
    }

六丶删 -- <delete/>

  UserMapper.java

    void deleteUserById(@Param("userId") int userId);

  UserMapper.xml

    <update id="deleteUserById">
        delete  from  user where user_id=#{userId}
    </update>

  MybatisTests.java

    @Test
    public void deleteTest(){
        User user=userMapper.selectUser(9);
        if(user==null){
            user=createTestUser();
            userMapper.insertUser(user);

            sqlSession.commit();  // 需要提交, 数据库才会有数据
        }

        //删除
        userMapper.deleteUserById(9);
        sqlSession.commit();

        User user_=userMapper.selectUser(9);
        Assert.assertEquals(null, user_);
    }

  完整源码, 点此查看

学习资料:

  mybatis官方文档

原文地址:https://www.cnblogs.com/timfruit/p/11161570.html

时间: 2024-10-11 13:59:27

mybatis从入门到精通(二) 增删查改的相关文章

mybatis实现的对数据的增删查改

mybatis实现的对数据的增删查改 前期准备 新建java工程或java wweb工程, 需要导入以下的包, 基本工作已经完成,接下来开始进入正题. 新建实体类 新建与数据库表对应的实体类 package com.edu.hpu.domain; /** * @author Administrator *user表所对应的实体类 */ public class User { //实体类的属性和表的字段名称一一对应 private int id; private String name; priv

2.MyBatis对数据库单表的增删查改

转自: http://www.cnblogs.com/xdp-gacl/p/4262895.html 一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0/

MyBatis从入门到精通(十二):使用collection标签实现嵌套查询

最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用collection标签实现嵌套查询的方法. 1. 需求升级 在上篇博客中,我们实现了需求:根据用户id查询用户信息的同时获取用户拥有的角色. 因为角色可以拥有多个权限,所以本篇博客我们升级需求为:根据用户id查询用户信息的同时获取用户拥有的角色以及角色包含的权限. 2. 实现方式 因为我们需要使用到权限表的映射,所以我们需要

MongoDB入门学习(三):MongoDB的增删查改

对于我们这种菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改. 因为MongoDB存储数据都是以文档的模式,所以在操作它的数据时,也是以文档为单位的.那么我们实现增删查改也是以文档为基础,不知道文档是什么的同学可以看看上篇介绍的基本概念. 1.插入文档 向MongoDB集合中插入文档的基本方法是insert: 单个插入 > document = {key : value} > db.collecti

MyBatis从入门到精通(一):MyBatis入门

最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. MyBatis简介 ? 2001年,Clinton Begin发起了一个名为iBATIS的开源项目,最初侧重于密码软件的研发,后来发展成为一款基于Java的持久层框架. ? 2004年,Clinton将iBATIS的名字和源码捐赠给了Apache软件基金会. ? 2010年,核心开发团队决定离开Apache软件基金会,并且将iBATIS改名

mybatis从入门到精通(三) 结果映射

mybatis从入门到精通(三) 结果映射 一丶什么是结果映射 结果映射是用于将数据库表字段和实体类中的属性名映射起来, 即究竟是哪个字段名与属性名对应. 映射之后, 即可通过mybatis将从数据库查询的结果转换成对应的实体类对象类型, 除去了人工转换的麻烦. 二丶自动映射 所谓的自动映射, 即是默认java实体类的属性名是驼峰式, 而数据库表字段名是以下划线分隔, 如 属性名userName 与 表字段user_name相对应, 如果是这种简单通用的规则, 即可通过配置mybatis, 使得

mybatis从入门到精通(四) 动态SQL

mybatis从入门到精通(四) 动态SQL 一丶简介 Mybatis的强大特性之一是动态SQL, 它可以动态拼接sql语句, 减轻开发的工作量. Mybatis的动态sql标签如下4种类型 1. if 2. choose (when, otherwise) 3. trim (where, set) 4. foreach 二丶<if/> <if/>标签相当于java语言中的if语句, 通过判断是否符合预置条件来拼接sql语句.其中判断条件可以使用ongl表达式, 如e.method

mybatis从入门到精通(五) sqlSession API的使用

mybatis从入门到精通(五) sqlSession API的使用  一丶简介 SqlSession类似于mybatis对外的接口层, 它几乎囊括了所有对外的api, 因此, 学习SqlSession的使用方法对于了解mybatis还是有必要的. 对应官方文档 二丶配置SqlSession的环境<environment/> <environment/> 主要包括了两种配置, 事务管理和数据源. 这里的配置仅仅是用于学习, 实际应用一般是将事务交由Spring容器管理, 数据源一般

iOS开发-UI 从入门到精通(二)

iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI开发我们需要手动管理内存,所以我们要把ARC关掉(Xcode关掉ARC的步骤): (1)打开Xcode选中当前工程: (2)选中Build Settings: (3)在输入框内输入count: (4)选择Objective-C Automatic Reference Counting  将其设置为