java开发
一、前端:Html、Css、JS
(一)JS类库框架
1、JavaScript
- 标签
<script>
document.write("<h1>JS写入代码位置</h1>");
</script>
<script src="myScript.js"></script>
-
显示数据
window.alert():弹出警告框
document.write():写入HTML 文档
innerHTML:写入 HTML 元素
console.log():写入浏览器控制台 -
操作 HTML 元素
document.getElementById(id)
document.getElementById(“id”).innerHTML = “修改。”; -
字面量
数字(Number):123e5
字符串(String):“John Doe” ‘John Doe’
表达式:5 + 6
数组(Array):[40, 100, 1, 5, 25, 10]
对象(Object):{firstName:“John”, lastName:“Doe”, age:50, eyeColor:“blue”}
函数(Function):function myFunction(a, b) { return a * b;} -
变量:存储数据值
关键字 var定义变量 -
操作符
2、 JQuery.JS
3、Angular.JS(模型, scope作用域,controller,依赖注入,MVVM)
2、 前端MVC
1. Vue.JS(MVVM)
1 导入VUE:
<script src="https://unpkg.com/vue@next"></script>
2 DIV绑定选择器(数据绑定):
<div id="idxz1" class="demo" >
{{ message }}
</div>
<div id="hello-vue" class="demo">
{{ message }}
<span v-once><br>不会改变: {{ message }}</span>
</div>
<div id="example1" class="demo">
<p>使用双大括号的文本插值: {{ rawHtml }}</p>
<p>使用 v-html 指令: <span v-html="rawHtml"></span></p>
</div>
3 JS更改数据信息:
<script>
const hanshu = {
data() {
return {
message: '居中的VUE展示网页'
}
}
}
Vue.createApp(hanshu).mount('#idxz1')
</script>
<script>
const HelloVueApp = {
data() {
return {
message: 'Hello Vue!!'
}
}
}
Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>
<script>
const RenderHtmlApp = {
data() {
return {
rawHtml: '<span style="color: red">这里会显示红色!</span>'
}
}
}
Vue.createApp(RenderHtmlApp).mount('#example1')
</script>
4 语法语义动作:
- 构造函数 Vue :创建根实例(类似Java)
Var vm=new Vue({}) - 属性:JS
el: 获取执行vue的dom元素-初始化范围
data: 存储数据
methods: 方法、函数、 return 返回函数值——重新调用
computed: 计算属性——依赖缓存
watch:监听属性——响应数据变化 - 输出:DIV
{{ }} :文本插值——输出对象属性和函数返回值 - 实例属性:前缀(非必须)定义自己私有属性
$ 用于公共实例属性:暴露给用户的特殊实例属性 - 前缀:
v-model:双向数据绑定(表单控件input、select、textarea、checkbox、radio)
v-on:监听
v-if:条件判断
v-else:与v-if连用
v-bind:响应更新 HTML 属性——设置样式属性
v-show:展示元素
v-for:循环/迭代绑定数据到数组
v-html: 输出 html 代码
$ 实例属性:暴露给用户的特殊实例属性 - 缩写:
v-bind:——:
v-on:——@
5 VUE目录
- src开发目录:
assets:图片等
components:组件文件、可不用
App.vue:项目入口文件、可将组件写这里而不用 components 目录
main.js: 项目核心文件 - static 静态资源目录、如图片、字体等
- index.html 首页入口文件、添加一些 meta 信息或统计代码
2. React.JS (创建自定义标签,根据id注入标签)
3. Node.JS(服务器端)
3、UI框架(Html/Css/JS组合)
1. Bootstrap(html/CSS/JS)
- 网格系统(Grid System):最多12列
行: .container class - 媒体查询
二、后端:Java、Tomcat(Web+Servlet+JSP)
1、后端语言:Java
2、后端框架:Spring、MVC、Boot、Cloud
三、数据库
(一)Sql结构化查询语句(适用MySql)
1、数据库操作
-- 连接数据库:
mysql -u root -p
-- 展示所有数据库:
SHOW DATABASES;
-- 创建数据库:
CREATE DATABASE shujuku
-- 选择数据库:
USE shujuku;
2、表操作
-- 展示所有数据表:
SHOW TABLES;
-- 创建数据表:
CREATE TABLE `biao` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `biao00`(
`id` INT UNSIGNED AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`sex` VARCHAR(40) NOT NULL,
`age` DATE,
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 约束:
-- 非空约束(NOT NULL):
CREATE TABLE biao0 (
id int NOT NULL,
name varchar(255) NOT NULL,
FName varchar(255) NOT NULL,
Age int
);
-- 唯一性约束(UNIQUE):
CREATE TABLE biao1(
Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id)
)
-- 主键约束(Primary Key):
CREATE TABLE biao2(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
-- 主键约束取别名(2个列名组成CONSTRAINT)(CONSTRAINT zhujianmingming PRIMARY KEY (id,name)):
CREATE TABLE biao3(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
CREATE TABLE biao4(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
-- 唯一约束的键取别名(2个列名组成 CONSTRAINT):
CREATE TABLE biao5(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
-- 限制列中值的范围约束(单列CHECK):
CREATE TABLE biao6(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
-- 多列范围别名约束(CONSTRAINT):
CREATE TABLE biao7
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)
-- 默认值约束(DEFAULT) :
CREATE TABLE biao8(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
-- 插入函数默认值(函数):
CREATE TABLE biao9
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)
自动创建主键字段值(AUTO INCREMENT 开始值为 1):
CREATE TABLE biao10(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
创建索引(CREATE INDEX):CREATE INDEX suoyinming ON biao (id);
CREATE INDEX suoyinming ON biao (id,name,sex);
唯一单独索引/不能重复(CREATE UNIQUE INDEX):CREATE UNIQUE INDEX suoyinming ON biao (id);
修改(ALTER):
撤销所有约束(存在问题自己调试):
ALTER TABLE biao DROP INDEX id;
ALTER TABLE biao DROP PRIMARY KEY;
ALTER TABLE biao DROP CONSTRAINT bieming;
ALTER TABLE biao DROP FOREIGN KEY bieming;
ALTER TABLE biao DROP CHECK bieming;
ALTER TABLE biao ALTER id DROP DEFAULT;
ALTER TABLE biao DROP INDEX suoyinming;
ALTER TABLE biao DROP COLUMN lie;
修改表(存在问题自己调试):
ALTER TABLE biao MODIFY sex int NOT NULL;
ALTER TABLE biao MODIFY sex int NULL;
ALTER TABLE biao ADD UNIQUE (id);
ALTER TABLE biao ADD PRIMARY KEY (id);
ALTER TABLE biao ADD CONSTRAINT bieming PRIMARY KEY (id,name);
ALTER TABLE biao ADD FOREIGN KEY (id) REFERENCES biao(id);
外键(FOREIGN KEY):ALTER TABLE biao ADD CONSTRAINT bieming FOREIGN KEY (id) REFERENCES biao(id);
检查列数据范围内约束(检查表中字段值有效性CHECK):ALTER TABLE biao ADD CHECK (id>0);
ALTER TABLE biao ADD CONSTRAINT bieming CHECK (id>0 AND name='任明');
修改列默认值:ALTER TABLE biao ALTER id SET DEFAULT 1314;
添加列(包含类型):ALTER TABLE biao ADD lie varchar(255);
修改列(包含类型):ALTER TABLE biao MODIFY COLUMN sex int(255);
修改主键自增起始值:ALTER TABLE biao AUTO_INCREMENT=100;
选取查询:SELECT DISTINCT id ,name FROM biao WHERE id LIKE 3 AND id <4 OR id=4 AND(id<5 OR id=2);
排序:
升序: SELECT DISTINCT id,name FROM biao ORDER BY id;
降序:SELECT DISTINCT id,name FROM biao ORDER BY id Desc;
多列排序:SELECT DISTINCT id,name FROM biao ORDER BY id,name Desc;
限制返回记录数目(条件限制):SELECT * FROM biao WHERE name <=5;
SELECT * FROM biao LIMIT 5;
模糊选取查询(like):SELECT * FROM biao WHERE id LIKE '1%';
SELECT * FROM biao WHERE id LIKE '%1';
SELECT * FROM biao WHERE id LIKE '%1%';
SELECT * FROM biao WHERE name LIKE '老%';
SELECT * FROM biao WHERE name LIKE '%婆';
SELECT * FROM biao WHERE name LIKE '%任明%';
通配符:
SELECT * FROM biao WHERE id LIKE '1%';
SELECT * FROM biao WHERE id LIKE '_5';
SELECT * FROM biao WHERE id REGEXP '^[35]';
SELECT * FROM biao WHERE id REGEXP '^[3-5]';
SELECT * FROM biao WHERE id REGEXP '^[^3-5]';
in单个条件设置:SELECT * FROM biao WHERE id IN (1,8,9,99);
SELECT * FROM biao WHERE id NOT BETWEEN 10 AND 99;
区间范围条件:SELECT * FROM biao WHERE id BETWEEN 510 AND 99;
区间中的单个:SELECT * FROM biao WHERE (id BETWEEN 510 AND 99) AND id IN (510,99);
SELECT * FROM biao WHERE (id BETWEEN 510 AND 99) AND id NOT IN (514,511);
别名:SELECT name AS n, id AS i FROM biao;
SELECT w.name, w.id, w.sex FROM biao AS w WHERE w.sex=6 AND w.id="6";
合并(CONCAT列)并创建别名:SELECT name, CONCAT( id, ', ', sex) AS bieming FROM biao;
多表连接(JOIN/INNER JOIN 与 JOIN 相同)成1表:SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1;
内连接(匹配):SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1;
SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id ;
SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;
左连接(匹配):SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao LEFT JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;
右连接(匹配):SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao RIGHT JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;
合并查询结果集(UNION):
部分合并:SELECT id FROM biao UNION SELECT name1 FROM biao1 ORDER BY id;
全部合并:SELECT id FROM biao UNION ALL SELECT name1 FROM biao1 ORDER BY id;
条件合并:SELECT id FROM biao WHERE id='99' UNION ALL SELECT name1 FROM biao1 WHERE id1='13' ORDER BY id;
插入: INSERT INTO biao (name,id) VALUES ('任明',991314);
修改更新:UPDATE biao SET id=991314 ,name='任明',sex=1 WHERE sex=1;
删:
删除(逐行一条条删除记录):DELETE FROM biao ;
删除(删除列id为1的一行): DELETE FROM biao WHERE id=1;
删除表:DROP TABLE biao;
删除数据库:DROP DATABASE shujuku;
清空(删除原表创建新表(删除数据不删表)):TRUNCATE TABLE biao;
复制表到新表(CREATE AS ):CREATE TABLE biao5 AS SELECT * FROM biao;
复制表到旧表(INSERT SELECT):INSERT INTO biao3 SELECT * FROM biao;
INSERT INTO biao3 (id,name) SELECT id ,name FROM biao;
INSERT INTO biao3 (id,name) SELECT id ,name FROM biao WHERE id=1;
视图( SQL 语句结果集的可视化表(虚拟逻辑表(本身不含数据(就是select语句保存在数据字典))))(Views):
基表:创建构成视图的实际的表叫做基表
查看创建视图的有无权限(有Y、无N):SELECT权限、CREATE VIEW权限
SELECT * FROM mysql.user WHERE user='root';
SELECT * FROM mysql.user WHERE user='remli';
SELECT Select_priv,Create_view_priv FROM mysql.user WHERE user='root';
创建视图:CREATE OR REPLACE VIEW biaoshitu AS SELECT id,name FROM biao;
创建视图同时指定属性清单:CREATE OR REPLACE VIEW biaoshitu (idV,nameV) AS SELECT id,name FROM biao;
修改视图:ALTER VIEW biaoshitu AS SELECT id,name FROM biao where id in (select id from biao);
函数:
Date 函数:
日期(Dates):
SELECT * FROM biao WHERE Dates='2008-11-11'
SELECT * FROM biao WHERE Dates='2008-11-11 00:00:00'
返回数值列平均值(AVG(列名)):
SELECT AVG(id) FROM biao;
SELECT AVG(id) AS '表id平均值' FROM biao;
SELECT id, sex FROM biao WHERE id > (SELECT AVG(id) FROM biao);
返回匹配指定条件的行数COUNT() :
SELECT COUNT(id) FROM biao;
SELECT COUNT(*) FROM biao;
SELECT COUNT(*) AS '行数' FROM biao;
SELECT COUNT(DISTINCT id) AS '不同行数' FROM biao;
SELECT COUNT(id) AS 'id=520的行数' FROM biao WHERE id=520;
返回指定的列中第一个记录的值(通过limit实现):
SELECT id FROM biao ORDER BY id ASC LIMIT 1;
返回指定的列中最后一个记录的值(通过limit实现):
SELECT id FROM biao ORDER BY id DESC LIMIT 1;
返回指定列的最大值(MAX(列名) ):
SELECT MAX(id) AS 'id列的最大值' FROM biao;
返回指定列的最小值(MIN(列名)):
SELECT min(id) AS 'id列的最小值' FROM biao;
返回数值列的总和SUM(列名):
SELECT sum(id) AS 'id列的总和' FROM biao;
结合聚合函数、根据一个或多个列对结果集进行分组(GROUP BY):
SELECT id, SUM(biao.sex) AS '总和进行分组' FROM biao GROUP BY id;
SELECT biao.name,COUNT(biao1.id1) AS '多表分组连接返回行数' FROM biao1 LEFT JOIN biao ON biao1.id1=biao.id GROUP BY biao.name;
筛选分组后的各组数据进行聚合同时可加条件(HAVING):
-- 非版本mysql5.7版本问题导致which is not functionally dependent on columns in GROUP BY clause错误
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
SELECT biao.id, biao.name, SUM(biao1.id1) AS '表id1列总和' FROM (biao1 INNER JOIN biao ON biao1.id1=biao.id) GROUP BY biao.name HAVING SUM(biao1.id1) > 200;
SELECT biao.id, biao.name, SUM(biao1.id1) AS '表id1列总和' FROM biao1 INNER JOIN biao ON biao1.id1=biao.id WHERE biao.id < 200 GROUP BY biao.name HAVING SUM(biao1.id1) > 200;
判断查询子句是否有记录(EXISTS 运算符):
SELECT biao.name, biao.id FROM biao WHERE EXISTS (SELECT id1 FROM biao1 WHERE biao.id = biao1.id1 AND id1 > 200);
SELECT biao.name, biao.id FROM biao WHERE NOT EXISTS (SELECT id1 FROM biao1 WHERE biao.id = biao1.id1 AND id1 > 200);
字段的值转换为大写( UCASE() ):
SELECT UCASE(name) AS '转换大写字母', sex FROM biao;
字段的值转换为小写( LCASE() ):
SELECT LCASE(name) AS '转换小写字母', sex FROM biao;
从文本字段中提取字符(MID() ):
SELECT MID(name,1,4) AS '提取字符4个字符' FROM biao ;
SELECT MID(name,1,4) AS '提取字符4个字符' FROM biao WHERE id=11;
返回文本字段中值的长度(LEN()):
SELECT name, LENGTH(name) AS '名字长度(包含类型长度)' FROM biao;
数值字段舍入为指定的小数位数(ROUND() ):
SELECT ROUND(id) FROM biao;
SELECT ROUND(1.298, 1) AS '四舍五入保留小数1位小数';
SELECT ROUND(1.298, 0) AS '四舍五入保留小数0位小数(整数)';
SELECT ROUND(-1.23) AS '默认保留整数';
返回当前系统的日期和时间NOW():
SELECT id, name, Now() AS '当前时间' FROM biao;
对字段的显示进行格式化(FORMAT() ):
SELECT id, name, DATE_FORMAT(Now(),'%Y-%m-%d') AS '时间按年月日格式显示' FROM biao;
遗漏的未知不适用数据(NULL占位符):
SELECT id,name,sex FROM biao WHERE id IS NULL;
SELECT id,name,sex FROM biao WHERE id IS NOT NULL;
SELECT sex *(id+name) FROM biao WHERE id IS NULL;
SELECT sex *(id+name) FROM biao WHERE id IS NOT NULL;
SELECT sex *(id+IFNULL(name,0)) FROM biao;
SELECT sex *(id+COALESCE(name,0)) FROM biao;
TRANSACTION事务处理(BEGIN, ROLLBACK, COMMIT):
start transaction;-- 开启事务
begin; # 开始事务
commit; # 提交事务——结束事务
rollback; # 回滚——结束事务
存储过程/控制/缓存(记住必须分步执行/绝对不能复制到一起):
第一步:
DROP PROCEDURE IF EXISTS biao_cuncu;
delimiter $$
CREATE PROCEDURE biao_cuncu(IN id int)
BEGIN
SELECT id;
SET id=2;
SELECT id;
END
第二步:
DELIMITER ;
第三步:
SET @id=11;
CALL biao_cuncu(@id);
SELECT @id AS '传入的值';
#创建存储过程:
delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
CREATE PROCEDURE biao_cuncu(OUT id int)
BEGIN
SELECT id;
SET id=2;
SELECT id;
END
#退出分号屏蔽:
DELIMITER ; #将语句的结束符号恢复为分号
##设置传参调用:
SET @id=11;
CALL biao_cuncu(@id);
#查看存储过程
show procedure status;
#删除已有存储过程
DROP PROCEDURE IF EXISTS biao_cuncu;
循环插入(存储过程):-- 插入到99条数据
-- 删除存储过程
DROP PROCEDURE IF EXISTS biaofunction;
-- 分隔符
DELIMITER ;;
-- 声明存储过程函数
CREATE PROCEDURE biaofunction()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i<=99
DO
insert into biao(id,name) values (i,'任明');
SET i=i+1;
END WHILE ;
commit;
END;;
CALL biaofunction() ;
SQL 注入(永远不要信任用户的输入):
分页(LIMIT X,Y):
-- 第一个参数(起始行):指定第一个返回记录行的偏移量
-- 第二个参数(行区间):指定返回记录行的最大数目
SELECT * FROM biao LIMIT 5,10; #检索记录行 6-15行——从第6条记录行开始算,取出10条数据
SELECT * FROM biao LIMIT 5; #检索前 5 个记录行
SELECT * FROM biao LIMIT 0,5; #检索前 5 个记录行
SELECT * FROM biao limit 5,-1; #取出第6条记录行以后的所有数据
2、数据库:Mysql、Oracle、DB2、Redis、monogodb
3、数据库框架:Mybatis、
四、分布式(消息中间件):Kafka、RabbitMQ
(一)RPC分布式服务框架:Dubbo(阿里巴巴)
1、远程服务调用分布式框架:Dubbo
1.节点角色
1 Provider: 暴露服务的服务提供方
2 Consumer: 调用远程服务的服务消费方
3 Registry: 服务注册与发现的注册中心
4 Monitor: 统计服务的调用次调和调用时间的监控中心
5 Container: 服务运行容器
2.服务
3.配置
4.调用关系
2、服务注册中心(管理员):Zookeeper
1.文件系统:树状数据结构
2.监听通知机制
1 Watcher 监听机制:一次性
- 客户端注册 Watcher:getData、exists、getChildren。
- 服务器处理 Watcher
- 客户端回调 Watcher 客户端
3.节点
1 机器节点
2 数据节点:znode
3.心跳检测
4.角色
1 领导者(leader)
2 学习者(learner)
3 跟随者(follower)
4 Observer
5.命令
(二)SpringCloud分布式微服务框架
Spring Cloud 构建于 Spring Boot 之上、微服务系统架构的一站式解决方案
服务发现注册 、配置中心 、消息总线 、负载均衡 、断路器 、数据监控
1、服务发现框架(注册中心):Eureka、Zookeeper、Consul
2、负载均衡: Ribbon、Nignx
负载均衡算法
进程内负载均衡器
3、服务调用映射:Open Feign
4、熔断器(断路器):Hystrix
服务降级熔断器
5、网关路由:Zuul
6、统一配置中心:Config
7、消息总线:Bus
(三)RPC分布式服务框架:HSF
Provider——服务提供者
Consumer——服务消费者
ConfigServer——配置服务器
Diamond——持久化配置中心
addressServer——地址服务
元数据存储
五、部署:Git(版本)、Docker(镜像)、SVN(版本)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75306.html