MyBatis查询数据库(3)(二)

简介: MyBatis查询数据库(3)

MyBatis查询数据库(3)(一)https://developer.aliyun.com/article/1393184

2、多表查询🍉

如果是增、删、改返回搜影响的行数,那么在 UserMapper.xml 中是可以不设置返回的类型的,如:


<insert id="add">
        insert into userinfo(username,password) values(#{username},#{password})
    </insert>
    <delete id="delById">
        delete from userinfo where id=#{id}
    </delete>
    <update id="upUserName">
        update userinfo set username=#{username} where id=#{id}
    </update>

然而即使是最简单查询用户的名称也要设置返回的类型,否则会出现如下错误:

查询不设置返回类型的错误示例演示:

controller 代码:


@RequestMapping("/getname")
public String getNameById(Integer id) {
     return userService.getNameById(id);
}

UserMapper.xml 实现代码:


<select id="getNameById">
        select username from userinfo where id=#{id}
</select>

访问接口执行结果如下:

image.png

显示运行了⼀个查询但没有找到结果映射,也就是说对于 id 属性:用于标识实现接口中的那个方法;结果映射属性:结果映射有两种实现标签:Ⅰ、返回类型:resultType  🍓绝大数查询场景可以使⽤ resultType 进行返回,如下代码所示:它的优点是使用方便,直接定义到某个实体类即可。Ⅱ、返回字典映射:resultMap 🍓resultMap使用场景:字段名称和程序中的属性名不同的情况,可使用 resultMap 配置映射;⼀对⼀和⼀对多关系可以使用 resultMap 映射并查询数据。当程序中的属性值与数据库中的字段名不一样时🍒我们去单元测试,进行用户的查询:打印出来就发现,name没有被赋值,为null,这就是因为字段名与属性值不一样的结果。这个时候就可以使用 resultMap 了,resultMap 的使用如下:UserMapper.xml:这样查询的结果就有值了,如下图所示:或者使用as关键字(数据库重命名)🍒如果你一定需要使用resultType,也是可以实现的:Ⅲ、多表查询🍓在多表查询时,如果使用 resultType 标签,在⼀个类中包含了另⼀个对象是查询不出来被包含的对象的,比如以下实体类:程序的执行结果如下图所示:此时我们就需要使用特殊的手段来实现联表查询了。通过VO对象🍒ArticleInfoVO对象ArticleMapper.xml进行多表程序:单元测试:单元测试成功,查询到了用户id为5的 文章表的文章信息 和 用户表中的用户名:大部分时候多表联查解决方案:联表查询语句(left join/inner)+xxxVO(新建的实体类)就可以解决

相关文章
|
18天前
|
XML Java 数据库连接
Mybatis实现RBAC权限模型查询
通过对RBAC权限模型的理解和MyBatis的灵活使用,我们可以高效地实现复杂的权限管理功能,为应用程序的安全性和可维护性提供有力支持。
52 5
|
2月前
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
319 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
1月前
|
存储 缓存 网络协议
数据库执行查询请求的过程?
客户端发起TCP连接请求,服务端通过连接器验证主机信息、用户名及密码,验证通过后创建专用进程处理交互。服务端进程缓存以减少创建和销毁线程的开销。后续步骤包括缓存查询(8.0版后移除)、语法解析、查询优化及存储引擎调用,最终返回查询结果。
29 6
|
1月前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
73 3
|
2月前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
44 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
1月前
|
SQL JavaScript 程序员
数据库LIKE查询屡试不爽?揭秘大多数人都忽视的秘密操作符!
本文分析了因数据库中的不可见空白字符导致的数据查询问题,探讨了问题的成因与特性,并提出了使用 SQL 语句修复问题的有效方案。同时,总结了避免类似问题的经验和注意事项。
33 0
|
2月前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
43 2
|
2月前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
2月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
2月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
375 1