阿里Java开发手册~ORM 映射

1. 【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。
说明: 1 增加查询分析器解析成本。 2 增减字段容易与 resultMap 配置不一致。
2. 【强制】 POJO 类的 布尔 属性不能加 is ,而数据库字段必须加 is _ ,要求在 resultMap 中进行
字段与属性之间的映射。
说明: 参见定义 POJO 类以及数据库字段定义规定,在 <resultMap> 增加映射,是必须的。
MyBatis Generator 生成的代码中,需要进行对应的修改。
3. 【强制】不要用 resultClass 当返回参数,即使所有类属性名与数据库字段一一对应,也需
要定义 反过来,每一个表也必然有一个与之对应。
说明: 配置映射关系,使字段与 DO 类解耦,方便维护。
4. 【强制】 sql. xml 配置参数使用: #{} # param # 不要使用 ${} 此种方式容易出现 SQL 注入。
5. 【强制】 iBATIS 自带的 queryForList(String statementName , int start , int size) 不推
荐使用。
说明: 其实现方式是在数据库取到 statementName 对应的 SQL 语句的所有记录,再通过 subList
start , size 的子集合。
正例: Map<String, Object> map = new HashMap<String, Object>();
map.put("start", start);
map.put("size", size);
6. 【强制】不允许直接拿 HashMap Hashtable 作为查询结果集的输出。
说明: resultClass=”Hashtable” ,会置入字段名和属性值,但是值的类型不可控。
7. 【强制】更新数据表记录时,必须同时更新记录对应的 gmt _ modified 字段值为当前时间。
8. 【推荐】不要写一个大而全的数据更新接口,传入为 POJO 类,不管是不是自己的目标更新字
段,都进行 update table set c1=value1,c2=value2,c3=value3; 这是不对的。执行 SQL
时,不要更新无改动的字段,一是易出错 二是效率低 三是增加 binlog 存储。
9. 【参考】@ Transactional 事务不要滥用。事务会影响数据库的 QPS ,另外使用事务的地方需
要考虑各方面的回滚方案,包括缓存回滚、搜索引擎回滚、消息补偿、统计修正等。
10. 【参考】 < isEqual > 中的 compareValue 是与属性值对比的常量,一般是数字,表示相等时带
上此条件 < isNotEmpty > 表示不为空且不为 null 时执行 < isNotNull > 表示不为 null 值时
执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDF添加水印以及防止被删除、防止编辑与打印

方法记录如下&#xff1a; 1、添加水印&#xff1b; 2、打印输出成一个新的pdf&#xff1b; 3、将pdf页面输出成一张张的图片&#xff1a;&#xff08;福昕pdf操作步骤如下&#xff09; 4、将图片组装成一个新的pdf&#xff1a;&#xff08;福昕pdf操作步骤如下&#xff09;…

Android 任务调度 WorkManager 和 JobScheduler 的使用

在过去&#xff0c;常常使用后台Service来执行定时任务。虽然Service是执行后台任务的一种方式&#xff0c;但自Android 8.0&#xff08;API级别26&#xff09;以后&#xff0c;Google推荐使用更高效和系统友好的方式来执行定时任务&#xff0c;例如JobScheduler和WorkManager。…

flask实现一个登录界面

flask实现一个登录界面 基础的Flask项目结构 forms.py&#xff1a;定义登录表单和表单字段的文件。templates/login.html&#xff1a;用于渲染登录表单的 HTML 模板文件。routes.py&#xff1a;定义应用的路由和视图函数的文件。__init__.py&#xff1a;创建并初始化 Flask 应…

Java Spring和Spring集成Mybatis

0目录 1.Spring 2.Spring集成Mybatis 1.Spring 特性 IOC&#xff1a;控制反转 AOP&#xff1a;面向切面 Spring组成部分 在SMM中起到的作用&#xff08;粘合剂&#xff09; Spring理念 OOP核心思想【万物皆对象】 Spring核心思想【万物皆Bean组件】 Spring优势 低侵入式 …

MySQL学习笔记 ------ 排序查询

一、语法 SELECT 查询列表 FROM 表名 【WHERE 筛选条件】 ORDER BY 排序列表 【ASC}DESC】&#xff1b;#支持多个排序条件&#xff0c;以逗号分隔 二、特点 1、ASC &#xff1a;升序&#xff0c;如果不写默认升序 DESC&#xff1a;降序 2、排序列表 支持 单个字段…

基于新浪微博海量用户行为数据、博文数据数据分析:包括综合指数、移动指数、PC指数三个指数

基于新浪微博海量用户行为数据、博文数据数据分析&#xff1a;包括综合指数、移动指数、PC指数三个指数 项目介绍 微指数是基于海量用户行为数据、博文数据&#xff0c;采用科学计算方法统计得出的反映不同事件领域发展状况的指数产品。微指数对于收录的关键词&#xff0c;在指…

Java运算符

大体上&#xff0c;与C语言差不多&#xff0c;不同的地方&#xff0c;我用红色字体标注了 算术运算符 1. 基本四则运算符&#xff1a;加减乘除模 ( - * / %) int a 10 ; int b 20 ; System . out . println ( a b ); // 30 System . out . println ( a - b…

