Java软件开发培训班_日报汇总JF1807A33

一阶段

-------------------------一阶段:知识点汇总------------------------------------

人生就像一场马拉松,可以慢下来,不要停下来,更不要偏离跑道失去方向。

一、数据库知识

1.数据库,存储位置:硬盘

- 数据以数据库的方式存储-for->数据的"持久化"
- VS
	- 卡带、磁带cd(不出20~30年就会模糊)
	- 内存条(关掉程序就删除、也可能常驻后台但是关机就全over了。)
- 隐患:删库跑路-VS-防范:数据备份,推荐云端。

2.认识——数据库产品

- 本地型数据库:sqlite3(免费、免安装、小巧几百k)
- 常见的数据库产品:
	(1)大型数据库:oracle甲骨文,2~4g,(收购sun公司及其Java);-->服务器型
	(2)中型数据库:
		- mysql,几百M,(%80~%90的免费功能,中小型企业的lover之一)
		- Sql-server;-->服务器型
	(3)小型数据库:
		- sqlite,几百k(小巧玲珑、免费、免安装)
			-->应用在移动端、嵌入式设备:电饭煲、洗衣机、打卡机(main-c语言)
		- 微软access,服务收费
	(4)关于汉化软件
		-->很low逼
		-->英文原版:提升编程效率==英语词汇学习,一边开发一边查单词(是时候抽时间学习英语了!)

3.数据库利用【二维表】的模式–>来存储数据

- 4个元素:
(1)关键字:当前系统已经定义好的一些单词或词组,例如,public;
(2)标识符:程序员自己给代码取的名字,但不能用关键字;
(3)记录record(行):例,张1、张2、张3;
(4)字段 field(列):例,学号字段、姓名字段。

4.小黑框代码:DOS命令行

(1) 前期准备:
	- 文件显示设置
		- (不要隐藏文件后缀-->工具-->文件夹选项操作)
	- 在硬盘上创建数据库文件DB(database)
		- 新建文本,改后缀(.db)
	- 用数据库软件打开数据库文件
		- 借助sqlite3.exe小程序
		- p.s.需要在同级目录内操作db文件
(2)"操作系统"的基本操作-->dos命令:
	- win+R。远行cmd
		- help回车-显示所有命令;
		- cls回车-清净
	- 切换盘符
		- 输入-->盘符字母:-->根目录
		- dir回车-->查看当前目录下所有的文件/文件夹信息
		- cd+空格+文件夹名-->进入目标文件夹
	- 通过sqlite3进入到db文件中
		- sqlite3+空格+文件名.db-->出现【sqlite>】代表操作成功
(3)点命令-->当进入到某个db文件后,就可以使用sqlite的点命令
	#1--.database-->查看当前db文件的位置;
	#2--.table-->查看当前db文件中,所有表的名字;
	#3--.schema(空格 表名)-->查看表内部结构,不加表名就查当前db文件的所有表内部机构;
	#4--.q-->退出程序
	【p.s.点命令是没有分号结尾的。】
	#5:.head on—显示表头;.head off—关闭
	#6:.mode column—表格左对齐
	#7:.read 脚本全拼.sql-->读取脚本文件代码
(4)sql语言:结构化查询语言(Structured Query Language),简称SQL
-->增删改查
	*DCL-数据控制语言:角色授权、权限管理(大型);
	*DDL-数据定义语言:创建、删除表格;
	*DML-数据操纵语言:增加、删除、修改数据;
	*DQL-数据查询语言:数据的查询。

5.创建二维表

(1)数据类型
	*数字:整数int、小数real;
	*文本:text
(2)创建表格--简单的增删表
- create table 表名 (字段1空格 数据类型,字段2空格 数据类型);-->回车
	*表名规范:
		-->可用英文字母(不区分大小写)
		-->或“_”下划线;
		-->不用纯数字(数字开头也不行)与中文,
		-->也不能用关键字.
	*符号注意:
		- 逗号","-->只做间隔,不用结尾
		- 分号";"-->代表sqlite命令结束,缺少分号直接回车,系统会默认为sql语句没有写完…
- drop table 表名;
drop table if exists tb_myTable;

二、SQL知识点

1.约束

(1)实体完整性保证:
	- 主键约束primary key:
		把一个“不可能重复”并且“不能为空”的这样一个字段作为表的主键;
	- db文件中的每一张表,都必须,有且仅有一个主键。
	-  Sqlite中,一个自增长字段可定义为:
	integer PRIMARY KEY autoincrement,
	(在插入一个新数据时,只需要将这个字段的值指定为NULL,
	即可由引擎自动设定其值,引擎会设定为最大的rowid+1。)
	
(2)域完整性:(域--字段,列)-->规避不正确且不可靠的数据
	- 检测约束check();
	- 非空约束not null;
	- 默认值约束default+'';
	- 唯一约束unique;(仅有一次机会为空值null)
	- 非空 + 唯一 == 主键约束

