一、CRUD

1、namespace

namespace中的包名和 Dao/Mapper 接口中的包名一致

2、select

选择查询语句;

  • id:就是对应的namespace中的方法名;
  • resultType:sql执行语句的返回值;
  • parameterType:参数类型

1、编写接口

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

2.编写对应mapper中的sql执行语句

<select id="getUserById" parameterType="int" resultType="com.oykq.pojo.User">select * from mybatis.user where id = #{id};
</select>

3.测试

    @Testpublic void getUserById(){SqlSession sqlSession = MybatisUtil.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = mapper.getUserById(101);System.out.println(user);sqlSession.close();}
//输出结果
User{id=101, name='oykq', pwd='666'}

3、insert

插入语句

  • id:就是对应的namespace中的方法名;
  • parameterType:参数类型

1、编写接口

//插入一个用户信息
int addUser(User user);

2. 编写对应mapper中的sql执行语句

<!-- 对象中的属性可以直接取出来 -->
<insert id="addUser" parameterType="com.oykq.pojo.User">insert into mybatis.user (id, name, pwd) values (#{id}, #{name}, #{pwd});
</insert>

3.测试

//增删改需要提交事务
@Test
public void addUser(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = new User(4, "王五", "1324214");int result = mapper.addUser(user);if (result > 0){System.out.println("插入成功!");}//提交事务sqlSession.commit();sqlSession.close();
}

4、update

更新语句

  • id:就是对应的namespace中的方法名;
  • parameterType:参数类型

1、编写接口

//修改用户
int updateUser(User user);

2、编写对应mapper中的sql执行语句

<update id="updateUser" parameterType="com.oykq.pojo.User">update mybatis.user set name = #{name}, pwd = #{pwd} where id = #{id};
</update>

3、测试

    @Testpublic void updateUser(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = new User(5, "王五", "7777");int res =mapper.updateUser(user);if (res > 0){System.out.println("修改成功!");}sqlSession.commit();sqlSession.close();}

5、delete

删除语句

  • id:就是对应的namespace中的方法名;
  • parameterType:参数类型

1、编写接口

//删除用户
int deleteUser(int id);

2、编写对应mapper中的sql执行语句

<delete id="deleteUser" parameterType="int">delete from mybatis.user where id = #{id};
</delete>

3、测试

    @Testpublic void deleteUser(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);mapper.deleteUser(7);System.out.println("删除成功");sqlSession.commit();sqlSession.close();}

注意点:

  • 增删改需要提交事务

6、分析错误

7、万能Map

//万能的Map
int addUser1(Map<String, Object> map);
<!-- 对象中的属性可以直接取出来    传递Map中的key -->
<insert id="addUser1" parameterType="Map">insert into mybatis.user (id, name, pwd) values (#{userid}, #{username}, #{password});
</insert>
@Test
public void addUser1(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);Map<String, Object> map = new HashMap<>();map.put("userid", 5);map.put("username", "赵六");map.put("password", "144324324");mapper.addUser1(map);sqlSession.close();
}

Map传递参数,直接在sql中取出key即可【parameterType=“Map”】
对象传递参数,直接在sql中取对象的属性即可【parameterType=“Object”】
只有一个基本类型参数的情况下,可以直接在sql中取到,不需要parameterType的设置
多个参数用Map,或者注解

8、思考题

模糊查询怎么写?
1、Java代码执行的时候,传递通配符 % %

List<User> list = mapper.getUserLike("%李%");

2、在sql拼接中使用通配符

select * from mybatis.user where name like "%" #{value} "%";

Mybatis——增删改查CLUD相关推荐

  1. Mybatis——增删改查(CRUD)操作

    java学习--Mybatis CRUD操作 mybatis是一个可以自定义SQL.存储过程和高级映射的持久层框架.上面这个定义是在百度上抄的,简单来说,Mybatis简化了我们对数据库的一系列操作, ...

  2. SSM框架——Mybatis增删改查

    目录 目录 环境配置 增删改查的实现 查询全部 查询单个ID 添加用户 修改用户 删除用户 增删改查-使用注解开发 思路流程:搭建环境-->导入Mybatis--->编写代码---> ...

  3. Mybatis增删改查

    增删改查基本上就是一个操作,一模一样的,首先是UserMpper接口: package com.ftz.Demo.dao;import com.ftz.Demo.po.User;import java ...

  4. Mybatis 详细的创建流程及创建第一个Mybatis增删改查程序 CRUD

    1.idea新建Maven项目Mybatis-study 将项目里的src文件夹删掉 依次将此项目作为父项目 2.在Mybatis-study中新建模块mybatis-01         在myba ...

  5. springboot整合mybatis增删改查(三):mybatis逆向工程

    上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...

  6. mybatis增删改查快速实现!!!

    Mybatis 简介 ** 1.什么是Mybatis ** MyBatis是一款优秀的基于java的持久层框架,它内部 封装了jdbc,使开发者只需要关注sql语句本身. 参考文档 :https:// ...

  7. java 基础做增删改查教学_Java Mybatis 增删改查 简单使用 入门 简版

    一些基础问题的解决 数据库对应的表 初始数据 项目结构 pom.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

  8. mybatis 增删改查、批量插入和删除以及自动生成uuid主键和分页

    Mapper接口: public int update(Admin admin); public Admin selectByUserName(String account); public List ...

  9. MyBatis 增删改查

    MyBatis 学习记录 MyBatis 特性 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果 ...

最新文章

  1. 一文回顾2018英特尔人工智能大会
  2. python使用matplotlib可视化、自定义Y轴轴标签刻度旋转的角度(customize degree rotating axis tick labels in matplotlib)
  3. 谷歌浏览器扩展程序XDM_请立即更新您的谷歌Chrome浏览器 获取重要的安全补丁程序...
  4. Android之LinearLayout线性布局
  5. SAP财务管控(财务总监背后的管理大师)
  6. 【NLP】新闻上的文本分类:机器学习大乱斗
  7. boost::hana::value_or用法的测试程序
  8. 出生日期,看出你的天赋
  9. 48个越吃越瘦的诀窍 - 生活至上,美容至尚!
  10. java enummap_Java EnumMap size()方法与示例
  11. 2021-07-23 小记
  12. 信息学奥赛C++语言:的士收费
  13. vs2010 在svn上传东西的时候 出现一个错误 An internal occurred 值不在预期范围内 要如何解决呢?...
  14. java 手机视频_JAVA炫播手机视频
  15. python埋点测试_测试一面(宇宙条)
  16. 37线性映射04——像与核、核与像的计算、线性映射的维数公式
  17. ReSharper2017.3的列对齐、排版格式、列对齐错误的修复
  18. U盘启动装系统的操作方法(U盘PE启动安装GHOST XP)
  19. 单位载质量能量消耗量_Ekg指标计算案例之电动物流车
  20. 求两个数的最大公约数,Euclid算法证明,以及C语言代码实现

热门文章

  1. mysql如何加悲观锁_MySQL悲观锁
  2. COSCon'19 开源操作系统论坛
  3. spring data jpa 多对多查询
  4. PDF417结构及原理
  5. 那些年啊,那些事——一个程序员的奋斗史 ——23
  6. UDA_TP阅读笔记
  7. unity Text文字淡入效果
  8. 紧密联结玩家 | 2023 Google 游戏开发者峰会
  9. Redis-03-基本命令
  10. 歪解:备份BlackBerry手机上面的安装好的程序(cod)