阿里Java学习路线
Kenny C
hello world
展开
-
阿里前端开发学习路线:前端基础进阶-JavaScript核心 DOM BOM操作:共167课时(转载链接)
B站视频学习链接个人觉得要系统性的学习一门技术还是应该全面了解相关技术,但是要分清主次,不然太费时间,前端知识目前只作了解,进行快速学习理解。原创 2021-01-19 09:34:51 · 216 阅读 · 0 评论 -
阿里前端开发学习路线:JavaScript入门与实战:共52课时(转载链接)
视频学习链接视频文档链接个人觉得要系统性的学习一门技术还是应该全面了解相关技术,但是要分清主次,不然太费时间,前端知识目前只作了解,进行快速学习理解。原创 2021-01-13 10:02:09 · 365 阅读 · 0 评论 -
阿里前端开发学习路线:CSS 快速掌握:共49课时(转载链接)
视频学习链接视频文档链接个人觉得要系统性的学习一门技术还是应该全面了解相关技术,但是要分清主次,不然太费时间,前端知识目前只作了解,进行快速学习理解。原创 2021-01-07 09:17:37 · 245 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时10:JdbcUtils1.0小工具
1、JdbcUtils的作用连接数据库的四大参数是:启动类、url、用户名、以及密码。这些参数都与数据库关联,如果将来想要更新数据库,那么就要去修改这四大参数,那么为了不去修改代码,我们写一个jdbcUtils类,让它从配置文件中读取配置参数,然后创建连接对象。2、JdbcUtils代码dbconfig.propertiesdriverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mydb1?characterEnco原创 2020-12-29 10:26:59 · 107 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时9:mysql的预编译功能默认是关闭的
1、预编译的好处 大家平时都使用过JDBC中的PreparedStatement接口,它有预编译功能。什么是预编译功能呢?它有什么好处呢? 当客户发送一条SQL语句给服务器后,服务器总是需要校验SQL语句的语法格式是否正确,然后把SQL语句编译成可执行的函数,最后才是执行SQL语句。其中校验语法,和编译所花的时间可能比执行SQL语句花的时间还要多。 如果我们需要执行多次insert语句,但只是每次插入的值不同,MySQL服务器也是需要每次都去校验SQL语句的语法格式,以及编译,这就浪费了太多的时原创 2020-12-29 09:45:45 · 153 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时8:预处理的原理
PreparedStatement预处理的原理—服务器的工作:——校验sql语句的语法。——编译:一个与函数相似的东西——执行:调用函数—PreparedStatement:——前提:连接的数据库必须支持预处理!几乎没有不支持的!——每个pstmt都与一个sql模板绑定在一起,先把sql模板给数据库,数据库先进行校验,再进行编译。执行时只是把参数传递过去而已!——若二次执行时,就不用再次校验语法,也不用再次编译!直接执行! String sql = "select * from t_u原创 2020-12-29 09:28:14 · 104 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时7:PreparedStatement的用法
PreparedStatement它是Statement接口的子接口;强大之处:—防SQL攻击;—提高代码的可读性,以可维护性;—提高效率。学习PreparedStatement的用法:—如何得到PreparedStatement的用法:——给出SQL模板;——调用Connection的PreparedStatement preparedStatement(String sql 模板);——调用 pstmt的 setXxx()系统方法sql模板中的?赋值。——调用 pstmt的 exe原创 2020-12-28 13:34:47 · 96 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时6:结果集的特性(是否可滚动、是否敏感、是否可更新)
结果集特性:当使用Connection的createStatement时,已经确定了Statement生成的结果集是什么特性。是否可滚动是否敏感是否可更新con.createStatement():生成的结果集:不滚动、不敏感、不可更新。con.createStatement(int,int):第一个参数:ResultSet.TYPE_FORWARD_ONLY:不滚动结果集;ResultSet.TYPE_SCROLL_INSENSITIVE:滚动结果集,但结果集数据不会再跟随数据库而变化;原创 2020-12-28 10:56:36 · 106 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时5:结果集光标与元数据
2、DriverManager其实我们今后只需要会用DriverManager的getConnection()方法即可:Class.forName(com.mysql.jdbc.Driver);// 注册驱动String url = "jdbc:mysql://localhost:3306/mydb1?characterEncoding=utf8&useSSL=true";String username = "root";String password = "1234";注意,上面代码原创 2020-12-28 10:23:54 · 134 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时4:JDBC之代码规范化
规范化代码所谓规范化代码就是无论是否出现异常, 都要关闭 ResultSet, Statement 以及 Connection,如果你还记得IO流的规范化代码,那么下面的代码你就明白什么意思了。示例:public void query() { Connection con = null; Statement stmt = null; ResultSet rs = null; // 在try外给出引用的定义 try{原创 2020-12-25 16:37:58 · 102 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时3:JDBC完成增、删、改、查
.\day17\day17_res\dbconfig.properties#mysql#url=jdbc:mysql://localhost:3306/mydb?#driverClassName=com.mysql.jdbc.Driver#mssql#driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver#url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mydb#mssql原创 2020-12-25 15:41:46 · 94 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时2:JDBC的原理
2、JDBC原理早期sun公司的天才们想写一可以连接天下所有数据库的API,是当他们刚刚开始时发现这是不可完成的任务,因为个厂商的据库服务差异太大了.后来sun开始与数据库厂商们讨论,是终得出的结论是,由sun提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协标准,然后各个数据库厂商会遵循sun的规供提供一套访问自己公司的数据库服务器的API出来.sun提供的规范命名为jdbc,而各个厂商提供的,遵循了jdbc规范的,可以访问自己据库的API被称之为驱动。...原创 2020-12-25 09:31:18 · 83 阅读 · 1 评论 -
阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时1:什么是JDBC
JDBC入门导 jar 包:驱动加载驱动类:Class.forName(“类名”);给出url、username、password,其中url背下来使用 DriverManager 类来得到 Connection 对象1、什么是JDBCjdbc(java DataBase connectivity) 就是java数据库连接,即用java语言来操作数据库。原来我们操作数据库是在控制体使用sql语句来操作数据库,jdbc是用java语言向数据发送sql语句。package cn.itcast.d原创 2020-12-25 08:54:17 · 119 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时16-25:多表查询练习
练习题:– 1、查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。– 列:d.deptno,d.dname,d.loc,部门人数– 表:dept d, emp e– 条件:e.deptno=d.deptnoSELECT d.*,z1.cntFROM dept d,(SELECT deptno,COUNT(*) cnt FROM emp GROUP BY deptno) z1 WHERE d.deptno=z1.deptno;– 2、列出薪金比关羽高的所有员工。SELE原创 2020-12-24 14:53:22 · 173 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时15:子查询
子查询查询中有查询(查看select关键字的个数);1、出现的位置where后作为条件存在from后作为表存在2、条件单行单列:SELECT * FROM 表1 别名1 WHERE 列1 [= > < >= <= !=] (SELECT 列 FROM 表2 别名2 WHERE 条件);多行单列:SELECT * FROM 表1 别名1 WHERE 列1 [IN ALL ANY] (SELECT 列 FROM 表2 别名2 WHERE 条件);单行多列: SELECT原创 2020-12-24 09:52:18 · 85 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时14:连接查询之外连接
外连接:左外:SELECT * FROM 表1 别名1 LEFT OUTER JOIN 表2 别名2 ON 别名1.xx=别名2.xx;左表记录无论是否满足条件都会查询出来,而右表只有满足条件才能出来。左表中不满足条件的记录,右表部分都为NULL左外自然:SELECT * FROM 表1 别名1 NATURAL LEFT OUTER JOIN 表2 别名2 ON 别名1.xx=别名2.xx;右外:SELECT * FROM 表1 别名1 RIGHT OUTER JOIN 表2 别名2 ON 别名1原创 2020-12-23 17:13:09 · 92 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时12-13:连接查询之内连接(方言、标签和自然)
连接查询1、分类:内连接外连接(1)左外连接(2)右外连接(3)全外连接(MySQL不支持)自然连接 (属于一种简化方式)2、内连接:方言:SELECT * FROM 表1 别名1, 表2 别名2 WHERE 别名1.xx=别名2.xx;标准: SELECT * FROM 表1 别名1 INNER JOIN 表2 别名2 ON 别名1.xx=别名2.xx;自然: SELECT * FROM 表1 别名1 NATURAL JOIN 表2 别名2;内连接查询出的所有记录都满足条件笛卡原创 2020-12-23 16:34:42 · 98 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时11:合并结果集
多表查询分类:合并结果集(了解)连接查询子查询合并结果集:要求被合并的表中,类的类型和列数相同UNION,去除重复行UNION ALL,不去除重复行CREATE TABLE ab(a INT,b VARCHAR(50));INSERT INTO ab VALUES(1,'1');INSERT INTO ab VALUES(2,'2');INSERT INTO ab VALUES(3,'3');CREATE TABLE cd(c INT,d VARCHAR(50));INSERT原创 2020-12-23 15:15:51 · 99 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时10:多对多关系
2 多对多关系在表中建立多对多关系需要使用中间表,即需要三张表,在中间表中使用两个外键,分别引用其他两个表的主键。CREATE TABLE student( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(50));CREATE TABLE teacher( tid INT PRIMARY KEY AUTO_INCREMENT, tname VARCHAR(50));CREATE TABLE student_teacher( si原创 2020-12-23 14:47:42 · 82 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时9:一对一关系
数据库一对一关系在表中建立一对一关系比较特殊,需要让其中一张表的主键,既是主键又是外键。CREATE TABLE hasband( hid INT PRIMARY KEY AUTO_INCREMENT, hname VARCHAR(50));INSERT INTO hasband VALUES(NULL,'刘备');INSERT INTO hasband VALUES(NULL,'关羽');INSERT INTO hasband VALUES(NULL,'张飞');SELECT * FRO原创 2020-12-23 13:48:46 · 88 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时8:外键约束
外键约束# 新建表格,设置主键:CREATE TABLE dept1( deptno INT PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(50));INSERT INTO dept1 VALUES(10,'研发部');INSERT INTO dept1 VALUES(20,'人力部');INSERT INTO dept1 VALUES(30,'财务部');SELECT * FROM dept1;DROP TABLE emp1;# 新建表,原创 2020-12-23 13:10:53 · 97 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时7:概述模型、对象模型、关系模型
1、概述模型对象模型:在java中是domain,例如:User、Studentis a :继承关系has a :关系关系(1)1对1(2)1对多(3)多对多public class Person { private Hand[] hands;}use a :class 人 { public void 吃 (筷子) { 人与筷子是用一个的关系 }}关系模型:在数据库中表当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。例如部门、员工都是系统中的实原创 2020-12-22 16:33:44 · 127 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时6:非空和唯一约束
非空和唯一约束1、非空约束因为某些列不能设置为NULL值,所以可以对列添加非空约束。(1)例如:CREATE TABLE stu(sid INT PRIMARY KEY AUTO_INCREMENT,name CHAR(10) NOT NULL,…);12345对name列设置了非空约束。2、唯一约束(1)数据库某些列不能设置重复值,所以可以对列添加唯一约束。(2)例如:CREATE TABLE stu(sid INT PRIMARY KEY AUTO_INCREMEN原创 2020-12-22 15:51:16 · 134 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时5:主键自增长
主键自增长因为主键列的特性是:必须唯一、不能为空,所以我们通常会指定主键类为整型,然后设置其为自动增长,这样可以保证在插入数据时主键列的唯一和非空特性。1、创建表时指定主键自增长CREATE TABLE stu( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(20), age INT, gender VARCHAR(10));2、修改表时设置主键自增长:ALTER TABLE stu CHANGE sid sid INT AUTO_I原创 2020-12-22 11:15:46 · 85 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时4:约束之主键约束
约束约束是添加在列上的,用来约束列的。1、主键约束(唯一标识)下面是主键的特点:(1)非空(2)唯一(3)被引用(学习外键时)当表的某一列被指定为主键后,该列就不能为空,不能有重复值出现。创建表时指定主键的两种方式:CREATE TABLE stu( sid CHAR(6) PRIMARY KEY, sname VARCHAR(20), age INT, gender VARCHAR(10));指定sid列为主键列,即为sid列添加主键约束。CREATE TABLE stu原创 2020-12-22 10:51:53 · 84 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时3:mysql备份与恢复数据库
备份与恢复数据库 --> sql 语句sql语句 --> 数据库1、数据库导出SQL脚本(备份数据库内容,并不是备份数据库)(1)mysqldump -u用户名 -p密码 数据库名>生成的脚本文件路径(2)例如:mysqldump -uroot -p123456 mydb>C:\mydb.sql(与mysql.exe和mysqld.exe一样都在bin目录下)(3)注意,不要打分号,不要登录mysql,直接在cmd下运行(4)注意,生成的脚本文件中不包含create d原创 2020-12-22 09:27:18 · 99 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时2:mysql编码问题
编码1、查看MySQL数据库编码SHOW VARIABLES LIKE ‘char%’;2、编码解释character_set_client:MySQL 使用该编码来解读从客户端发送过来的数据,例如该编码为UTF8,那么如果客户端不用UTF8来解码,那么就会出现乱码。character_set_results:MySQL会把数据转换成该编码后,再发送给客户端。3、控制台乱码问题插入或修改时出现乱码因为cmd下的编码与character_set_client不同,只需让编码相同即可查询出的数原创 2020-12-21 15:28:32 · 84 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-SQL进阶及查询练习:课时1:单表的查询练习
练习:1、查询出部门编号为30的所有员工select * from emp where deptno = 30 ;2、所有销售员的姓名、编号和部门编号。select ename,empno,deptno from emp where job like '销售员' ;3、找出奖金高于工资的员工。select ename from emp where comm > sal ;4、找出奖金高于工资60%的员工。select * from emp where comm > sal*原创 2020-12-21 14:42:26 · 141 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时22:DQL(数据查询语言)之limit方言
limit子句(方言)LIMIT用来限定查询结果的起始行,以及总行数。例如:查询起始行为第5行,一共查询3行记录SELECT * FROM emp LIMIT 4, 3;–> 其中4表示从第5行开始,其中3表示一共查询3行。即第5、6、7行记录。select * from emp limit 0,5; // 从第0行开始,查询5行练习:1、一页的记录数:10行2、查询第3页select * from emp limit 20,10;计算公式:(当前页 -1) * 每页记录数:(3-原创 2020-12-21 13:10:55 · 184 阅读 · 1 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时21:DQL(数据查询语言)之分组查询
分组查询分组查询是把记录使用某一列进行分组,然后查询组信息。例如:查看所有部门的记录数。SELECT deptno, COUNT(*) FROM emp GROUP BY deptno;–> 使用deptno分组,查询部门编号和每个部门的记录数SELECT job, MAX(SAL) FROM emp GROUP BY job;–> 使用job分组,查询每种工作的最高工资select deptno,count(*) from emp where sal > 15000 gro原创 2020-12-21 11:15:31 · 93 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时20:DQL(数据查询语言)之聚合函数
聚合函数聚合函数用来做某列的纵向运算。(1)COUNTSELECT COUNT(*) FROM emp;–> 计算emp表中所有列都不为NULL的记录的行数SELECT COUNT(comm) FROM emp;–> 云计算emp表中comm列不为NULL的记录的行数(2)MAXSELECT MAX(sal) FROM emp;–> 查询最高工资(3)MINSELECT MIN(sal) FROM emp;–> 查询最低工资(4)SUMSELECT SUM原创 2020-12-21 10:12:52 · 81 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时19:DQL(数据查询语言)之排序
排序(1) 升序SELECT * FROM emp ORDER BY sal ASC;–> 按sal排序,升序!–> 其中ASC是可以省略的(2)降序SELECT * FROM emp ORDER BY comm DESC;–> 按comm排序,降序!–> 其中DESC不能省略(3)使用多列作为排序条件SELECT * FROM WHERE emp ORDER BY sal ASC, comm DESC;–> 使用sal升序排,如果sal相同时,使用c原创 2020-12-20 14:52:12 · 78 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时18:DQL(数据查询语言)之模糊查询(包含stu表及数据)
模糊查询当你想查询姓张,并且姓名一共两个字的员工时,这时就可以使用模糊查询SELECT * FROM emp WHERE ename LIKE ‘张_’;–> 模糊查询需要使用运算符:LIKE,其中_匹配一个任意字符,注意,只匹配一个字符而不是多个。–> 上面语句查询的是姓张,名字由两个字组成的员工。SELECT * FROM emp WHERE ename LIKE ‘___’; /姓名由3个字组成的员工/如果我们想查询姓张,名字是几个字都可以的员工时就要使用“%”了。S原创 2020-12-20 14:42:11 · 197 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时17: DQL(数据查询语言)之条件查询
2、条件控制(1)条件查询与前面介绍的UPDATE和DELETE语句一样,SELECT语句也可以使用WHERE子句来控制记录。SELECT empno,ename,sal,comm FROM emp WHERE sal > 10000 AND comm IS NOT NULL;SELECT empno,ename,sal FROM emp WHERE sal BETWEEN 20000 AND 30000;SELECT empno,ename,job FROM emp WHERE job原创 2020-12-20 14:02:46 · 74 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时16: DQL(数据查询语言)之基础查询之列控制
DQL——数据查询语言查询不会修改数据库表记录一、 基本查询1、字段(列)控制(1) 查询所有列SELECT * FROM 表名;SELECT * FROM emp;–> 其中“*”表示查询所有列(2)查询指定列SELECT 列1 [, 列2, … 列N] FROM 表名;SELECT empno, ename, sal, comm FROM 表名;(3)完全重复的记录只一次当查询结果中的多行记录一模一样时,只显示一行。一般查询所有列时很少会有这种情况,但只查询一列(或几列)时原创 2020-12-20 13:49:37 · 113 阅读 · 1 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时15:DCL(数据控制语言)
DCL(理解)一个项目创建一个用户,一个项目对应的数据库只有一个这个用户只能对这个数据库有权限,其他数据库你就操作不了了1、创建用户语法:CREATE USER 用户名@ IP地址 IDENTIFIED BY '密码';create user zhangSan@localhost identified by '123';用户只能在指定的IP地址上登录。CREATE USER 用户名@'%' IDENTIFIED BY '密码';用户可以在任意IP地址上登录2、给用户授权语法:GR原创 2020-12-20 11:58:41 · 110 阅读 · 2 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时14:DML(数据操作语言)之DELETE
删除数据新建表及数据:CREATE TABLE stu( -> number char(50), -> name varchar(50), -> age int, -> gender char(10)); INSERT INTO stu VALUES('ITCAST_0001','zhangSan',28,'male');INSERT INTO stu(number,name,age) VALUES('ITCAST_0002','liS原创 2020-12-18 15:21:03 · 86 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时13: DML(数据操作语言)之修改记录
修改数据课程中基础表修改alter table stu rename to tb_student;alter table tb_student change number id char(11);alter table tb_student change name sname varchar(50);alter table tb_student change gender sex varchar(10);INSERT INTO tb_student(id,sname,age,sex) VALU原创 2020-12-18 11:54:45 · 96 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时12: DML(数据操作语言)之INSERT(包含经典三表)
DQL:SELECT * FROM 表名经典三表建立及数据插入:CREATE TABLE dept( deptno INT PRIMARY KEY, dname VARCHAR(50), loc VARCHAR(50));CREATE TABLE emp( empno INT PRIMARY KEY, ename VARCHAR(50), job VARCHAR(50), mgr INT, hiredate DATE, sal DECIMAL(7,2),原创 2020-12-18 10:35:37 · 144 阅读 · 0 评论 -
阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时11:DDL(数据定义语言)之操作表
表创建表:CREATE TABLE [IF NOT EXISTS] 表名 ( 列名 列类型, 列名 列类型, ...... 列名 列类型,);create table tb_stu( number char(11), name varchar(50), age int, gender varchar(10) );l 查看当前数据库中所有表名称:SHOW TABLES; l 查看指定表的创建语句:SHOW CREATE TABLE tb_stu,查看 tb_stu表的创建语原创 2020-12-17 14:30:45 · 123 阅读 · 0 评论