Mybatis——增删改查CLUD
一、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、分析错误
- 标签不能匹配错误
- resource绑定mapper,需要使用路径 /
- 程序配置文件必须符合规范;报错信息从后往前读
- NullPointerException,没有注册到资源
- 输出的xml文件中出现中文乱码问题
- maven资源没有导出问题
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();
}
8、思考题
模糊查询怎么写?
1、Java代码执行的时候,传递通配符 % %
List<User> list = mapper.getUserLike("%李%");
select * from mybatis.user where name like "%" #{value} "%";
Mybatis——增删改查CLUD相关推荐
- Mybatis——增删改查(CRUD)操作
java学习--Mybatis CRUD操作 mybatis是一个可以自定义SQL.存储过程和高级映射的持久层框架.上面这个定义是在百度上抄的,简单来说,Mybatis简化了我们对数据库的一系列操作, ...
- SSM框架——Mybatis增删改查
目录 目录 环境配置 增删改查的实现 查询全部 查询单个ID 添加用户 修改用户 删除用户 增删改查-使用注解开发 思路流程:搭建环境-->导入Mybatis--->编写代码---> ...
- Mybatis增删改查
增删改查基本上就是一个操作,一模一样的,首先是UserMpper接口: package com.ftz.Demo.dao;import com.ftz.Demo.po.User;import java ...
- Mybatis 详细的创建流程及创建第一个Mybatis增删改查程序 CRUD
1.idea新建Maven项目Mybatis-study 将项目里的src文件夹删掉 依次将此项目作为父项目 2.在Mybatis-study中新建模块mybatis-01 在myba ...
- springboot整合mybatis增删改查(三):mybatis逆向工程
上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...
- mybatis增删改查快速实现!!!
Mybatis 简介 ** 1.什么是Mybatis ** MyBatis是一款优秀的基于java的持久层框架,它内部 封装了jdbc,使开发者只需要关注sql语句本身. 参考文档 :https:// ...
- java 基础做增删改查教学_Java Mybatis 增删改查 简单使用 入门 简版
一些基础问题的解决 数据库对应的表 初始数据 项目结构 pom.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
- mybatis 增删改查、批量插入和删除以及自动生成uuid主键和分页
Mapper接口: public int update(Admin admin); public Admin selectByUserName(String account); public List ...
- MyBatis 增删改查
MyBatis 学习记录 MyBatis 特性 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果 ...
最新文章
- 一文回顾2018英特尔人工智能大会
- python使用matplotlib可视化、自定义Y轴轴标签刻度旋转的角度(customize degree rotating axis tick labels in matplotlib)
- 谷歌浏览器扩展程序XDM_请立即更新您的谷歌Chrome浏览器 获取重要的安全补丁程序...
- Android之LinearLayout线性布局
- SAP财务管控(财务总监背后的管理大师)
- 【NLP】新闻上的文本分类:机器学习大乱斗
- boost::hana::value_or用法的测试程序
- 出生日期,看出你的天赋
- 48个越吃越瘦的诀窍 - 生活至上,美容至尚!
- java enummap_Java EnumMap size()方法与示例
- 2021-07-23 小记
- 信息学奥赛C++语言:的士收费
- vs2010 在svn上传东西的时候 出现一个错误 An internal occurred 值不在预期范围内 要如何解决呢?...
- java 手机视频_JAVA炫播手机视频
- python埋点测试_测试一面(宇宙条)
- 37线性映射04——像与核、核与像的计算、线性映射的维数公式
- ReSharper2017.3的列对齐、排版格式、列对齐错误的修复
- U盘启动装系统的操作方法(U盘PE启动安装GHOST XP)
- 单位载质量能量消耗量_Ekg指标计算案例之电动物流车
- 求两个数的最大公约数,Euclid算法证明,以及C语言代码实现