首页 > 其他分享 >Mybatis——查询数据

Mybatis——查询数据

时间:2024-04-01 17:34:14浏览次数:24  
标签:mapper UserMapper 查询 user org Mybatis import 数据 example

查询操作

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

package org.example.mapper;

import org.example.demo.User;

import java.util.List;

public interface UserMapper {
    //根据id查询User
    User 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,
        password
    from 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();
    }

 

标签:mapper,UserMapper,查询,user,org,Mybatis,import,数据,example
From: https://blog.csdn.net/LIUCHANGSHUO/article/details/137238750

相关文章

  • SpringBoot集成MyBatis-Plus快速入门Demo
    目录1.MyBatis-Plus概述2.MyBatis-Plus框架结构3. MyBatis-Plus快速入门3.1 创建表3.2 创建工程3.3 导入依赖3.4添加配置文件application.yml,配置数据库信息3.5 创建实体类(包括自动填充)3.6创建配置类(包括配置乐观锁、分页、逻辑删除等插件) 3.7编写自动填......
  • 深入解析大数据体系中的ETL工作原理及常见组件
    **引言关联阅读博客文章:探讨在大数据体系中API的通信机制与工作原理关联阅读博客文章:深入理解HDFS工作原理:大数据存储和容错性机制解析**在当今数字化时代,大数据处理已经成为了企业成功的重要组成部分。而在大数据处理中,ETL(Extract,Transform,Load)是至关重要的一环,它......
  • 基于神经网络的心脏健康监测计算机毕设+完整代码+数据
        ......
  • 提防“摸鱼”:社交聊天与购物的数据安全警钟
    随着科技的发展,职场中有越来越多的人会在工作时使用社交聊天软件和在线购物平台。然而,越多的工作时间被社交和购物占据,也就越有可能引发数据泄露。不论是意识到还是无意识的,内部人员都有可能成为数据安全的最大威胁。此文将聚焦如何防止社交聊天、购物等行为引发数据泄露。数据......
  • 解析Apache Kafka:在大数据体系中的基本概念和核心组件
    关联阅读博客文章:探讨在大数据体系中API的通信机制与工作原理关联阅读博客文章:深入解析大数据体系中的ETL工作原理及常见组件关联阅读博客文章:深度剖析:计算机集群在大数据体系中的关键角色和技术要点关联阅读博客文章:深入理解HDFS工作原理:大数据存储和容错性机制解析引......
  • 数据库案例讲解
              ......
  • RSS 一种简洁优雅的数据订阅方式
    拓展阅读RSS一种简洁优雅的数据订阅方式RSSHubEverythingisRSSible开源、易于使用且可扩展的RSS提要生成器RSS介绍RSS(ReallySimpleSyndication)是一种用于发布网站更新的标准格式。它允许用户获取网站内容的最新更新,而无需访问网站本身。RSS通常用于博客、新闻网站......
  • 地方废物回收机构管理的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读100套最新项目持续更新中.....2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssm+vue等技术项目合集)目录1.管理员功能效果图2.员工功能3.系统功能设计4.数据库E-R图设......
  • 基于vue的MOBA类游戏攻略分享平台的设计与实现|Springboot+Vue+ Mysql+Java+ B/S结构(
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。现今,越来越多的人乐于选择一项合适的管理方案,但是普通用户往往受到管理经验地限制,这时MOBA类游戏攻略分享平台的崛起,大量游戏攻略进入人们生活,而MOBA类游戏攻略制无疑是游戏攻略管理的最好制度,在这样成功的管理模......
  • CSGO赛事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。在世界范围内,CSGO赛事管理系统已经得到了非常广泛的应用,范围变的越来越广,功能也在不断的完善,操作简便、节省人力、成本低廉,但工作的效率确一直不断的提高。为CSGO赛事行业管理全程提供自动化和全面的纪录,避免出错......