前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MyBatis 从入门到精通:CRUD操作详解

MyBatis 从入门到精通:CRUD操作详解

作者头像
默 语
发布于 2024-11-20 08:43:40
发布于 2024-11-20 08:43:40
9900
代码可运行
举报
文章被收录于专栏:JAVAJAVA
运行总次数:0
代码可运行

CRUD操作详解

Namespace

在 MyBatis 中,namespace 的包名要和 DAO/Mapper 接口的包名一致!

Select查询

select 用于选择、查询语句:

  • id:对应 namespace 中的方法名;
  • resultType:SQL 语句执行的返回值类型;
  • parameterType:参数类型。
编写接口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 根据ID查询用户
User getUserById(int id);Copy to clipboardErrorCopied
对应的Mapper SQL语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select id="getUserById" parameterType="int" resultType="com.oddfar.pojo.User">
    select * from mybatis.user where id = #{id}
</select>Copy to clipboardErrorCopied
测试
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void getUserById() {
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    UserMapper mapper = sqlSession.getMapper(UserMapper.class);

    User user = mapper.getUserById(1);
    System.out.println(user);

    sqlSession.close();
}Copy to clipboardErrorCopied
Insert插入
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 直接使用对象属性 -->
<insert id="addUser" parameterType="com.oddfar.pojo.User">
    insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd});
</insert>Copy to clipboardErrorCopied
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void addUser() {
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    int res = mapper.addUser(new User(4, "zhiyuan", "212313"));
    if (res > 0) {
        // 提交事务
        sqlSession.commit();
        System.out.println("添加成功");
    }
    sqlSession.close();
}Copy to clipboardErrorCopied
Update更新
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<update id="updateUser" parameterType="com.oddfar.pojo.User">
    update mybatis.user set name=#{name},pwd=#{pwd}  where id = #{id} ;
</update>Copy to clipboardErrorCopied
Delete删除
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<delete id="deleteUser" parameterType="int">
    delete from mybatis.user where id = #{id};
</delete>Copy to clipboardErrorCopied

注意点:

  • 增删改需要提交事务:sqlSession.commit()
  • 注意标签匹配。
  • 使用 resource 绑定 Mapper 时,需要使用路径。
  • 程序配置文件必须符合规范。
  • 避免空指针异常,确保资源已注册。
  • XML 输出中存在中文乱码问题。
  • Maven 资源未正确导出。
万能Map

