Mybatis——查询数据

查询操作

根据用户id查询单条记录,在映射器接口(UserMapper)中定义如下方法:

package org.example.mapper;import org.example.demo.User;import java.util.List;public interface UserMapper {//根据id查询UserUser selectUserById(Integer userId);
}

当实体类的属性名与数据库表的字段名一一对应时,映射代码如下所示:select元素用于映射查询语句:UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.mapper.UserMapper"><select id="selectUserById" resultMap="userMap">select * from t_user where user_id = #{userId};</select>
</mapper>

编写测试代码 :

package org.example;import org.apache.ibatis.session.SqlSession;
import org.example.demo.Order;
import org.example.demo.User;
import org.example.demo2.Employee;
import org.example.demo2.SalaryEmployee;
import org.example.mapper.EmployeeMapper;
import org.example.mapper.UserMapper;
import org.example.utils.MybatisUtil;import java.util.List;public class test {public static void main(String[] args) {test test1 = new test();test1.selectUserById();}public void selectUserById() {SqlSession sqlSession = MybatisUtil.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = mapper.selectUserById(3);System.out.println(user);sqlSession.commit();sqlSession.close();}
}

得到如下结果:

 

当实体类属性名与表字段不一致时,可以使用resultMap元素映射其对应关系 

resultMap是一种很重要的配置结果映射的方法

id属性:必填,是结果映射的唯一标识,与select元素中resultMap属性的值一致

type属性:必填,用于指定查询结果所映射到的Java对象类型

id子元素:配置id对应的column(字段名)和property(属性名)

result子元素:配置普通结果对应的字段名和属性名

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.mapper.UserMapper"><resultMap id="userMap" type="org.example.demo.User"><id property="userId" column="user_id"/><result property="userName" column="user_name"/><result property="password" column="password"/><association property="cart" column="user_id" select="findCartbyUserId"fetchType="lazy"/></resultMap><select id="selectUserById" resultMap="userMap">select * from t_user where user_id = #{userId};</select>
</mapper>

当实体类属性与表字段不一致时,也可以通过设置别名进行映射 

<select id="selectAllUsers" resultType="com.mybatis.entity.User">select id,user_name userName,passwordfrom USER
</select>

 模糊查询like

在接口UserMapper中:

package org.example.mapper;import org.example.demo.User;import java.util.List;public interface UserMapper {List<User> selectAllUser(String userName);
}

在UserMapper.xml中 :

 表达式: user_name like"%"#{name}"%" #起到占位符的作用

​
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.mapper.UserMapper"><resultMap id="userMap" type="org.example.demo.User"><id property="userId" column="user_id"/><result property="userName" column="user_name"/><result property="password" column="password"/><association property="cart" column="user_id" select="findCartbyUserId"fetchType="lazy"/></resultMap>​<select id="selectAllUser" resultMap="userMap">select * from t_user where user_name like "%"#{userName}"%";</select>
</mapper>

 测试类:

public void selectAllUser() {SqlSession sqlSession = MybatisUtil.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<User> users = mapper.selectAllUser("l");System.out.println(users);for (User user : users) {System.out.println(user);}sqlSession.commit();sqlSession.close();}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对称二叉树_递归_java

对称二叉树 leetcode链接 问题描述 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 提示&#xff1a; 树中节点数目在范围 [1, 1000] 内 -100 < Node.val < 100 示例 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;…

stable diffusion 的 GPU 不足怎么解决

稳定扩散&#xff08;stable diffusion&#xff09;是一种用于图像处理和计算机视觉任务的图像滤波算法。 当使用Stable Diffusion过程中遇到GPU显示内存不足的问题时。解决这个问题的方法有以下几种&#xff1a; 目前&#xff0c;对我来说&#xff0c;就最后一点能够暂时解决当…

GaussDB云数据库极简版安装与使用-新手指南

一、前言 作为一款领先的企业级数据库管理系统&#xff0c;GaussDB 提供了强大的性能、高度可靠性和丰富的功能&#xff0c;是企业构建可靠、高性能的数据库解决方案的理想选择。 本文主要针对高校和个人测试环境&#xff0c;介绍极简版安装和使用过程&#xff0c;更加适合高…

python多线程简单示例

Python的多线程可以帮助你在同一个进程中运行多个线程&#xff08;即任务&#xff09;&#xff0c;这样可以在执行IO密集型或高延迟的操作时提高程序的效率。下面是一个简单的Python多线程教程。 1. 引入threading模块 Python的threading模块提供了一个简单的方式来创建和管理…

如何在VSCode中高效使用Git:完全指南

引言 在软件开发领域&#xff0c;版本控制是一个至关重要的概念。它不仅仅是一个程序员的工具&#xff0c;更是团队协作、项目管理和代码质量保证的关键。随着软件开发项目的复杂性不断增加&#xff0c;版本控制系统的作用变得愈发显著。 Git作为目前最流行的分布式版本控制系…

SwiftUI Swift 选择图片 添加图片