数据结构--线性表2-1

目录 一、线性结构的定义 二、线性表的表示 三、顺序表的实现&#xff08;或操作&#xff09; 1、修改&#xff1a; 2、插入&#xff1a; 四、顺序表的运算效率分析&#xff1a;时间效率分析&#xff1a; 一、线性结构的定义 若结构时非空有限集&#xff0c;则有且仅有一个…

8 个线程池最佳实践和坑!使用不当直接生产事故!!

这篇文章我会简单总结一下我了解的使用线程池的时候应该注意的坑以及一些优秀的实践。拿来即用&#xff0c;美滋滋&#xff01; 1、正确声明线程池 线程池必须手动通过 ThreadPoolExecutor 的构造函数来声明&#xff0c;避免使用Executors 类创建线程池&#xff0c;会有 OOM …

线性代数的学习和整理2:用EXCEL进行矩阵计算

目录 矩阵的各种概念 矩阵的维数 矩阵的基底 矩阵的列向量 矩阵的平直概念 矩阵的乘法的映射图 矩阵的秩 矩阵的乘法具有不可交换性 矩阵的模 矩阵的各种概念 矩阵的维数 &#xff08;a1,a2&#xff09;是2维的&#xff08;a1,a2,a3&#xff09;是3维的&#xff08;a…

一文复习Java基础面试知识

申明&#xff1a;本人于公众号Java筑基期&#xff0c;CSDN先后发当前文章&#xff0c;标明原创&#xff0c;转载二次发文请注明转载公众号&#xff0c;另外请不要再标原创 &#xff0c;注意违规 Java基础知识 1、基本数据类型 在Java中&#xff0c;共有八种基本数据类型&…

基于深度学习淡水鱼体重智能识别模型研究

工作原理为&#xff1a;首先对大众淡水鱼图片进行数据清洗并做标签分类&#xff0c;之后基于残差网络ResNet50模型进行有监督的分类识别训练&#xff0c;获取识别模型。其次通过搭建回归模型设计出体重模型&#xff0c;对每一类淡水鱼分别拟合出对应的回归方程&#xff0c;将获…

Ubuntu ImportError: No module named ‘_tkinter‘问题解决方式

尝试安装tkinter模块.出现以下问题 sudo pip3 install tkinter [sudo] password for Ns3: DEPRECATION: Python 3.5 reached the end of its life on September 13th, 2020. Please upgrade your Python as Python 3.5 is no longer maintained. pip 21.0 will drop support …

go 排序 接口排序

Go sort 包主要提供了三种排序能力&#xff1a; &#xff08;1&#xff09;基本类型切片排序&#xff1b; &#xff08;2&#xff09;任意类型切片排序 &#xff1b; &#xff08;3&#xff09;任意数据结构排序 (实现接口方法排序) 一、基本类型切片排序 为了便于对常用数据…

Android OpenGL ES Camera2 实现实时抠图效果

前面文章人像抠图 + OpenGL ES 还能这样玩?没想到吧,我们介绍了利用人像抠图算法生成的 mask 图,然后结合 OpenGL 可以产生一些有趣的效果。 抠图技术应用很广泛,比如很多手机的相机自带“人像留色”滤镜:人体区域保留彩色,人体区域之外灰度化。所以人像留色的关键技术在…

java后端接口实现302跳转

正常来说&#xff0c;接口返回String是"redirect:"url或者“r:”url就能实现前端接收到返回后自动302.但是我在自己的一个项目中这么写了之后发现返回的是纯字符串&#xff0c;很奇怪。 最后发现&#xff0c;如果你的controller层有RestController注解&#xff0c;那…

【vue】Vue中解读关于this.$emit()的用法:

文章目录 一、Vue.sync修饰符与this.$emit(‘update:xxx‘, newXXX)二、this.$emit()传多个参数 一、Vue.sync修饰符与this.$emit(‘update:xxx‘, newXXX) 二、this.$emit()传多个参数

Qt Core学习日记——第八天QMetaObject(下)

QMetaObject::normalizedType 将名称规范化。 例如&#xff1a; QByteArray normType QMetaObject::normalizedType(" int const *"); // normType is now "const int*" QMetaObject::connect(const QObject *sender, int signal_index, const QObject…

Langchain 的 ConversationSummaryBufferMemory

Langchain 的 ConversationSummaryBufferMemory ConversationSummaryBufferMemory 在内存中保留最近交互的缓冲区&#xff0c;但不仅仅是完全刷新旧的交互&#xff0c;而是将它们编译成摘要并使用两者。但与之前的实现不同的是&#xff0c;它使用令牌长度而不是交互次数来确定何…

Jmeter性能测试配置

Jmeter检查点/断言 在上一章节中&#xff0c;我们通过调试脚本&#xff0c;通过人工验证脚本可以完成业务功能&#xff0c; 但在性能测试中&#xff0c;我们希望能通过自动验证脚本是否完成业务功能&#xff0c;在Jmeter 中我们可以通过检查点&#xff0c;也就是断言来实现自动…