当实体类或数据库表字段过多时,可以考虑使用 Map 传递参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 用Map插入数据
int addUser2(Map<String,Object> map);Copy to clipboardErrorCopied
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<insert id="addUser2" parameterType="map">
    insert into mybatis.user (id,name,pwd) values (#{userid},#{username},#{passWord});
</insert>Copy to clipboardErrorCopied
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void addUser2() {
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    Map<String,Object> map = new HashMap<String, Object>();
    map.put("userid",5);
    map.put("passWord","2222333");
    map.put("username","map");

    int res = mapper.addUser2(map);
    if (res > 0) {
        // 提交事务
        sqlSession.commit();
        System.out.println("添加成功");
    }
    sqlSession.close();
}Copy to clipboardErrorCopied
思考题

如何进行模糊查询?

有两种方式:

  1. Java 代码执行时,传递通配符 %
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<User> userList = mapper.getUserLike("%李%");Copy to clipboardErrorCopied
  1. 在 SQL 拼接中使用通配符。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from mybatis.user where name like "%"#{value}"%"Copy to clipboardErrorCopied

推荐使用第二种方式。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Mybatis—CURD以及模糊查询
配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!
Albert_xiong
2021/06/21
5190
Mybatis—CURD以及模糊查询
Mybatis第二篇| CRUD,这才是程序员入门第一课
增删改查(CRUD)是程序员必会的技能,我们大部分的时间也都是消耗在增删改查上,当然我们不能只做一个只会CRUD的程序员,当我们掌握并且熟练了CRUD后,我们可以对CRUD进行进一步的优化。这篇文章主要讲解的是如何通过Mybatis来实现CRUD。
Python进击者
2020/04/02
7040
SSM-Mybatis(1)[通俗易懂]
注意 maven中的约定的事/src/main/resources中的配置文件会被导出,但是我们写的实现类xml文件在/src/main/java下,maven默认是不会导出的,所以需要手动配置
全栈程序员站长
2022/09/21
2560
SSM-Mybatis(1)[通俗易懂]
SSM之Mybatis的学习
官方中文文档:https://mybatis.org/mybatis-3/zh/configuration.html#typeAliases
Rochester
2020/09/01
6230
SSM之Mybatis的学习
Mybatis 框架学习(二)—— 简单CRUD的实现
通过这个CRUD的操作,我们能很明确的感觉到mybatis操作数据库比 JDBC操作数据库的简洁明了
RAIN7
2022/06/12
3890
初入Mybatis:简介及配置
org.apache.ibatis.binding.BindingException: Type interface com.rui.dao.UserDao is not known to the MapperRegistry.
乐心湖
2020/07/31
4070
【Mybatis 入门指北】2、Mybatis 入门实例及 CRUD
上一篇文章中我们讲了什么是持久化以及 Mybatis 的相关简介,今天就来看看如何创建一个 Mybatis 入门实例以及如何利用 Mybatis 进行 CRUD。
村雨遥
2022/06/16
3490
【Mybatis 入门指北】2、Mybatis 入门实例及 CRUD
Mybatis-02 CRUD
创建一个新user,id:1、name:李、pwd:1456,通过sql操作,加入数据库。
张小驰出没
2021/04/15
3510
Mybatis-02  CRUD
MyBatis
新建项目 1. 新建一个普通的maven项目 2. 删除src目录 3. 导入maven依赖
用户11332765
2024/10/28
1780
MyBatis
Mybatis—ResultMap结果集映射与日志工厂、分页
password出现了null,表示存在了问题。 结果原因: select * from user where id = #{id} 可以看做 select id,name,pwd from user where id = #{id}
Albert_xiong
2021/06/21
5060
Mybatis—ResultMap结果集映射与日志工厂、分页
MyBatis 实现数据的增删改查
1. 查询操作 select 1.1 根据各属性来查询用户 在 UserDao 中添加对应方法: /** * @param name 用户名 * @return 对应用户名的用户对象 * @description 根据用户名获取用户 * @date 2020/7/14 14:52 * @author cunyu1943 * @version 1.0 */ User getUserByName(String name); /** * @param password 密码 * @return 对应密码的用户对
村雨遥
2020/07/21
6450
4.Mybatis增删改查的简单实现
1.namespace namespace中的包名要和 mapper 接口名一致! 2.select 选择,查询语句; id : 就是对应的namespace中的方法名 resultType : sql语句执行返回值的类型 parameterType : 参数类型 1.编写接口 /** * 调用xml方式 * @param id * @return */ public User selectUserForXml(Integer id); 2.编写对应m
DencyCheng
2020/11/17
3030
MyBatis 从入门到精通:第一个Mybatis程序
默 语
2024/11/20
780
mybatis 实现增删改
reyeye
2023/10/13
1760
mybatis 实现增删改
Maven项目集成Mybatis
上述实例类TdyMemberInfo 中定义的变量 id 对应表t_dy_member_info中的member_id,在TdyMemberInfoMapper.xml的resultMap 中会有对应的映射关系。 startIndex、pageSize 这两个字段用于分页查询。
用户7741497
2022/02/28
4740
【Mybatis】动态SQL 实例
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。
全栈程序员站长
2022/09/09
7760
【Mybatis】动态SQL 实例
MyBatis增删改查(CRUD)操作
CRUD操作指的就是增加(Create)、读取(Retrieve)、更新(Update)、删除(Delete)这四种基本数据库操作;
久绊A
2024/03/01
2240
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
一、使用MyBatis对表执行CRUD操作——基于XML的实现 1、定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encodi
一枝花算不算浪漫
2018/05/18
6740
MyBatis 从入门到精通:分页在MyBatis中使用
本文介绍了MyBatis中分页技术的几种实现方式,包括使用Limit分页和RowBounds分页,以及分页插件的简要了解。
默 语
2024/11/20
1610
MyBatis 从入门到精通:分页在MyBatis中使用
Mybatis学习2:实现增删改查操作CRUD
环境搭建见本专栏上篇。 查询用户 根据指定id查询用户 1.编写接口 //根据id查询用户 User selectUserById(int id); 2.修改Mapper.xml <select id="selectUserById" resultType="com.kuang.pojo.User"> select * from user where id = #{id} </select> 3.编写测试类 @Test public void tsetSelectU
zstar
2022/06/14
2290
相关推荐
Mybatis—CURD以及模糊查询
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验