- 博客(64)
- 收藏
- 关注
原创 工厂模式
核心本质:实例化对象 不使用new 关键字,而用工厂方法将选择实现类,创建对象统一管理和控制。从而分离创建者和调用者。三种工厂模式简单工厂模式:用来生产同一等级结构中的任意产品(增加新产品需要修改已有代码)工厂方法模式:用来生产同一等级结构中的固定产品(增加产品 会生成一个工厂类)抽象工厂模式:围绕一个超级工厂来创建其他工厂,该超级工厂是 其他工厂 的生产工厂。根据设计原则,使用工厂方法模式。但实际开发里大多使用简单工厂模式,有着代码量相对少,类结构简单,易于管理的特点。.
2020-08-31 14:45:46
185
原创 OOP七大设计原则
OOP七大设计原则开闭原则:对扩展开放,对修改关闭里氏替换原则:继承 必须保证 父类中的性质在子类中仍然成立依赖倒置原则:面向接口编程,而不面向实现类单一职责原则:控制 类的 粒度的大小 ,增强内聚性,减少耦合接口隔离原则:要为各个类提供所需的专用接口迪米特法则:迪米特法则(Law of Demeter)又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。英
2020-08-31 09:03:37
219
原创 MySQL preparedstatement对象
import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;public class TestInsert { public static void main(String[] args) { Connection conn= null; Prep...
2020-04-14 21:34:17
204
原创 MySQL 封装数据库连接类及statement对象详述
封装工具类db.propertiesdriver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/csgo?useUnicode=true&characterEncoding=utf8&useSSL=true&&serverTimezone=GMT%2B8username=rootpasswo...
2020-04-13 14:55:28
150
原创 MySQL 数据库驱动和JDBC
驱动:声卡,显卡,数据库。。。程序会通过数据库驱动和数据库 交互JDBCSUN公司为了简化开发人员的统一操作,提供了一个java操作数据库的规范,叫做JDBC,这些规范的实现由各个厂商去做,对于开发人员,只需要掌握JDBC接口的操作即可java.sqljavax.sql还需要导入一个数据库驱动包第一个jdbc程序创建一个普通项目新建一个lib文件夹导入数据库驱动编写测...
2020-04-13 11:38:56
345
原创 数据库三大范式
为什么需要数据规范化信息重复更新异常插入异常,无法正常显示信息删除异常,丢失有效信息三大范式第一范式(1NF) 原子性:保证每一列不可再分上图不符合第一范式,因为家庭信息和学习信息都可再分,拆分后:第二范式(2NF)前提:满足第一范式 要求:每张表只描述一件事情第三范式(3NF)前提:满足第一范式和第二范式 要求:确保数据表中的每一列数据都与主键直接相关,而非...
2020-04-12 22:20:53
175
原创 MySQL 规范数据库设计
为什么需要设计数据库当数据库很复杂时,需要设计糟糕的数据库设计数据冗余,浪费空间插入和删除很麻烦(屏蔽物理外键)程序性能差良好的数据库设计数据紧凑,节省空间保证数据的完整性方便开发系统软件开发中数据库的设计分析需求:分析业务和需要处理的数据的需求概要设计:设计关系图 E-R图个人博客设计数据库的步骤收集信息,分析需求用户表(用户登录注册注销,用户的个...
2020-04-12 18:17:16
112
原创 MySQL 备份
为什么要备份保证数据不丢失数据转移 A到BMySQL数据库备份的方式直接拷贝物理文件在可视化工具(sqlyog , navicat等)中导出使用命令行指令 mysqldumpmysqldump -hlocalhost -uroot -p123456 csgo >D:/csgo.sqlmysqldump -h服务器 -u用户 -p密码 数据库名 [表名1,表名2……...
2020-04-12 17:08:55
110
原创 MySQL 数据库用户管理
权限管理用户管理系统用户表:mysql数据库下的user表,本质就是对这张表增删改查创建用户create USER wrq IDENTIFIED by '123456'重命名用户RENAME user wrq to wrq2用户授权,授予全部权限,但是这个用户不能给其他用户授权GRANT all PRIVILEGES on *.* to wrq2查看指定用户的权限...
2020-04-11 20:21:13
116
原创 MySQL 索引原则
索引不是越多越好不要对经常变动的数据加索引小数据量的表不需要加索引索引一般加在常用来查询的字段上索引的数据结构 hash 索引 Btree(InnoDB默认的)...
2020-04-11 16:07:16
89
原创 SQL编程创建100万条数据测试索引
-- 测试索引 建表并用函数插入100万条数据CREATE TABLE `app_user`(`id` BIGINT(20) UNSIGNED not null auto_increment,`name` VARCHAR(50) DEFAULT '' COMMENT '用户昵称',`email` VARCHAR(50) not null COMMENT '用户邮箱',`phone` VA...
2020-04-11 15:59:17
793
原创 MySQL 索引介绍及索引分类
索引的分类mysql官方对索引的定义: 索引(index)是帮助mysql高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构主键索引 PRIMARY KEY 唯一标识,主键不可重复,且只能有一列能作为主键唯一索引 UNIQUE KEY 避免重复的列出现,多个列都可以标为唯一索引常规索引 KEY或者INDEX 默认的index 或key关键字设置全文索引 F...
2020-04-11 13:39:40
168
原创 MySQL 测试事务实现转账
MySQL 默认开启事务自动提交的关闭自动提交开启一个事务假如成功就提交,失败就回滚成功了,持久化到数据库开启自动提交-- MySQL 默认开启事务自动提交的set autocommit = 0 -- 关闭事务自动提交set autocommit = 1 -- 开启事务自动提交-- 手动处理事务-- 事务开启START TRANSACTION -- 表示一个事务的...
2020-04-11 11:43:06
477
原创 mysql 事务
什么是事务?要么都成功,要么都失败A给B转账A减钱,B一定要加钱,不能A转了而B没收到ACID原则原子性,一致性,持久性,隔离性例如A给B转账A 1000元 B 500元原子性:A转出200 和B转进200必须一起执行,绑在一起操作,转完后A800 B700一致性:最终A和B总钱数是1500,不会改变持久性:事务一旦提交就不可逆,A要转给B200元,如果操作之前服务器断电了...
2020-04-11 11:04:17
107
原创 MySQL select小结
select [distinct] 字段... [as 别名]from 表1 [as 别名][inner|left|right] join 表2 [as 别名]on 字段1 = 字段2(可以继续联表)where 子句group by 分组字段having 过滤分组后的信息,条件和where相同,位置不同,可以跟聚集函数order by 排序字段 ASC|DESClimit fro...
2020-04-11 10:48:17
90
原创 数据库级别的MD5加密
什么是MD5?主要增强算法的复杂度和不可逆性md5算法不可逆,特定值MD5值是一样的MD5破解的原理,背后有一个字典,加密后的值对应加密前的值CREATE TABLE md5table(`id` int(3) NOT NULL ,`name` VARCHAR(10) not null,`pwd` VARCHAR(20) not null,PRIMARY KEY(`id`))E...
2020-04-10 22:10:14
285
原创 MySQL 聚集函数(常用)
函数描述count()计数sum()求和avg()平均值max()最大值min()最小值……count()查询一个表有多少记录SELECT count(*) FROM players -- 不会忽略null值,本质是计算行数SELECT count(`name`) FROM players -- count(字段名),...
2020-04-10 21:06:15
694
原创 MySQL 函数,不常用的
SELECT ABS(-9) -- 返回绝对值SELECT CEILING(2.2) -- 向上取整SELECT FLOOR(2.2) -- 向上取整SELECT RAND() -- 返回0-1随机数SELECT SIGN(X) -- 返回一个数的正负,正返回1,负返回-1SELECT CHAR_LENGTH('反恐精英之生死决夺') -- 返回一个字符串的长度SELECT CONC...
2020-04-10 16:48:38
123
原创 MySQL 子查询和嵌套查询
子查询:where子句里套一个查询查询在西安服里 游玩过的玩家 的昵称SELECT p.`name` FROM players as pWHERE `id` = (SELECT `p_id` FROM `server` as s WHERE s.`name`='西安服')...
2020-04-10 11:33:58
213
原创 MySQL 分页和排序
排序:升序asc 降序desc查询玩家的昵称和技术评分并按升序排列SELECT `name` , `score`FROM playersORDER BY `score` ASC查询地图名称和地图组编号。并按降序排列SELECT `mapname` , groupidFROM `maps`ORDER BY `groupid` DESC分页目的:缓解数据库的压力,给用户...
2020-04-10 10:50:07
1756
原创 MySQL 自连接
自连接:自己的表和自己的表连接,核心是一张表拆为两张一样的表即可父类groupidparentid2荒漠迷城3炙热沙城25炼狱小镇子类groupidparentidmapname43死城之谜63核子危机75殒命大厦82列出停放站操作:查询父类对应的子类关系父类子类...
2020-04-09 22:13:08
337
原创 MySQL 联表查询 join ON
根据下面两表进行操作查询玩家昵称,玩家所在服务器 和 玩家email操作描述inner join如果表中至少有一个匹配,就返回行left join会返回左表中所有的值,即使右表中没有匹配right join会返回右表中所有的值,即使左表中没有匹配SELECT s.`name` as '服务器名称',p.`name` AS '玩家昵称',p.em...
2020-04-09 18:46:06
343
原创 MySQL 模糊查询
运算符语法描述IS NULLa IS NULL返回true,falseIS NOT NULLa IS NOT NULL返回true,falseBETWEEN …AND…a BETWEEN b AND c返回true,falseLIKEa LIKE b如果a匹配到b,则为真INa IN (b,c,d,e…)a在b c d e其中的某个...
2020-04-09 16:35:00
140
原创 MySQL where子句的逻辑运算符
逻辑运算符与或非运算符语法描述and &&a and b a&&b同真为真,一假为假or ||a or b a||b一真为真,同假为假not !not a !a取反依据上表进行查询查询技术评分在60到100分...
2020-04-09 15:55:54
1202
1
原创 MySQL 去重及数据库表达式
查询players 表中的玩家昵称,发现有重复项SELECT NAME FROM players加入去重SELECT DISTINCT NAME FROM players查询系统的版本号SELECT VERSION()利用select计算SELECT 5*9*9 as answer把players表中的id全部加1SELECT `id`+1 as '加了一后的id...
2020-04-09 15:13:04
140
原创 MySQL DQL语句之SELECT
查询表中全部信息SELECT * FROM players查询id和name两列SELECT id,`name` FROM players别名查询 AS,把结果起个名字SELECT id as 编号,`name` as 游戏昵称 FROM players也可以给表起别名SELECT id as 编号,`name` as 游戏昵称 FROM players as pppp...
2020-04-09 14:53:32
125
原创 MySQL DML语句之DELETE
delete from 表名 where条件DELETE FROM `players` WHERE `id` = 2truncate 完全清空一个数据库表truncate table `players`delete和truncate的区别相同点:都能删除数据,都不删除表结构不同点:truncate 会重新设置自增列,计数器会归零truncate 不会影响事务...
2020-04-09 14:22:04
127
原创 MySQL DML语句之UPDATE
update 表名 set 旧值 = 新值 where 条件UPDATE `players` set `district` = '美国' WHERE `id`=1一次修改多个属性,用英文逗号隔开即可update `players` set `district` = '中国',`name` = '芜湖大司马' where `id`= 1where子句运算符操作符会返回布尔值...
2020-04-09 12:50:40
1311
原创 MySQL DML语句之INSERT
insert into 表名([字段名1,字段名2,字段名3]) values([值1,值2,值3])INSERT INTO players(PASSWORD,NAME,getindate,district,email)VALUES('654321','芜香蛋','2016-06-23','中国','843110539@qq.com')INSERT INTO players (PASSWORD...
2020-04-09 12:04:09
114
原创 MySQL 用sql语句添加两表间的外键
CREATE TABLE IF NOT EXISTS `server`(`serverid` INT(3) NOT NULL AUTO_INCREMENT COMMENT '服务器ID,主键',`servername` VARCHAR(20) NOT NULL COMMENT '服务器名称',PRIMARY KEY(`serverid`))ENGINE = INNODB DEFAULT C...
2020-04-09 11:38:22
1857
原创 MySQL 修改和删除 sql语句
修改表名ALTER TABLE 表名1 RENAME AS 表名2;ALTER TABLE players RENAME AS players1;添加字段ALTER TABLE 表名 ADD 字段名 列属性ALTER TABLE players1 ADD age INT(3)重命名表的字段ALTER TABLE 表名 CHANGE 旧列名 新列名 列属性ALTER TABLE...
2020-04-08 23:36:16
210
原创 MySQL 关于数据库引擎
数据表的类型InnoDBMyISAM 早期使用的两者的区别MyISAM:节约空间,速度较快InnoDB:安全性高,事务的处理,多表多用户操作innodb引擎在5.6.4版本提供了对全文索引的支持,全英文支持在物理空间的存在位置MySQL8.0版本数据库文件在programData文件夹(这个是隐藏文件夹)下mysql文件夹下data目录中,一个文件夹对应一个数据库...
2020-04-08 22:13:22
98
原创 常用的几个SQL语句
查看创建数据库的语句 的语句show create database csgo查看创建表的语句 的语句show create table players显示表的结构的语句desc players
2020-04-08 21:45:11
85
原创 MySQL创建数据库表 (用SQL创建)
在csgo数据库下创建玩家表(players)包含字段:编号(int)游戏登录密码( varchar(20))游戏昵称入坑日期 (datetime)游戏区服emailUSE `csgo`;CREATE TABLE `players`(`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '编号',`password` VARCHAR(2...
2020-04-08 21:39:52
655
原创 MySQL 数据库的 字段属性
Unsigned无符号的整数表示了该列不能声明为负数zerofill0填充的不足的位数用0填充 例如 int(8) 12 填充为 00000012自增自动在上一条记录的基础上 + 1 (默认)通常来设计唯一主键,必须是整数类型可以自定义设置主键自增的起始值和步长null 和not null设置为not null后不赋值就是...
2020-04-08 20:57:15
192
原创 MySQL 列的数据类型
数值tinyint 十分小的数据 一个字节smallint 较小的数据 两个字节mediumint 中等的数据 三个字节int 标准的整数 四个字节(常用)bigint 较大的数据 八个字节float 单精度浮点数 四个字节(精度问题)double 双精度浮点数 八个字节(精度问题)decimal 字符串形式的浮点数 金融计算的时候使用...
2020-04-08 20:34:14
113
原创 MySQL 之 操作数据库
创建数据库注意 ,sql语句不区分大小写create database [if not exists] school删除数据库DROP DATABASE [IF EXISTS] school;使用数据库USE `csgo`;查看数据库show databases;...
2020-04-08 20:17:54
75
原创 MySQL的四个语言
DMLDDLDQLDCLD是databaseL是language所以DDL 数据库定义语言DML 数据库操作语言DQL数据库查询语言DCL 数据库控制语言
2020-04-08 18:54:47
166
原创 MySQL数据库 基本操作
数据库命令行基本操作mysql -uroot -p123456 --连接数据库flush privileges --刷新权限show databases --查看所有数据库use school --切换数据库show tables --查看数据库中的所有表describe student; --查看表中信息create database CSGO; --创建...
2020-04-08 18:38:06
100
原创 Java Lambda 表达式 初探
为何要使用lambda表达式避免匿名内部类定义过多可以让代码看起来更简洁去掉一堆无意义的代码,只留下核心部分例如(param) -> expression[表达式](param) -> statement[语句](param) -> {statement}理解函数式接口(Functional Interface )是学习JAVA 8 lambda 表达式的...
2020-04-08 14:54:39
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人