MyBatis学习之创建MyBatis工程
准备工作
mybatis数据库和user表
建库
12drop database if exists mybatis;create database mybatis;
建表
12345678910111213drop table if exists user;create table user( id bigint auto_increment comment '编号' primary key, user_name varchar(256) null comment '姓名', user_account varchar(512) null unique comment '账号', user_password varchar(512) null comment '密码', user_sex varchar(10) null comment '性别', user_age int ...
一些特殊SQL使用Mybatis的#{}和${}注意点
Mybatis对JDBC进行了进一步封装,使得我们可以更加便捷的使用Java操作数据库。Mybatis获取参数值有两种方式:#{}和${}
在大部分情况下,#{}和${}都能相互替代,使用两者之一即可,更加推荐使用#{},因为可以防止SQL注入问题,但是由于#{}和${}本质上的不同,部分SQL语句使用#{}和${}需要格外注意
#{}和${}本质区别
#{}本质上是占位符赋值,为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号
${}本质上是字符串拼接,为字符串类型或日期类型的字段进行赋值时,需要手动加单引号
模糊查询
这个场景下,使用#{}和${}都能达到目的,但是用法稍有不同
Mapper接口
1List<User> selectLike(@Param("likeString" ...
JDBC连接Mysql的几种方式
测试环境说明
mysql数据库:jdbc:mysql://localhost:3306/test
IDE:IDEA 2022
JDK:JDK8
mysql:mysq 5.7
JDBC:5.1.37
第一种方式
使用静态加载驱动方式,连接mysql
这种方式灵活性差,依赖性强
12345678910111213141516public void connection01() throws SQLException { // 注册驱动 Driver driver = new Driver(); // 创建Properties对象,用于保存mysql账号和密码键值对 Properties properties = new Properties(); properties.setProperty("user", "root"); properties.setProperty("password", "123456"); String url = "j ...
mysql命令补充
查看所有存储引擎
1show engines;
查看mysql版本
1select version();
查看变量信息
1show variables;
查看数据库中表的状态
会展示指定数据库中所有表的状态信息
1show table status;
在服务器上创建git仓库
在服务器上创建git仓库
环境准备
服务器:阿里云轻量应用服务器
系统版本:ubuntu20.04.1 LTS
安装git
检查git是否安装
1git
如果出现以下信息,说明安装了git
12345678910111213141516171819202122232425262728293031323334353637383940414243444546usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=< ...
Ubuntu20.04安装Docker
Ubuntu20.04安装Docker
官方安装地址:Install Docker Engine on Ubuntu | Docker Documentation
卸载旧版本
1sudo apt-get remove docker docker-engine docker.io containerd runc
使用仓库安装Docker
1sudo apt-get update
12345sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
1sudo mkdir -p /etc/apt/keyrings
1curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
123echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/ ...
深入理解HashMap
modCount变量的作用
学习资源汇总
前言
这篇博客主要汇总了本人平时收集的一些自认为比较优质的学习资源,方便本人以及看到这篇文章的朋友,会不定期更新😊。
资源汇总
Java
Java 面试指南
bugstack 虫洞栈
美团技术团队
Java全栈知识体系
Java突击队
Golang
前景 · Go语言中文文档
基础知识 · Go · 看云
综合
小林Coding
笔试面试知识整理
CS-Notes 面试笔记
工具
博客封面图片生成
Docker空镜像原因排查
问题描述
最近项目使用Docker构建镜像时总是会出现空镜像,如下图所示,其中REPOSITORY和TAG名称都为<none>,非常好奇。
查找空镜像
执行命令
1docker images -f dangling=true
清理空镜像
执行以下命令
1docker rmi $(docker images -f "dangling=true" -q)
或者
1docker image prune
注意-a参数不仅会删除dangling镜像,还会删除所有unuse镜像,这里仅仅是删除dangling镜像。
再次查看Docker镜像,发现空镜像都被清除了
问题复现
由于空镜像是项目镜像构建时出现的,所以这里重复之前构建时的执行的动作。
1docker build -t net-admin:latest .
本次构建时没有发现空镜像
重复构建之后,没有发现空镜像,很奇怪,待下次问题复现后记录原因。
python语法学习
变量与赋值
python是弱数据类型语言,变量可以接收任何类型的数值,数据是什么类型,变量就是什么类型
赋值即定义变量,变量必须先赋值后使用
基本赋值
赋值演示
1234## 变量与赋值x = 3y = 5.2print(x, y)
输出
13 5.2
链式赋值
123# 链式赋值x = y = z = 7print(x, y, z)
输出
17 7 7
解包赋值
123# 解包赋值a, b = 100, 200print(a, b)
输出
1100 200
解包赋值可以实现两个变量值的交换
解包赋值交换演示
12345# 解包赋值交换a = 3b = 4a, b = b, aprint(a, b)
输出
14 3
输入输出
输入函数input
def input(__prompt);
__prompt为提示信息,可以省略、
基本输入
样例演示
123# 输入输出var = input("我将打印你所输入的内容: ")print(var)
输出
12我将重复你所输入的内容: hello, worldhello, world
不论输入什么,input都接收 ...