(3)用户定义完整性/自定义
	-->在对原有约束的基础上进一步进行约束;

(4)参照完整性:-->保证表格有意义
	- 至少涉及两张表,表格间具有一定约束,不能随意增删改;
	- 外键约束foreign key:PRAGMA foreign_keys = ON;
	- references 表名(主键字段)-->外键必须是其他表的主键
		+on delete cascade-->删除主表,则会清空对应外键的子表数据;
		+on delete set null-->删除主表,子表外键字段值设置为null;
		+on update cascade-->存储在子表中的每1行,对应的字段的值会被自动修改成同新的父键匹配。
		+on delete default on update no action-->从表不受主表影响

2.完整建表:
(1)语法

- create table 表名(字段1 数据类型 约束条件,字段2 数据类型 约束条件);

(2)外键约束下的——增删表

  • 当tb_myTable作为主表,存在外键约束时候:执行这句sql失败,报错:
    foreign key constraint failed…
  • 意译为:要是被你执行成功,我这个外键岂不是很失败!
  • 两种方法:
    - 先删从表再删主表;
    - 从表字段设置外键时添加:on delete set null on update cascade
    	- 克服删除限制;
    	- 依旧无法克服插入限制:主表没有的主键值,不能作为从表的外键输入值。
    

(3)主键不确定

  • 一张表的每一个单独字段都不具备唯一性,可选操作有2:
    (A)使用联合/复合主键:外键1,外键2
    (B)单独写/添加一个字段作为标识列,
  • 自增长ID:row_id integer PRIMARY KEY autoincrement,
    • 不能保证数据重复,只是保证了规范而已;
    • 由于其便于维护,现实中的企业多会选择此项操作

3.增insert:往表中插入数据

(1)简约完整型:insert into 表名 values (所有字段值);
	- 所有字段的值不管能不能为空,都要填进去,
	- 并且顺序和表的结构保持一致;
(2)灵活可空字段型:
insert into 表名(非空字段1,非空字段2,字段n)values (值1,值2,值n)
	- 输入指定(至少要包含所有非空)字段的值,
	- 前后书写顺序要保持一致;
	- 报错提示:constraint failed,意为约束失败,
	其实约束是成功,只是系统撒娇“如果别被你随便增加进去,那我岂不是失败了?”
(3)简单查:
	- select * from 表名;
(4)点命令补充
	#5:.head on—显示表头;.head off—关闭
	#6:.mode column—表格左对齐

4.删delete

(1)删库跑路:delete from 表名
(2)指定数据:delete from 表名 where 字段=某个值
逻辑删除(现实企业的例行做法,只是不给你看而已,人家还是保留着)VS物理删除(真的删了)
(3)删除关键字
	- delete 只删除数据不删除表的结构(定义) ;——DML
	- drop 语句将删除表的结构及被依赖的约束(constrain)。——DDL
(4)SQLite3数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。
	- 这个表包含两个列:name和seq。
	- name记录自增列所在的表,
	- seq记录当前序号。
  • 所以要想使自增列的序号归零,则需要修改 sqlite_sequence表:
DELETE FROM tb_myTable;
DELETE FROM sqlite_sequence WHERE name = ‘tb_myTable’;
  • 或者
UPDATE sqlite_sequence set seq=0 where name='tb_myTable';

5.修改update

(1)针对表字段:
	- update 表名 set 某个字段=新的值;
(2)针对某条记录/指定数据的字段值:
	- update 表名 set 某个字段=新的值 where 主键字段=某个值;

6.编写sql脚本 -->自动执行

(1)新建.sql文件-->与sqlite3同级目录
	- 存储代码,只要是sql语言都能写入,
	- 可以用notepad++打开;
(2)sql语言
	- DDL:创、删表
	- DML:增、删、改数据
	- DQL:查
(3)注释:
	- 给人类看的解释,计算机是不会识别的;
	- 格式:两条横杠(--)+内容
(4)点命令补充
	#7:.read 脚本全拼.sql-->读取脚本文件代码
(5)乱码解决:
	- 转换为注释-->注释排除
	- ANSI本地编码 -VS- UTF-8编码
(6)骚操作:
	- drop table if exists 表名;-->如果存在这张表,我先删掉你。
	- 先删再建-->防止建表冗余.

7.查询select

(1)认识运算符(待分类)
	- 算术运算符:+-*/
	- 关系运算符:= > < >= <= ! <>
	- 逻辑运算符:and or
	- between...and...(>= and <=)
(2)语法
select * from 表名 where 字段+运算符+条件值;
	- 查询指定字段:select 字段1,字段n from 表名 where…
	- 可以临时重命名表头:字段1 as xxx,字段n as xxx
