MyBatis——案例——查询-查询所有
查询-查询所有数据
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——案例——查询-查询所有的更多相关文章
- Mybatis之关联查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- Mybatis多条件查询
在Mybatis多条件查询中: 1.参数如果是多条件,则需要将将添加到Map集合中进行传入. 2.就是将其参数用有序数字进行代替. Mybatis单个String类型参数传递 mysql文如下,传入参 ...
- 【转载】Mybatis多参数查询映射
转载地址:http://www.07net01.com/zhishi/402787.html 最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴 露了很多问题,其 ...
- Mybatis包分页查询java公共类
Mybatis包分页查询java公共类 分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...
- mybatis的collection查询问题以及使用原生解决方案的结果
之前在springboot+mybatis环境的坑和sql语句简化技巧的第2点提到,数据库的一对多查询可以一次查询多级数据,并且把拿到的数据按id聚合,使父级表和子级表都有数据. 但是这种查询,必然要 ...
- SpringBoot+Mybatis实现关联查询
SpringBoot+Mybatis实现关联查询 今天学习了下Mybatis的动态查询,然后接着上次的Demo改造了下实现表的关联查询. 话不多说,开始今天的小Demo 首先接着上次的项目 https ...
- MyBatis学习——分步查询与延迟加载
声明:面试是遇到延迟加载问题,在网页搜索到此篇文章,感觉很有帮助,留此学习之用! 一.分步查询 分步查询通常应用于关联表查询,如:电商平台,查询订单信息时需要查询部分的用户信息:OA系统查询个人信息时 ...
- MyBatis实现模糊查询的几种方式
在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...
- MyBatis多对多查询
-------------------siwuxie095 MyBatis 多对多查询 以订单和商品为例,即 一个订单可 ...
- MyBatis之一对多映射查询sql配置文件。
学生---文章的模型一对多模型 学生student.java类 package com.bjsxt.sxf.po; import java.util.Date; import java.util.Li ...
随机推荐
- C# 泛型单例工厂
核心代码,线程安全 class SingletonFactory<T> where T : new() { private static T uniqueInstance; private ...
- IPFS 解决国内 docker mirror 封锁
IPFS 解决国内 docker mirror 封锁 内容仅用于研究,帮助开发者学习技术知识,以建设祖国 IPFS 技术是当前 Web3 的主要基建设施,提供去中心化存储,以及 libp2p 的去中心 ...
- Windows10 myeclipse 本地部署javaweb项目
Windows10 myeclipse 本地部署javaweb项目 一,先在网上寻找相关的项目,自己研究学习之后,进行二次开发 原文地址https://www.cnblogs.com/wydyzcnc ...
- AI的发展需要有应用和落地场景 —— 李开复:传统公司看不懂技术,大模型落地B端阻碍多
引自:https://baijiahao.baidu.com/s?id=1801826206644007472&wfr=spider&for=pc "我们投了七八家机器人企业 ...
- 近似最优的分层路径搜索(Near Optimal Hierarchical Path-Finding)—— A*算法的变种 —— 分层A*算法(HPA*)
论文地址: https://webdocs.cs.ualberta.ca/~mmueller/ps/hpastar.pdf Near Optimal Hierarchical Path-Finding
- AI大模型的技术之母 —— Attention Is All You Need —— Tansformer
论文地址: https://arxiv.org/abs/1706.03762
- ( Ubuntu环境 ) Vim下一键运行python代码
使用一个统一的顺手的编辑&编译环境对于写代码是一件事半功倍的事情, 说白了就是有个顺手的写代码的工具很重要,这里要说的工具就是Vim. 假设 Ubuntu 系统中已经安装 Vim : ...
- Google在放弃Tensorflow后推出Google版本的Pytorch框架 —— Jax
相关: 谷歌放弃TensorFlow了 虽然在某种上来说,Google已经放弃了Tensorflow框架,但是由于Tensorflow的历史地位所造成的遗留应用,因此Tensorflow框架已经处于维 ...
- 亲测可用的 Linux(Ubuntu18.04下)可运行的超级玛丽奥(gym-super-mario-bros)游戏的仿真环境—————————可用于强化学习算法的游戏模拟器环境
与前文中的俄罗斯方块游戏一样都是可以用于强化学习算法的游戏模拟器,这里介绍的是超级玛丽奥(gym-super-mario-bros)游戏的仿真环境. Python库,代码地址: https://git ...
- Ubuntu系统:NVIDIA显卡关闭图形显示 —— 彻底禁用NVIDIA GPU 的显示输出接口 —— ubuntu无桌面方式启动 —— NVIDIA显卡模式切换(显示模式切换为计算模式)
相关: ubuntu desktop改用无桌面方式启动 在使用Linux做异构计算等科学计算的时候一个常见的问题就是: NVIDIA显卡关闭图形显示 -- 彻底禁用NVIDIA GPU 的显示输出接口 ...