1. 添加记帐时添加图片功能 2. Show me the code // // TestPhotoPicker.swift // pandabill // // Created by 朱洪苇 on 2024/3/30. //import SwiftUI import PhotosUI import Foundationstruct TestPhotoPicker: View {State private var selectedItem: PhotosPickerIt…

golang语言系列:SOLID、YAGNI、KISS等设计原则

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 golang语言系列 文章&#xff0c;主要对编程通用技能 SOLID、YAGNI、KISS等设计原则 进行学习 1.SOLID设计原则 S&#xff1a;SRP&#xff0c;单一职责原则O&#xff1a;OCP&#xff0c;开闭原则L&#xff1a;…

PCL拟合并绘制平面和柱面(三)

PCL绘制自定义图形 在使用PCL拟合平面和柱面后&#xff0c;需要绘制自定义大小和位置的平面和柱面以便于可视化。 //拟合类型 enum FitType {FitPlane 1, //平面FitCylinder 2 //圆柱 };主要函数&#xff1a; void PointCloudViewer(PointCloudT::Ptr cloudseg, PointC…

Php_Code_challenge12

题目&#xff1a; 答案&#xff1a; 解析&#xff1a; 字符串拼接。

文献阅读:通过 NeuronChat 从单细胞转录组推断神经元-神经元通信

文献介绍 「文献题目」 Inferring neuron-neuron communications from single-cell transcriptomics through NeuronChat 「研究团队」 聂青&#xff08;加利福尼亚大学欧文分校&#xff09; 「发表时间」 2023-02-28 「发表期刊」 Nature Communications 「影响因子」 16.6…

15 - grace序列处理 - 十三点滑动平均法

grace序列处理 -十三点滑动平均法 滑动平均是一种常用的平滑数据的方法,可以用于去除噪声或者提取趋势。十三点滑动平均是指使用窗口大小为13的滑动平均,应用于GRACE序列处理中可以去除周年项的影响。 十三点滑动平均的计算公式为: y [ n ] = ( x [ n − 6 ]

互联网轻量级框架整合之JavaEE基础I

不得不解释得几个概念 JavaEE SUN公司提出来的企业版Java开发中间件&#xff0c;主要用于企业级互联网系统的框架搭建&#xff0c;同时因为Java语言优质的平台无关性、可移植性、健壮性、支持多线程和安全性等优势&#xff0c;其迅速成为构建企业互联网平台的主流技术&#x…

关于Linux系统中Python核心包的重要性和恢复误卸载软件的方法

&#xff08;首发地址&#xff1a;学习日记 https://www.learndiary.com/2024/04/dont-remove-system-python/&#xff09; 大家好&#xff0c;我是来自淘宝网“学习日记小店”的 learndiary&#xff0c;专注于提供 Linux 相关的技术服务。昨日&#xff0c;一位使用 Ubuntu 20…

基于UML的系统分析与设计

统一建模语言(Unified Modeling Language&#xff0c;UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言&#xff0c;是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具&#xff0c;独立于任何具体程序设计语言。 毕业设计是实现本科教学培…

Php_Code_challenge16

题目&#xff1a; 答案&#xff1a; 解析&#xff1a; 所以科学计数法绕过即可。

爬虫 知识点2

article_url url_tag[href]article_response requests.get(article_url, headersheaders)article_soup BeautifulSoup(article_response.content, "html.parser")print(index)&#xff08;1&#xff09;article_url url_tag[‘href’] 这行代码从一个名为url_tag…

Go 源码之切片 Slice

目录 Go 源码之切片 Slice一、总结二、源码&#xff08;一&#xff09;数据结构&#xff08;二&#xff09;创建Slice&#xff08;三&#xff09;append-扩容-growslice&#xff08;四&#xff09;切片深拷贝 Go 源码之切片 Slice go源码之Slice - Jxy 博客 一、总结 slice是…

python pip使用国内镜像

让PIP源使用国内镜像&#xff0c;提升下载速度和安装成功率。 对于Python开发用户来讲&#xff0c;PIP安装软件包是家常便饭。但国外的源下载速度实在太慢&#xff0c;浪费时间。而且经常出现下载后安装出错问题。所以把PIP安装源替换成国内镜像&#xff0c;可以大幅提升下载速…

Division(UVA 725)

网址如下&#xff1a; Division - UVA 725 - Virtual Judge (vjudge.net) &#xff08;第三方网站&#xff09; 考完CSP认证之后动力就有点不足&#xff0c;之后还有一个蓝桥杯&#xff0c;虽然说考的还行&#xff0c;混了个370&#xff0c;但是昨天一天都不怎么想敲代码 昨…

macOS Sonoma 14.4 23E214 VMware系统包下载地址,简单便捷,导入即可用!

这回分享的是VMware虚拟机macOS 14.4版本的系统包&#xff0c;这种系统包是已经在VMware虚拟机中安装好了的macOS系统。省去了繁琐的安装步骤与稍微漫长的等待时间。此次更新的包为诗林工作室制作的最新一个VMware系统包版本。分享给那些想快速体验macOS 14版本的朋友。 使用方…