(3)增加排序
排序order by 放在一句话的最末端
	- 默认为,升序Asc
	- 降序Desc
(4)模糊查询
增加查询条件: where 字段 like 通配符;
	- 下划线_,代表一个字符
	- 百分号%,代表任意长度的字符
(5)分页查询
增加条件:limit x offset y;
	- 每页限制x条,从第(y+1)条开始查;
	- 编号是从0开始的;
	- p.s编程中99%的排序,编号都是从0开始的。
  • 在查询中,可以做一些简单的运算:
    例,
select stu_name, (2018-stu_age) as 出生年份 from t_stu;

三、SQLite expert

1.可视化的图形软件:SQLite expert–>提高开发效率

- 接触的第一款全英文编写的软件。
- 官网可下载,页面download下拉至4.x版本
- 专业版professional--收费
- 个人版personal--免费

2.操作:

调节字体大小:tools--options--fonts--modify--cousolos14

(1)新建db文件:(左侧油桶区)

- file--> database
- 指定数据库存放的路径,并且给数据库命名,后缀名建议设置为.db

(2)创建表

- 点击目录菜单栏sql输入代码
- 复制脚本文件代码(直接打开文件会乱码)

(3)执行sql脚本

- 选中部分脚本-->execute-->执行sql语句
- 左下角会显示执行效率
- 下方区域为控制台会显示执行结果

(4)图形界面操作

- 点击ddl模块-->.schema(查看表内部结构)
- 点击data模块-->select * from;
- 双击data中某个值可以直接修改-->update,改后选勾,refresh更新。
- 右键油桶-->close,关闭db文件;删除数据库文件,需要到磁盘中操作。
- 工具栏,sql--new sql tab添加脚本文件页面;也可以直接在标签栏,右键添加。

四、数据库的高级查询

1.联表查询:

(1)语法要求
至少有两张表,必须有相同对应的字段。

  • 两个步骤:生成[笛卡尔积表],再过滤数据:
select * from 表1,表2  where  关联判断(查询条件 and 关联字段);
  • 或者,直接根据条件,生成联表数据,效率会更高:
select * from 表1 inner join 表2 on 关联条件 where 过滤判断条件;
  • 由于存在同名的关联字段,要注意添加该字段所属表名前缀,避免ambiguous错误(含糊不清,指向不明)!
  • 联表查询,推荐使用as别名——减少表名重复书写:
    - 如果别名中间含有空格,一定要加'单引号';
    - 其他情况不添加,添加了反而会出问题。
    - as可以缺省,是一样的效果。(推荐加as,保证编码规范)
    - 逗号:是用来将字段与字段分隔开的,然而,我们的别名不需要逗号隔开。
    

(2)连接类型划分

(A)外连接:-->保险用法,谨防数据丢失
	- 左外连接:主表 left join 从表 on-->主表中的数据一定会出现;
	- 右外、全连接(splite expert不支持)
(B)内连接:
	- (inner) join…on…-->交集:显示有对应关系的部分。
(C)自连接:表1与表1做一个外连接或内连接。
	- 在数据齐全的情况下,内外连接的结果是一样的。

2.嵌套查询

(1)概念

  • 把一个查询语句的结果集作为查询子条件,一环套一环;
  • 具有局限性:例如,拿不到内环表的字段…
  • 联表才是万能的!

(2)in的子查询:

  • where 字段 in(结果集)
  • 嵌套查询中in是易错点,用等号=只会出现一个记录呢。
select a.* from t_stu as a join t_score as b on a.stu_no=b.stu_no where b.sub_no=2 and b.score>80;
select * from t_stu where stu_no in (select stu_no  from t_score where sub_no=2 and score>80);

五、搭建IDE——eclipse,初识Java

1.搭建java开发环境与运行环境(结合四阶段系统整理)

(1)JDK:JAVA开发工具包
- 课堂推荐:jdk-8u171
(企业在前两年使用的主流版本为1.7,现在逐渐偏向1.8,官网可下8u181,取名规则变化1.1~1.7-->jdk8/9/10)
- 本机:java version "1.8.0_201"(DOS:java -version回车查询)
(2)正常安装jdk,安装包就会自动地配好一些配置:
- 运行cmd(command命令提示符)-->输出Java-->验证环境。
(3)配置环境变量:
- 目的在于在任意盘符下都能够执行某个程序
- 右键_计算机_属性-->高级设置-->环境变量-->系统变量-->path-->把jdk安装的bin 路径加到path的末尾(记得在路径前面加上';'以区隔其他路径)
	- 新建:变量名,JAVA_HOME;变量值,jdk安装路径。
	- 添加到path中:%JAVA_HOME%\bin;
	- 作用:任意盘符下都能执行(编译命令)javac
