查询-查询所有数据

    1、创建相应Mapper接口文件 以及Mapper配置信息文件

        

      修改配置文件中 namespace :

       

    2、编写接口方法:Mapper 接口

      参数:无

      结果:List<Brand>

      

    3、编写SQL语句(接口文件中按Alt+回车快速编写)

      

    4、执行方法,测试

      (1)获取 SQLSessionFactory 对象

 //1、获取 SqlSessionFactory 对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

      (2)获取 SQLSession 对象

        // 2、获取 SQLSession 对象
SqlSession sqlSession = sqlSessionFactory.openSession();

      (3)获取Mapper接口代理对象

        // 3、获取Mapper接口代理对象
BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);

      (4)执行方法

        // 4、执行方法
List<Brand> brands = brandMapper.selectAll();
// 打印
System.out.println(brands);

      (5)释放资源

        // 5、释放资源
sqlSession.close();

      (6)运行结果  

        

        发现brandName 和 companyName 显示为 null

          原因:数据库表的字段名称(下划线命名法) 和 实体类的属性名称(驼峰命名法) 不一样 ,则不能自动封装数据

        解决方案:

          * 起别名 :对不一样的列名起别名,让别名和实体类的属性名一样

    <select id="selectAll" resultType="com.cqupt.pojo.Brand">
select id, brand_name brandName, company_name companyName, orderd, description, status
from tb_brand;
</select>

            起别名之后显示正常:

              

            * 缺点:每次都要定义一次别名 如果查询次数过多 显示一长串不美观

          * 采用 sql片段

    <!--sql片段-->
<sql id="brand_column">
id, brand_name brandName, company_name companyName, orderd, description, status
</sql> <select id="selectAll" resultType="com.cqupt.pojo.Brand">
select
<include refid="brand_column"></include>
from tb_brand;
</select>

          * 缺点:不灵活     

          最多使用的方法:resultMap 映射

<!--
id :唯一标识
type :映射的类型 支持别名
-->
<resultMap id="brandResultMap" type="com.cqupt.pojo.Brand">
<!--
id :主键字段的映射
column :表的列名
property :实体类的属性名
result :一般字段的映射
column :表的列名
property :实体类的属性名
-->
<!-- 这里仅需完成对一般字段映射 所以使用的result -->
<result column="brand_name" property="brandName" />
<result column="company_name" property="companyName" />
</resultMap> <select id="selectAll" resultMap="brandResultMap">
select
*
from tb_brand;
</select>

MyBatis——案例——查询-查询所有的更多相关文章

  1. Mybatis之关联查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  2. Mybatis多条件查询

    在Mybatis多条件查询中: 1.参数如果是多条件,则需要将将添加到Map集合中进行传入. 2.就是将其参数用有序数字进行代替. Mybatis单个String类型参数传递 mysql文如下,传入参 ...

  3. 【转载】Mybatis多参数查询映射

    转载地址:http://www.07net01.com/zhishi/402787.html 最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴 露了很多问题,其 ...

  4. Mybatis包分页查询java公共类

    Mybatis包分页查询java公共类   分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...

  5. mybatis的collection查询问题以及使用原生解决方案的结果

    之前在springboot+mybatis环境的坑和sql语句简化技巧的第2点提到,数据库的一对多查询可以一次查询多级数据,并且把拿到的数据按id聚合,使父级表和子级表都有数据. 但是这种查询,必然要 ...

  6. SpringBoot+Mybatis实现关联查询

    SpringBoot+Mybatis实现关联查询 今天学习了下Mybatis的动态查询,然后接着上次的Demo改造了下实现表的关联查询. 话不多说,开始今天的小Demo 首先接着上次的项目 https ...

  7. MyBatis学习——分步查询与延迟加载

    声明:面试是遇到延迟加载问题,在网页搜索到此篇文章,感觉很有帮助,留此学习之用! 一.分步查询 分步查询通常应用于关联表查询,如:电商平台,查询订单信息时需要查询部分的用户信息:OA系统查询个人信息时 ...

  8. MyBatis实现模糊查询的几种方式

    在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...

  9. MyBatis多对多查询

    -------------------siwuxie095                                 MyBatis 多对多查询         以订单和商品为例,即 一个订单可 ...

  10. MyBatis之一对多映射查询sql配置文件。

    学生---文章的模型一对多模型 学生student.java类 package com.bjsxt.sxf.po; import java.util.Date; import java.util.Li ...

随机推荐

  1. Docker安装及操作

    目录 docker 安装: 官方文档方法 CentOS Ubuntu docker-compose 单独安装 centos7 ubuntu22.04 docker 容器操作: docker启动与停止 ...

  2. CCF 有趣的数

    问题描述: 试题编号: 201312-4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1 ...

  3. java+mysql+tomcat环境变量配置(windows版)

    jdk8(本人用的jdk8) 系统变量->新建:{JAVA_HOME=[JDK安装目录]} 系统变量->PATH:头部追加%JAVA_HOME%\bin;%JAVA_HOME%\jre\b ...

  4. httpURLConnection 请求发起post请求

    常见请求头,在post请求之 前先了解一下,请求相关的基础 关于post 请求的方式比get  多了很多配置,其实大致一样,本想将get示例和post写在一起,这个博客功能有时有问题 一直在灰色的编辑 ...

  5. Redis持久化RDB与AOF介绍

    就是将内存中的数据通过rdb/aof进行持久化写入硬盘中 rdb就是进行持久化的快照 在指定的时间间隔内,执行数据集的时间点快照.这个快照文件称为(dump.rdb)RDB文件,Redis DataB ...

  6. Jmeter函数助手1-CSVRead

    CSVRead函数适用于读取文件获取参数值. 用于获取值的CSV文件 | *别名:csv文件路径 CSV文件列号| next| *alias:读取列,0表示第一列,1表示第二列 1.首先我们需要一个文 ...

  7. 【SpringCloud】Re04 Gateway

    微服务网关: 1.身份认证 和 权限校验 2.服务路由.负载均衡 3.请求限流 搭建服务网关: 网关是一个独立的服务,同样需要被注册中心注册到,这里依然使用的是Nacos <?xml versi ...

  8. 【C】Re03

    一.变量 变量存储了两个东西: 1.内存空间地址 2.内存空间存放的值 本质是给内存地址起了一个别名,允许我们通过别名对内存进行访问 void variable01() { int a = 100; ...

  9. GTC 2024 NVIDIA推出的新一代终端智能芯片 —— Jetson Thor

    比较好奇,NVIDIA今年推出的终端芯片Jetson Thor到底是个啥样,毕竟这东西在机器人元年的2024年开始预热宣传,2025年大规模部署,注定是AI领域的一个重要角色. 看完GTC 2024的 ...

  10. 【转载】 Do's and Don'ts of using t-SNE to Understand Vision Models —— t-SNE 作者写的使用指南(PPT版本)

    <Do's and Don'ts of using t-SNE to Understand Vision Models> 作者的PPT视频:https://www.youtube.com/ ...