Mybatis加载策略&注解开发
1. Mybatis加载策略1.1 什么是延迟加载?问题
通过前面的学习,我们已经掌握了Mybatis中一对一,一对多,多对多关系的配置及实现,可以实现对象的关联查询。实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的订单信息。此时就是我们所说的延迟加载。
举个栗子
在一对多中,当我们有一个用户,它有个100个订单
在查询用户的时候,要不要把关联的订单查出来?
在查询订单的时候,要不要把关联的用户查出来?
回答
在查询用户时,用户下的订单应该是,什么时候用,什么时候查询。
在查询订单时,订单所属的用户信息应该是随着订单一起查询出来。
延迟加载
就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载。
优点
先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表 速度要快。
缺点
因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时 间,所以可能造成用户等待时间变长,造成用户体验下降。
在多表中:
一对多,多对多:通常情况下采用延迟加载
...
右键打开cmd
前言
前面再注册表修改了cmd默认地址,后来发现这样并不好,影响了其他地方的使用。还不如配置可以让windows右键在当前位置打开终端.
编辑配置按shift右键只有Powershell,所以需要自己配置cmd的
新建文件cmd.txt键入下列内容,@=为右键显示文字
1234567891011121314151617181920212223242526272829Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere]@="在此处打开命令窗口""Icon"="cmd.exe"[HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere\command]@="cmd.exe /s /k pushd \"%V\""[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere]@=&q ...
Mybatis配置深入
1. Mybatis高级查询1.1 ResutlMap属性建立对象关系映射
resultType 如果实体的属性名与表中字段名一致,将查询结果自动封装到实
ResutlMap 如果实体的属性名与表中字段名不一致,可以使用ResutlMap实现手动封装到实体类中
1)编写UserMapper接口
123public interface UserMapper { public List<User> findAllResultMap();}
2)编写UserMapper.xml
123456789101112131415161718192021<!-- 实现手动映射封装 resultMap id="userResultMap" 此标签唯一标识 type="user" 封装后的实体类型 <id column="uid" property="id"></id> 表中主键字段封装 column="uid" 表中的字段名 prope ...
更新hexo版本
前言
昨天使用vue 3发现node版本太老,但这个版本是hexo需要的版本。只更新node的话,hexo生成的public会全部为空,所以更新下新版本hexo。这次是直接手动更新,重新初始化hexo,因此做手动备份
备份关键文件之前源文件是推送在github,这边先本地把环境重构之后再推送,我们这边就是把个人的配置的部分都备份一下其他都不要。
.git 可以先复制一份到时候就可以直接提交
source 不用说文章什么都在里面
themes 我们配置的主题样式
.gitignore 其实不用之后新版本的hexo初始化也有
_config.yml 页面的各种通用属性配置(头像等等)
README.md 仓库的说明,不是关键的我这边留着
准备新hexo安装14版本node
配置依赖库镜像
1npm config set registry https://registry.npm.taobao.org
安装hexo
1npm install -g hexo-cli
查看版本信息
1hexo -v
初始化博客
12hexo init myblogcd myblog
安装依赖 ...
hexo多端同步
前言
使用Hexo在github搭建的博客,博客作为一个单独的GitHub仓库存在,但是这个仓库只有生成的静态网页文件,并没有Hexo的源文件,如果要换电脑或者在另外的电脑使用,就需要备份hexo环境文件。
本地环境上传这里就直接使用你静态文件部署的仓库,在这个仓库下用另外一个分支hexo来存,因为我们需要进行拉取和推送的只是我们的源文件,生成的静态文件只是单方向的部署。所以我们把hexo分支设置为默认分支更方便。
刚创建是一个空分支,我们在本地clone下来把.git文件夹放到项目后即可去push我们的源文件到hexo分支,之后我们在另一台电脑要用clone下来即可
hexo项目里是有一个.gitignore的文件的,里面就是过滤git推送的文件,一些是环境文件生成的不用提交的会过滤掉
新电脑环境准备
安装git
安装node
拉取博客环境,拉下来是没有node_modules的被过滤了
执行 npm i 进行安装依赖2.5配置node环境变量到博客目录下的node_modulesF:\WorkSpace\blog\Jasper-zh.github.io\node_modul ...
Linux安装mysql8问题
昨天还心想11点准时睡觉结果就遇到了问题搞到凌晨2点差点不用睡了😢,有必要记录一下
这次是在一台CentOS安装Mysql数据库,大家可能都直接用rpm或者如果是Debian系统就是apt的方式来去安装mysql。这个确实会比较省心但安装的基本上是老版本5.7这种最后一个开源版本
这里是在官网下载8版本的linux通用包进行安装,其实关于这个的安装步骤我在另一篇文章有写。按照这篇文章的步骤会减少很多问题,
但昨天遇到了新问题
图上是已经解决得时候(主要问题不是图上的端口前面先解决了后面才会有),开启mysql.server时问题提示就是这个
12Starting MySQL..The server quit without updating PID file (/usr/local/mysql/var/MyServer.pid). ... failed!
或
12Starting MySQL.Logging to '/etc/mysql/localhost.localdomain.err'..... ERROR! The server quit witho ...
修改cmd初始地址
由于自己平时hexo使用的还是比较频繁总是切换麻烦,所以更改一下cmd的默认地址为hexo地址就随便记录下
这是我们cmd的默认地址,换地址有几种方式。这里不用快捷方式的。改开始命令栏cmd进的窗口的地址,而不是某个cmd快捷方式的地址。
打开注册表win+r 输入 regedit
地址栏键入:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
这里我已经创建了AutoRun的配置,开始是没有的。空白处右键新建字符串,名称AutoRun数值数据cd /d 你的地址
保存后关掉cmd,重新打开就已经更改了地址了
Mybatis基本应用
1. 框架简介1.1 三层架构软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:
持久层:主要完成与数据库相关的操作,即对数据库的增删改查。因为数据库访问的对象一般称为Data Access Object(简称DAO),所以有人把持久层叫做DAO层。
业务层:主要根据功能需求完成业务逻辑的定义和实现。因为它主要是为上层提供服务的,所以有人把业务层叫做Service层或Business层。
表现层:主要完成与最终软件使用用户的交互,需要有交互界面(UI)。因此,有人把表现层称之为web层或View层。
三层架构之间调用关系为:表现层调用业务层,业务层调用持久层。各层之间必然要进行数据交互,我们一般使用java实体对象来传递数据
1.2 框架1.2.1 什么是框架?框架就是一套规范,既然是规范,你使用这个框架就要遵守这个框架所规定的约束。框架可以理解为半成品软件,框架做好以后,接下来在它基础上进行开发。
1.2.2 为什么使用框架?框架为我们封装好了一些冗余,且重用率低的代码。并且使用反射与动态代理机制,将代码实现了通用性,让 开发人员把精力专注在核 ...