(4)Java代码的执行过程
- 程序员编写好代码.java文件-->通过javac编译生成.class文件-->通过java运行.class文件:
	- dos命令,进入到相应的盘符、文件夹,
	- 执行javac xxx.java,
	- 成功后再执行java xxx;
	- 注意:修改脚本后需要再次编译后才能执行修改成功。

2.编辑脚本

- java严格区分大小写--缩进可用Tab键
- main方法(PSVM):Java程序的主入口
public class 类名 {
	public static void main(String[] args){	
	}	
}
- 文件名规范
	- 必须以.java作为扩展名;
	- 一个Java文件只能有一个public class
		- public修饰的类名字必须和文件名字一致;
		- 允许拥有多个class,但除了内部类外,不提倡一个Java文件拥有多个类。
- 类的要素:
	- 成员变量/属性:理解为类的特征;
	- 成员方法/函数:理解为类的行为动作。

3.专业术语

(1)关键字
- 做成表格,常常记忆
(2)标识符:java规则,必须由英文大小写、数字、美元符$、下划线_构成,不能是关键字,也不能以数字开头
(3)变量:会改变的量
(4)常量:不会改变的量
(5)注释://单行注释//;/*多行注释*/;/**文档注释*/。
(6)命名规范:全球同行的默契
- 首字母大写
	- public类名/java文件名:首字母一定要大写;
	(小写没有错,但不够规范,程序不仅仅是写给自己看的!)
- 驼峰式命名
	- 变量名:第一个单词首字母小写,从第二个单词开始每个单词首字母大写;
	- 方法名:如,main方法,也是驼峰式命名规则。
- 全大写
	- 常量名

4.Java中的数据类型
(1)基本数据类型(8个)

- 数值型:
	- byte 字节型;
	- short 短整型;
	- int 整型;
	- long 长整型;
- 浮点数:
	- single 单精度;
	- double 双精度浮点型;
- 字符型:
	- char
- 布尔型:
	- boolean 布尔类型,输出真、假(true/false)。

(2)引用数据类型:

- 类,class
	- String字符串(这是,类)
- 接口,interface
- 数组,[]

5.Java中常见的运算符:

  • 编程语言本质是对一些数据进行运算;
  • 运算符是一种特殊的符号,
    • 用以表示:数据的运算、赋值和比较等。
    • 分为6种:算术、赋值、比较/关系、逻辑、位运算、三元运算符
(1)算术:+ - * / %(取余)
(2)关系/比较:> < >= <= != ==(相等)  instanceof---->输出(true/false)
(3)赋值:=, +=, -=, *=, /=, %=
(4)位运算:与&, 或|, 异或^, 反码~ ,左移<<, 右移>>, 无符号右移>>>
(5)逻辑:短路与&&、短路或||、逻辑非!
	- 逻辑运算符只能对boolean类型进行逻辑运算,
	- 而位运算还可以对数值进行运算;
	- 逻辑运算符有短路情况,
	即前面的表达式可以得到最终结果时,后面的表达式将不被执行
(6)三元:
- 格式:(条件表达式)?表达式1:表达式2;
	- 条件表达式true执行表达式1;
	- 结果位false,执行表达式2。
- 表达式1和2为同种类型。

6.知识点运用

(1)定义变量:
- 格式:数据类型 变量名 = 初始化赋值;
(2)字符串的拼接:
- 换行输出:System.out.println("文本1"+变量值1+"文本2"+变量值2);
- 不换行输出:System.out.print();
(3)重新赋值:
- 不用定义数据类型,对原变量直接赋值;
- (vs重新定义新变量:定义新变量名要和原变量名区分开)

7.软件eclipse:

  • 各个版本以天体术语命名,如Kepler(开普勒)、Luna(月亮)、Mars(火星)、Oxygen(氧气)、Photon(光子)等;
  • 集成开发环境,IDE(Integrated Development Environment )
  • 插件开发环境,PDE(plug-in)
  • 下载版本:

8.eclipse的使用

(1)workspace路径
(2)修改字号:window--preferences--模糊查询font(同理查询update并关闭自动更新)--basic--text font--14
(3)new others-->新建工程 java project-->src源目录;jre类库;-->在src中新建包new package-->创建类New class
(4)control s 保存即自动编译
(5)输入关键字就会自动"联想";
(6)run as-->java application-->弹出控制台显示执行结果
(7)复制.java文件到工程区,
- 需要在首行添加:关键字package 包名;进入到所属包。
(8)main()方法里的(String[] args)干什么用?——参数列表,传参执行
- 如何进行传参执行?
- Run-->Run Configurations-->Arguments
- 在弹出的Program arguments框里填写参数,多参数以空格隔开;
-  填好以后点击Apply,再点击Run即可。

二阶段

三阶段

四阶段

X、xxx知识点

1.xx

(1)哈哈哈
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值