Java学习笔记
一阶段
Week1 2022.08.11
Day1 2022.08.01
1. 一阶段老师:谢冠华
2. 目的:(1)掌握Java核心语法(2)培养编程思维(3)熟悉企业工作(开发)形式
3. 目标:企业标准
4. 里程碑
(1)Java核心语法(2)面向对象编程(3)Swing编程
5. Java安装
6. JDK安装包安装 win+r打开运行,输入cmd打开 输入Java 验证Java是否安装 输入Java
-vertion检查Java版本号
配置环境变量
Day2 2022.08.02
1. Java是一门编程语言:电脑能够理解的语言
Java可以用于 (1)编写游戏(2)搭建服务器(3)搭建应用(4)编辑网页
Java特性 (1)简单性(2)高安全性(3)可跨平台(4)可移植性(5)健壮性
2. Java分类:
J2SE(Java 2 Standard Edition):标准版,标准的应用开发,常用于企业级的应用服务开发 SE:核心语法相关
J2EE(Java 2 Enterprise Edition):企业版,常用于开发企业级应用。 EE:网页相关
J2ME(Java 2 Micro Edition):微型片版,常用于手机上的开发 ME:移动端相关,合并入EE进行使用
3. 编写第一个代码:Hello World
public class HelloWorld{ public static void main(String args[]){
System.out.print("Hello World");
}
}
4. Java中JDK(开发工具包)、JRE(Java运行环境)、JVM(Java运行的虚拟机)
JDK包含JRE
JRE包含JVM
5. Java 编译语言
人写好的代码 电脑直接看 看不懂
需要经过编译过程 转为字节码文件
字节码文件 才可以给电脑运行
6. 开发工具:idea
7. main 方法
public static void main(String[] args) {
}
主要作为Java程序运行的入口
1. Java编程
内容:
2. Java的基本元素
(1)标识符: 变量名
int num = 2;
num就是变量名, = 是赋值符号, 2是变量的值
变量命名规则:一个标识符可以是大写或者小写字母、下划线、美元符号的任意顺序组合,但不能以数字开头,不能用关键字命名
变量命名规范:
变量的命名规范:
1、所有的变量、方法、类名:见名知意
2、类成员变量:首字母小写和驼峰原则:lastName除了第一个单词外,后 面的单词首字母大写。3、局部变量:首字母小写和驼峰原则。
4、常量:大写所有字母和下划线:MAX_ VALUE PI.
5、类名:首字母大写和驼峰原则: Man GoodMan每个单词首字母大写6、方法名:首字母小写和驼峰原则:run(),runMain()。
(2)关键字:Java官方用掉的名字 不能作为变量名用
(3)常量:不能随意改变的量
(4)注释:
快捷键CTRL+/ 单行注释 再按取消单行注释
//注释内容
快捷键SHIFT+CTRL+/ 多行注释 SHIFT+CTRL+\取消多行注释
/*注释内容
注释内容*/
3. Java数据类型:不同类型的数据 可以做到不同的事
Java是强(强调)类型的语言
(1)基本数据类型
官方定义的数据类型,总计:8种
Boolean类型值只有true(正确)和false(错误)
char字符类型 需要用单引号,并且单引号内只能由一个字符;数据类型会自动转化
四种整数 其中byte 最大到127,最小到-128
两种小数 定义long和float类型时 在long和float类型数字的结尾必须加上大写或小写的L(最好大写)
和大写或小写的F
最常用double
数据类型 | 类型名称 | 所占位数 | 数的范围 | |
Boolean | 布尔型 | true/false | ||
char | 字符型 | 16 | 0~65535 | 两种特殊类型 |
byte | 字节型 | 8 | -128~127 | |
short | 短整型 | 16 | ||
int | 整型 | 32 | ||
long | 长整型 | 64 | 四种整数类型 | |
float | 浮点型 | 32 | ||
double | 双精度浮点型 | 64 | 两种小数类型 |
特殊字符的常量表示法 | |
反斜线 | \\ |
退格 | \b |
回车 | \r |
进纸符 | \f |
制表符 | \t |
单引号 | \‘ |
换行 | \n |
八进制数 | \DDD |
Unicode字符 | \uHHHH |
- 作业:
- 一:
查找变量命名规范是什么,查询java基本数据类型的转化是什么 - 二:
抄写代码,抄写第四章方框内所有代码
Day3 2022.08.03
1. 变量命名规范
语义化 需要见名知意
stuInfoTable 驼峰式命名法 首字母小写叫小驼峰 首字母大写叫大驼峰
stu_info_table 帕斯卡命名法
2. 复合数据类型
有无数种复合数字据类型
复合数据类型一般自带方法和属性,基本数据类型不自带方法和属性
常用的复合类型:
String 字符串,只要带双引号的就时字符串
Scanner 一个用于系统输入的复合数据类型(即 我们给电脑的东西)
Scanner要求输入的时候 控制台不会给出提示,一般需要配合自己写一个提示
3.数据类型的互相转换
整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级
1、自动转化
长度短的类型可以自动转化为长的类型
2、强制转化
由长度长的类型要转化为长度短的类型必须使用强制转化
Boolean类型不能进行类型转换
不能把对象类型转换成不相关类的对象
转换的时候可能存在精度损失的问题,数字可能不正确
public class Demo{
public static void main(String[] args) {
int num = 100;
byte b1 = (byte)num;
}
}
4. 运算符
算数运算符 ....... ++ --
++和--会根据写的位置前后决定先自增/自减,再去做别的事情
关系运算符 <, >, >= ,<= ,==, !=为不等
布尔逻辑运算符 && || !
与 或 非
位运算符 :将数字编程二进制进行运算
>> , << , >>> , & , | , ~ , ^
赋值运算符 =,及扩展赋值运算符如 +=,-=
条件运算符(三目表达式) 条件 ? true时的值 :false时的值
5. Java代码的基础运行流程
所有Java代码由上往下执行,同一行内从左往右执行,并且只执行一次
6.流程控制语句
1、分支语句
if(条件){
}else if{条件二
}else{
}
条件是 布尔值 或结果为布尔值的表达式
2、循环语句
- 作业:
- 查询 普通且,短路且,普通或,短路或的运用
- 先手动计算如下式子,然后再交由java程序进行运算 查看结果是否不同
- Int a =10; 求出a和b的值
- Int b = (a++)+a+2*(++a)+(a--)+(a* (--a))
- Int b = a +2*(a--)+a*(a++) + (++a)
- 使用分支语句完成以下题目 并提交 源码 以及代码和运行结果的截图
- 用户输入人数,根据人数提供不同房间
- 1人 单人间 2人 双人间 3-5人 包厢套房 5以上 总统套房
- 输入三个互不相等的数字 求他们的大小关系
- 最终输入a>b>c 或者a>c>b 等等 这种类型
- 输入年份 判断是否是闰年。
- 规则:4年一闰 百年不闰 400年再闰
Day4 2022.08.04
1. 系统的健壮性
应对一些设想之外的情况,能否合理的处理问题
2. 代码冗余
冗长、多余的代码需要简化
3.分支语句
switch语句特点是针对一个变量 进行判断
switch(变量名){
case 数值:
当变量等于该数值是执行的代码;
break;不能去掉,否则会穿透。
default:
就是以上所有值都不相等 的时候执行代码
}
4. 循环语句
当我们重复做某件事的时候 就可以使用循环语句
好处:(1)方便书写 (2)方便维护
1:for 2:while 3:do while 4:foreach(涉及对象)
for语句
for(初始化变量 ; 范围判断 ; 增量){
循环体
}
循环中可能会出现死循环(即不会被停止的循环)
作业:
查询:switch 的小括号里面能写什么数据类型,与JDK版本有关
Day5 2022.08.05
1、变量作用域
for循环种声明的i 不能再循环外使用
方法内声明的变量 方法外不能使用
2、for循环的执行顺序
for(初始化变量 ; 范围判断 ; 增量){
循环体
}
(1)初始化变量;(2)范围判断;(3)循环体; (4)增量(5)回到第二步
3、while循环
while(条件){
当条件为true时,不断执行代码
}
条件为布尔值或结果为布尔值的表达式
先判断条件,再执行,回头再判断,直到条件为false
4、do while
do{
循环体
}while(条件);
先执行一次,再判断条件,条件为true再回去执行
for 和while循环被称为 前置判断循环
do while 循环被称为 后置判断循环
while 和do while都属于不确定循环次数的循环语句
for属于确定循环次数的循环语句
Week 2
Day6 2022.08.08
1、双重for循环
2、学习的两条腿
(1)基础知识点(2)足够的练习和经验积累
3、Math.pow(a,b) a是底数 b是指数
即a的b次方
4、数组:就是数据的集合,在java中可以用一个变量名存储多个数值
数组的两种声明方式:
静态声明:
String info[] = { };
动态声明:
String info[] = new String[5]; 5是数组长度
数组获取内容:下标对应获取 下标取值从0开始 最大到数组长度减1
数组名.length表示数组长度
看到数组想循环
null 什么都没有 什么都不是
5、把多个一维数组合起来放一个数组里那么这个是二维数组
Day7 2022.08.09
代码的可读性
机器可以运行,但是人也要看得懂代码
CTRL + SHIFT +L 格式化代码格式(自动对齐)
System.out.println();
意为输出并换行
System.out.print();
没有ln即不换行
写打地鼠游戏
1:用二维数组代表地图(动态声明)
2:初始化地图
3:随机放入老鼠
4:绘制地图
5:玩家输入坐标打老鼠
Scanner sc = new Scanner( System.in);
String str = sc.next();//这是输入字符串的方法
算数运算符 == 的
本质是 判断 内存中的地址 是否相同
String字符串类型判断字符是否相同
字符串.equals(“字符串”)
模块化思路
冗余带来的问题:
(1)书写麻烦(2)维护不方便
如何解决冗余:
使用 函数/方法 解决冗余
函数/方法(Function)
一段 具备特定功能的 高度封装的 代码块
函数的使用
1:函数的声明
2:函数的调用
函数的声明
函数五个要素
(1)修饰符 public(公开的) static(静态的)
(2)返回值类型 void代表返回值为null(空)
(3)函数名 类似变量名
(4)参数列表 暂时不写
(5)方法体 放在{ }里 就写要执行的代码
public static void myFn(){ }
函数的调用
在main方法中 函数名(); 即函数的调用
Day8 2022.08.10
函数名 需要遵循驼峰命名法
参数列表
三次调用函数结果都是相同的
解决方法
参数 就是函数执行过程中可能不相同的数值
参数分为
(1)形参 形式参数
只是虚的 不存在 占位置用的 声明过程中声明的
声明过程中 必须声明类型
(2)实参 实际参数
实际的 具备含义的 用在调用过程中
多个参数之间 使用 , 进行分隔 有顺序要求
返回值
关键字 return;
teturn; 返回数字出去
结束当前函数的运行
变量作用域
在函数内声明的变量 函数外无法获取
在函数内声明的变量被称为局部变量
开始封装 猜拳游戏
先根据功能模块 对代码进行划分
然后子啊进行封装
1:用户出拳
2:电脑出拳
3:判断结果
4:是否重复游戏
全局变量写法:public static int user
变量user其他方法也可以用
第二个里程碑
面向对象编程 oop编程
什么是对象
所有一切 看得见的 摸得着的 都是对象
世间万物皆对象
如何描述对象
对象的特点 被称为 属性
对象的行为 被称为 方法
在于 对现实生活 的模拟
Day9 2022.08.11
面向对象编程
世间万物皆对象
对象里面有
属性和方法
属性代表对象的特征 方法代表了对象的行为
一定是自己主动做的事情 才是 这个的对象的方法
Java 中的 对象Object和类Class
类
由多个相同或者相似的对象 抽象出 类
物以类聚
类是模板
确定这个类的对象将会具有什么属性和方法
模板只是用于设计 无法拿来直接使用,但是制造出来的可以使用
从类当中实例化出对象
Java是一门 面向对象的编程语言
class也定义了一种 新型的数据类型
类名也要语义化
大驼峰命名法 一般首字母大写
方法 基本类似于之前学过的函数
类写完之后 不能做事情 因为类只是个模板
要从类中实例化出对象 由对象来做事情
对象使用属性 语法: 对象名.属性
对象调用方法 语法: 对象名.方法名();
属性和方法可以直接调用它本身类的方法
对象抽象出类 类实例化出对象
面向对象的三大特性
(1)封装
(2)继承
(3)多态
类的封装:
封装:隐藏具体细节
使用封装实现限制
私有化属性,并提供共有的访问方法
利用修饰符实现
public 意为 共有的
所有类 所有的地方都可以直接访问
private 意为 私有的
能且仅能 在本类中使用
Day10 2022.08.12
打地鼠的对象 它们的属性和方法
对象 | 属性 | 方法 |
地鼠 | X坐标 ,Y坐标 | 随机坐标 |
玩家 | X,Y,积分,血量 | 输入坐标 |
控制者 Controller | 地图、地鼠、玩家 | 初始化地图、放置老鼠、绘制地图、判断是否打中 |
面向过程
面向对象
两者的差别
面向过程 只关注事情本身的完成 不关注谁去做
面向过程 更多关注 谁去做事情 厘清职责
面向对象的三大特性
(1)封装
(2)继承
(3)多态
类的封装:
封装:隐藏具体细节
使用封装实现限制
私有化属性,并提供共有的访问方法
利用修饰符实现
public 意为 共有的
所有类 所有的地方都可以直接访问
private 意为 私有的
能且仅能 在本类中使用
不写修饰符 即默认default,但是default不能写在前面
protected 受保护的 和继承有关
使用类实例化多个对象时,每个对象都需要进行赋值的时候
为了省事,需要借助构造函数
构造函数
是一个没有返回值(连void也没有) 并且函数名和类名相同的函数
构造函数的特点是 再对象实例化的一瞬间 便会执行
利用构造函数的参数实现对属性的赋值
构造函数中获取相同名字的时候,使用就近原则
this
类似于中文里面的 “我自己的” 指向 对象本身
方法的重载
即在同一个类中 方法名相同 但是参数列表不同
参数列表不同 意为 数据类型不同
Week3
Day11 2022.08.15
System.exit(0) 让程序整体退出
equalsIgnoreCase() 判断字符串相等,无视大小写
对象的生命周期
对象的出生 一旦被声明 并赋值之后 对象出现
对象的销毁 当该对象没有被指向的时候 就会自动销毁
static
静态/静态 的意思 就是不依赖对象
动态的意思 就是依靠对象
static 修饰后 直接通过类名就可以使用
static 的方法 只能访问 static的数据 不能访问普通数据
即 动态可以用 静态和动态
但是 静态不能用动态
Day12 2022.08.16
继承
继承就是 子类 拥有父类的属性和方法
继承需要符合 is-a关系 父类更通用,子类更具体
关键字 extends 写在类名后面
一个类不可以继承多个类
继承不能滥用
牵一发动全身,父类改变一次,其他的全部收到影响
即 系统耦合性过高
继承什么时候用
足够熟悉项目架构的时候
现在的继承常用于我门自己写的类去继承 Java官方的类(Swing)
构造函数也可以继承
运行时,先执行父类的构造函数
构造函数可以计入参数
子类依然可以使用构造函数 参数
当父类和子类的构造函数都有参数并且父类需要传入参数时
关键字 super
放在子类的构造函数,必须放在上面,里面 用来 子类找父类
super( )可以给父类构造函数传参
super. 可以在子类中直接调用父类的属性和方法
Day13 2022.08.17
面向对象 多态
方法的重写
父类中的方法,子类也写练一个一摸一样的,最终执行的是子类的方法
重写规则
修饰符一定不能强于父类 放回置类型 方法名 参数列表 必须一样 才是重写
重构
代码删了全部重写
接口(interface)
方法体能省略 但是要用接口
Java中的接口 就是一些没有方法体的结合
好处1:
规定好项目整体项目开发的规范
好处2:
规定项目股价 方便填充内容
接口的使用
被称为接口的实现
implements
实现接口的类 需要全部实现 接口中的方法
有方法体的方法 被称为 实例方法
没有方法体的方法 被称为 抽象方法
接口 可以是多实现一个类 可以实现多个接口
继承不能继承多个
继承代表血缘关系
接口代表社会关系(即 体现职责)
Day14 2022.08.18
接口不能new(实例化)
继承只能有一个,接口可以在同一个类中多实现接口方便团队一起写代码,方便管理
常量
声明之后 不会改变的量 就是常量
final 最终的意思
public static final int NUM = 100; 常量的声明,且声明必须赋值
文件名.常量 调用常量的方式
常量既可以在类里面声明 还可以在接口里面声明
Day15 2022.08.19
接口的缺陷
只要实现方法,必须全部实现 一个都不能少
解决方案:
方案1:使用一个父类去实现接口 然后继承父类
方案2:使用抽象类
抽象类
它还是个类
关键词 abstract
抽象类中 既可以写 实例方法 也可以写抽象方法
抽象类也是各类 要使用的话得用继承
抽象类和接口一样不能直接被实例化(不能被new)
抽象方法
必须被重写
抽象方法必须定义在抽象类中,普通类不能写抽象方法
抽象类和接口的不同点
接口中只有抽象方法 不能有实例方法 抽象类都可以有
抽象类用继承,继承只能用一个 接口可以多个
接口强调功能的实现 抽象类强调所属的继承关系
接口中的成员变量为常量 不可修改 抽象类中的可以被修改
字符串 String
字符的序列 某种程度上有类似于字符的数组
也有下标和长度
indexOf 作用是查找字符串
没有的返回-1 区分大小写 也可以查找多字符串
StringBuffer 是String的子类
StringBuilder 线程不安全
API 使用文档
Week 3
Day16 2022.08.16
基本数据类型
本身不带方法
如果要用类似String的方法则使用封装类
除了int和char之外 其余都是首字母大写 即为封装类
public static void main(String[] args) {
int num = 10320;
Integer newInt = new Integer(num);
System.out.println(newInt.toString().length());
}
//输出5
异常
程序正常可以使用 出现意外 导致程序中断
Java 中处理异常
try{
可能产生异常的代码段
}catch(Exception e){
一旦出现异常,就执行内部代码
}
e.printStackTrace(); //提示报错信息
Exception 代表所有异常的总父类
代码调试 DeBug调试
分包
设计模式
MVC模式
M: Model 模型层 (当前指所有实体类)
V: View 视图层 (指所有视图相关类)
C: Controller 控制层 (指所有管理者相关类)
import Model.*;//引入该包的所有文件
登录/注册功能
需要: 1.账号 2.密码
登入需要做几步事情
注册需要做几步事情
本游戏中 用户有多个用户
具体几个用户,不确定
需要一个可变长度并且可以存储玩家的复合类型的存储方式
arrayList 属于数据结构之一 它的父类是List类
某种意义上 arrayList就是个可变长度的数组
列表的方法
add();列表的添加
size();查看列表长度
get(下标);根据列表下标获取内容
Day17 2022.08.23
arrayList 基本可以理解为可变长度的数组
.size() 获取列表长度
.get() 获取列表内指定下标的元素
.add() 往列表内添加内容
.remove() 删除指定下标的内容
.clear() 清除列表里面的所有内容
ArrayList不能存储基本类型
如果要存基本数据类型,就要使用它的包装类
注册
1:输入账号
(2:判断是否重复,如果重复 直接结束注册)
3:输入密码及确认密码
4:判断两个密码是否相同
5:存储账号密码
6:player存到列表里面
7:提示 注册成功
登录
1:输入账号和密码
2:开始比较验证码是否正确
3:循环列表进行比较
4:如果账号密码相同,提示成功
5:如果不相同,提示登录失败
Day18 2022.08.24
界面
客户端 client
浏览器 browser
Swing
所有内容 基本都要带J开头
Swing的结构
顶级容器
中间容器
组件
JFrame:用于框架窗口的类(顶级容器之一)
package View;
import javax.swing.*;
public class MyFirstFrame extends JFrame {
public MyFirstPenel myPanel;
public MyFirstFrame(){
setSize(600,400);//设置大小
setResizable(false);//设置不能改大小
setLocationRelativeTo(null);//设置位置居中
setTitle("我的第一个界面");//设置标题
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置点关闭的时候退出程序
myPanel = new MyFirstPenel();//实例化中间容器
add(myPanel);
//添加菜单
//1:菜单栏
JMenuBar myBar = new JMenuBar();
//2:菜单
JMenu menu1 = new JMenu("菜单1");
myBar.add(menu1);
//绝大部分组件用add添加,但是菜单栏用setJMenuBar
setJMenuBar(myBar);
//3:菜单项
JMenuItem item1 = new JMenuItem("菜单项1");
JMenuItem item2 = new JMenuItem("菜单项2");
JMenuItem item3 = new JMenuItem("菜单项3");
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
//设置子菜单
JMenu menu2 = new JMenu("子菜单演示");
myBar.add(menu2);
JMenuItem item4 = new JMenuItem("普通项");
JMenu smallMenu = new JMenu("子菜单");
JMenuItem smallItem = new JMenuItem("子菜单的项目");
smallMenu.add(smallItem);
menu2.add(item4);
menu2.add(smallMenu);
setVisible(true);//界面可视化,放在所有内容最下面
}
}
中间容器(Panel)和中间的组件
package View;
import javax.swing.*;
import java.awt.*;
public class MyFirstPenel extends JPanel {
public MyFirstPenel(){
// setBackground(new Color(21, 47, 68));//设置背景颜色
setLayout(null);//设置布局为自由布局
//文字组件,括号内表示文字内容
JLabel lb1 = new JLabel("今天天气不错");
lb1.setBounds(10,10,120,10);
add(lb1);
//按钮组件,括号内表示按钮内容
JButton btn1 = new JButton("点击一下");
btn1.setSize(120,36);//设置大小
btn1.setLocation(50,50);
add(btn1);
//单行文本框,括号内表示文本框长度
JTextField textField = new JTextField(10);
add(textField);
//多行文本域,括号内表示行数,长度
JTextArea textArea = new JTextArea(10,10);
add(textArea);
}
//背景图片
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//实现图片绘制的方法
Image bgImg = new ImageIcon("images/bg.png").getImage();
g.drawImage(bgImg,0,0,600,400,null);
}
}
布局
就是组件摆放的方式
自由布局 setLayout(null);
背景图
使用JPanel自带的方法
paintComponent
菜单
放在顶级容器里面
1、菜单栏 (JMenuBar)
需要注意的是,添加的时候用的是setJMenuBar
2、菜单(JMenu)
3、菜单项(JMenuItem)
Day19 2022.08.25
乱码:字符集
布局
自由布局 setLayout(null);
FlowLayout 流式布局 是JPanel的默认布局
BorderLayout 边界布局 是JFrame的默认布局
GridLayout 网格布局
CardLayout 卡片布局
流式布局
组件一排一排的放置,防止不下换行
边界布局
BorderLayout 有个特点,如果是add方法做添加,必须指定位置添加
使用布局时,不能用setSize()改大小
用setPreferredSize(new Dimension(宽,高));设置大小
事件
Java中的事件就是一件能够被Java捕获到的事情
Java处理时间的模式 是 授权事件模型
1:事件源
2:监听器
Day20 2022.08.26
事件
Java中的事件就是一件能够被Java捕获到的事情
ActionListener 动作监听 可以给按钮以及菜单项的点击都能监听
因为只有一个方法,所以没有抽象类
一个监听器完成所有监听,不同按钮之间如何区分
ActionCommand 动作指令
实现注册功能
方法是再监听中调用到controller的注册方法
监听器使用
1:写好监听器
2:实例化监听器
3:给组件注册监听
Day21 2022.08.29
定时器
每隔一段时间 做点什么事情
两大关键要素
1.间隔时间 2.做什么事情
Timer 是定时器的意思,但是自己创建的不能教Timer
timer中使用actionListener代指要做的事情
但是它不是监听器
Timer必须要结合界面使用
如何判定命中
碰撞体积检测 坐标重叠
目标所在区域和鼠标点击的位置进行判断
鼠标坐标的获取 e.Point();
二阶段
Day0(起头) 2022.09.16
数据库:DataBase
作用:存储数据
内存:列表、变量、8大数据类型
程序关闭,断电就丢失了
硬盘:保存为文件
需要通用的格式,方便程序的访问、存取、储存等
1、数据结构
(1)关系型数据库 表格与表格之间的关系
Mysql、Oracle、SQL Server等
(2)对象数据库 Oracle
(3)键值对数据库 大数据分析
Redis、Hbase、Hadoop
2、数据的容量
小型 excel、access、sqlite【手机、终端】
中型 MySQL 免费、开源
大型 Oracle
创建表:
学生表:
列:学号、性别、年龄、生日等——————>列或者字段
类:属性----------------------->数据类型:八大基本数据类型
字段类型
常用: int double varchar(可变长度) date/time/datetime
date:日期 yyyy-mm-dd
time:时间 hh:mm:ss
datetime: yyyy-mm-dd hh:mm:ss
创建表的语法:
先选择数据库:use +数据库名;
create table 表名( 列名 类型);
向表中插入数据
insert into 表名 (num,sex,name,age,birthday)
分类:
DDL: 创建、删除、修改表(视图、触发器)等 数据定义语言
DML: insert update delete select 插入、修改、删除、查询数据等 数据操作语言
DCL: 数据控制语言 use database,权限赋值
Week1
Day1 2022.09.19
二阶段里程碑:
1、MySql 2、网络通讯 3、IO流 4、JDBC 5、多线程
二阶段学习:
1、一阶段知识巩固,精进
2、逻辑思想,提升编程思维能力
3、学习查阅API
数据类型:int double float
varchar:字符串 datetime,date:时间
CRUD(增删改查):
insert into 表名 ( ) values( ) --增加
delete from 表名 where<限制条件> --删除
update 表名 set uname = ' ' --修改
select 查询的东西 from 表名 where<条件>--查询
Day2 2022.09.20
分组查询:关键词:group
select * from 表名 group by 字段 having 条件(分组条件) 根据字段分组
内连接: 表1 inner join 表2 on 条件
Day3 2022.09.21
jdbc:
是Java处理db的一个计数,其中保安大量的类和接口等API,以及连接DB驱动程序
sql语句
查询 返回 一个表
增删改 返回 所受影响的行数 int