首页 > 编程语言 >数据查询解决列名和java对象属性名对不上——三种方法

数据查询解决列名和java对象属性名对不上——三种方法

时间:2023-08-08 10:12:30浏览次数:33  
标签:java car 列名 brand 查询 对不上 id 属性

问题描述:

当使用查询语句时,返回来的数据出现null值。

下面是数据库映射文件代码查询语句:

<select id="selectCarById" resultType="com.powernode.mybatis.pojo.Car">
select * from t_car where id = #{id}
</select>

下面是返回查询返回数据

 

原因是:

查询结果集的列名:id, car_num, brand, guide_price, produce_time, car_type    这里结果集的列名就是数据库中字段的名称

Car类的属性名:id, carNum, brand, guidePrice, produceTime, carType   这里属性名就是实体类中定义的名称

通过上面图片返回的数据观察看,只有id和brand是一致的,其他字段名和属性名对应不上,所以返回null。

解决以上问题有三种方法:

1、使用as起别名

<select id="selectCarAll" resultType="com.powernode.mybatis.pojo.Car">
<!--记得使用as起别名,让查询结果的字段名和java类的属性名对应上。-->
select
id, car_num as carNum, brand, guide_price as guidePrice, produce_time as produceTime, car_type as carType
from t_car
</select>

2、使用resultMap进行结果映射

<!--
resultMap:
id:这个结果映射的标识,作为select标签的resultMap属性的值。
type:结果集要映射的类。可以使用别名。
-->
<resultMap id="carResultMap" type="car">   <!--对象的唯一标识,官方解释是:为了提高mybatis的性能。建议写上。-->   <id property="id" column="id"/>   <result property="carNum" column="car_num"/>   <!--javaType用来指定属性类型。jdbcType用来指定列类型。一般可以省略。-->   <result property="brand" column="brand" javaType="string" jdbcType="VARC   HAR"/>   <result property="guidePrice" column="guide_price"/>   <result property="produceTime" column="produce_time"/>   <result property="carType" column="car_type"/> </resultMap> <!--resultMap属性的值必须和resultMap标签中id属性值一致。--> <select id="selectAllByResultMap" resultMap="carResultMap">   select * from t_car </select>

3、开启驼峰命名自动映射(最常用也最简单)

使用这种方式的前提是:属性名遵循Java的命名规范,数据库表的列名遵循SQL的命名规范。
Java命名规范:首字母小写,后面每个单词首字母大写,遵循驼峰命名方式。
SQL命名规范:全部小写,单词之间采用下划线分割。
比如以下的对应关系:

如何启用该功能,在mybatis-config.xml文件中进行配置:(这是在SSM项目中使用方法,springboot项目)

<configuration>
    <!-- 开启驼峰映射 ,为自定义的SQL语句服务-->
    <!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false-->  
    <settings>
      <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

在springboot项目的yml配置文件中:(这里使用的是mybatis-plus,mybatis同理)

 

标签:java,car,列名,brand,查询,对不上,id,属性
From: https://www.cnblogs.com/xdqx/p/17613360.html

相关文章

  • java日常.md
    JavaSpringSpring中进行Junit测试时,PageHelper未被消耗如果mapper被mock掉,会导致Mapper之前的PageHelper的线程存储未被消耗。导致后续出现错误。//源码//.....voidq(){PageHelper.startPage(1,1); someMapper.query();}//.....//问题单测@Mockpri......
  • JavaScript 基础(1) - 笔记
    1JavaScript基础1.1JavaScript是什么1.JavaScript(是什么?)是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。2.作用(做什么?)网页特效(监听用户的一些行为让网页做出对应的反馈)表单验证(针对表单数据的合法性进行判断)数据交互(获取后台的数据,渲染到前端)服务端编程(node.js......
  • Java HTTP请求封装的方法及实现
    JavaHTTP请求封装的方法及实现在Java开发中,我们经常需要与服务器进行数据交互,发送HTTP请求是其中常见的一种方式。为了简化开发过程,我们可以封装HTTP请求的方法,让调用者只需要关注业务逻辑而不用关心底层的细节实现。本文将介绍一种基于Java的HTTP请求封装方法及其实现。JavaHT......
  • Java HTTP请求 如何获取并解析返回的HTML内容
    JavaHTTP请求如何获取并解析返回的HTML内容在Java开发中,经常会遇到需要获取网页内容的情况。而HTTP请求是实现这一目标的常用方法之一。本文将介绍如何使用Java进行HTTP请求,并解析返回的HTML内容。JavaHTTP请求如何获取并解析返回的HTML内容首先,我们需要导入相关的Java类库:j......
  • Java HTTPS如何加载证书
    JavaHTTPS如何加载证书在进行Java编程开发中,经常会涉及到使用HTTPS协议进行安全通信。而HTTPS的安全性是建立在数字证书的基础上的,因此在Java中加载证书是一个非常重要的步骤。本文将围绕“JavaHTTPS如何加载证书”这一主题,为大家介绍一种简洁、高效的加载证书的方法。JavaHTTP......
  • JavaSwing界面跳转技巧
    JavaSwing界面跳转技巧在JavaSwing应用程序中实现流畅的用户界面是非常重要的一部分。一个好的用户界面不仅需要美观的设计,还需要良好的交互体验。其中,界面跳转是用户体验的重要组成部分。本文将为你介绍JavaSwing界面跳转技巧,帮助你设计出流畅且易用的用户界面。JavaSwing界面......
  • Java Spring MVC 图片上传操作详解
    JavaSpringMVC图片上传操作详解在现代的Web开发中,图片上传是一个非常常见的需求。而JavaSpringMVC框架则是JavaWeb开发中常用的框架之一。本文将介绍如何在JavaSpringMVC框架中实现图片上传操作。JavaSpringMVC图片上传操作详解1.创建文件上传表单首先需要在前端页面......
  • JavaWeb短信验证的实现方法
    JavaWeb短信验证的实现方法短信验证是现代应用程序中常用的一种用户身份验证方式。在JavaWeb开发中,我们可以通过一些简单而有效的方法实现短信验证功能。本文将介绍如何使用Java编程语言来实现JavaWeb短信验证。JavaWeb短信验证的实现方法首先,我们需要一个短信服务提供商,比如阿......
  • JavaWebSocket心跳机制详解
    JavaWebSocket心跳机制详解WebSocket是一种在Web浏览器和服务器之间进行全双工通信的协议,它提供了一种简单而强大的方式来实现实时数据传输。在使用WebSocket时,心跳机制是非常关键的,它能够保持连接的稳定性并及时发现连接的异常。本文将详细解释JavaWebSocket心跳机制的实现原理......
  • Java WebService如何生成PDF文件
    JavaWebService如何生成PDF文件在Web应用开发中,生成PDF文件是一项非常常见的需求。本文将介绍如何使用JavaWebService来生成PDF文件。JavaWebService如何生成PDF文件一、概述PDF(PortableDocumentFormat)是一种独立于应用软件、硬件和操作系统的文件格式,它能够保留文档的格......