电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解Mybatis是如何把數據庫數據封裝到對象中的

瀏覽:121日期:2023-10-20 15:55:14
一、前言

接到一個問題,數據庫為Null的數據,傳遞到前端顯示為0。之前有了解過,持久層框架(mybatis)在把數據庫數據封裝到對象中,是利用對象的Setter方法,這個大家也都知道,因此我就在Setter方法嘗試,結果并不完全是這樣。下面我用例子演示。

二、準備階段1.數據表

詳解Mybatis是如何把數據庫數據封裝到對象中的

2.表對應的實體類

@Data@ApiModel('用戶賬號')public class User { @ApiModelProperty(value = '用戶id') Integer id; @ApiModelProperty(value = '密碼') String password; @ApiModelProperty(value = '用戶名') String name; @ApiModelProperty(value = '狀態') Integer type; public void setType(Integer type) { if (type == null) { this.type = 0; } else { this.type = type; } System.out.println('id為'+this.id+'的type = ' + this.type); } public void setName(String name) { this.name = name; System.out.println('id為'+this.id+'的name = ' + this.name); }}

這里用到的是lombok和swagger2注解

3.Controller層

@RestController@RequestMapping('/user')@Api(tags = 'UserController', description = '用戶管理')public class UserController { @Autowired private UserDao userDao; @GetMapping('/getUser/{id}') @ApiOperation('獲取用戶賬號') public User getUser(@PathVariable @ApiParam('用戶id') Integer id) { return userDao.selectOne(id); } @PostMapping('/setUser') @ApiOperation('添加用戶賬號') public void setUser(@RequestBody User user) { userDao.insert(user); }}

圖方便,我就將UserDao直接注入UserController層中,其中使用到spring boot注解加swagger2注解,稍后使用swagger2進行測試

4.Dao層

public interface UserDao{ @Select('select * from user where id=#{id}') User selectOne(Integer id); @Insert('insert into user values(null,#{name},#{password},#{type})') void insert(User user);}

注意:dao接口需要被掃描到才能完成映射

5.swagger2接口

詳解Mybatis是如何把數據庫數據封裝到對象中的

6.測試

1.先獲取id為1的用戶賬號:

swagger2結果:

詳解Mybatis是如何把數據庫數據封裝到對象中的

控制臺結果:

詳解Mybatis是如何把數據庫數據封裝到對象中的

說明這里都有使用Setter方法賦值

2.再獲取id為2的用戶賬號:

swagger2結果:

詳解Mybatis是如何把數據庫數據封裝到對象中的

控制臺結果:

詳解Mybatis是如何把數據庫數據封裝到對象中的

首先,swagger2結果中 type為null,而不是我們期望的0;再就是,控制臺也只打印出了一句話。這是怎么回事呢?別急,我們接著往下看。

3.我準備在實體類中做點改變,再測試獲取id為2的用戶賬號,如下:

改變后的實體類:

詳解Mybatis是如何把數據庫數據封裝到對象中的

其他地方不變,看結果。首先,swagger2結果:

詳解Mybatis是如何把數據庫數據封裝到對象中的

再看,控制臺結果:

詳解Mybatis是如何把數據庫數據封裝到對象中的

小結:通過上面一些測試結果,我斷言當數據庫數據為null時,框架不會調用該屬性的Setter方法為其賦值,而是會使用它的默認值。還有,從控制臺輸出順序可看出,調用Setter方法順序為數據表字段從左至右依次開始封裝。

在此,我又冒出了一個新的想法,我想測試前端傳到后端的json數據是不是也是這個結論。還是使用上面準備的環境開始測試:

注意:實體類中@ApiModelProperty(value = '狀態') Integer type;

先把swagger2中數據設置好

詳解Mybatis是如何把數據庫數據封裝到對象中的

先看控制臺結果:

詳解Mybatis是如何把數據庫數據封裝到對象中的

再看數據庫中數據:

詳解Mybatis是如何把數據庫數據封裝到對象中的

小結:跟我預想的結果有些出入,本以type為null也不會調用Setter方法。因此,spring boot在封裝前端傳來的json數據時,就算數據為null,也會去調用Setter方法。

三、結尾

到此這篇關于詳解Mybatis是如何把數據庫數據封裝到對象中的的文章就介紹到這了,更多相關Mybatis 數據封裝到對象 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 江苏皓越真空设备有限公司 | 罐体电伴热工程-消防管道电伴热带厂家-山东沃安电气 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 圈酒招商网【jiushuitv.com】_酒水招商_代理_加盟平台 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 韦伯电梯有限公司 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 周口风机|周风风机|河南省周口通用风机厂 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 外贸资讯网 - 洞悉全球贸易,把握市场先机| 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 箱式破碎机_移动方箱式破碎机/价格/厂家_【华盛铭重工】 | 温室大棚建设|水肥一体化|物联网系统 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 篷房[仓储-婚庆-展览-活动]生产厂家-江苏正德装配式帐篷有限公司 | 分轨 | 上传文件,即刻分离人声和伴奏| 防锈油-助焊剂-光学玻璃清洗剂-贝塔防锈油生产厂家 | 翰墨AI智能写作助手官网_人工智能问答在线AI写作免费一键生成 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 | 99文库_实习生实用的范文资料文库站| 泰安塞纳春天装饰公司【网站】 | 隔爆型防爆端子分线箱_防爆空气开关箱|依客思| 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 山东臭氧发生器,臭氧发生器厂家-山东瑞华环保设备 |