黑马程序员JavaWeb全套基础教程,java web从入门到项目实战(IDEA版javaweb)
Flyeeer:
收藏从未停止[呲牙]学习从未开始[笑哭]
【回复】兄弟们,最后的项目可以跟着做出来吗?可以写到简历上吗?
编程渣渣:
P72 SQL语句需要自取2
insert into emp VALUES
(1001,'孙悟空',4,1004,'2000-12-17','8000.00',NULL,20),
(1002,'卢俊义',3,1006,'2001-02-20','16000.00','3000.00',30),
(100,'林冲',3,1006,'2001-02-22','12500.00','5000.00',30),
(1004,'唐僧',2,1009,'2001-04-02','29750.00',NULL,20),
(1005,'李逵',4,1006,'2001-09-28','12500.00','14000.00',30),
(1006,'宋江',2,1009, '2001-05-01','28500.00',NULL,30),
(1007,'刘备',2,1009,'2001-09-01','24500.00',NULL,10),
(1008,'猪八戒',4,1004,'2007-04-19','30000.00',NULL,20),
(1009,'罗贯中',1,NULL,'2001-11-17','50000.00',NULL,10),
(1010,'吴用',3,1006,'2001-09-08','15000.00','0.00',30),
(1011,'沙僧',4,1004,'2007-05-23','11000.00',NULL,20),
(1012,'李逵',4,1006,'2001-12-03','9500.00',NULL,30),
(1013,'小白龙',4,1004,'2001-12-03','30000.00',NULL,20),
(1014,'关羽',4,1007,'2002-01-23','13000.00',NULL,10);
【回复】你应该把1、2写在你自己的评论区,我帮你补上吧
create table dept(
id int PRIMARY KEY,
dname VARCHAR(50),
loc VARCHAR(50)
);
insert into dept values
(10,研发部,北京),
(20,学工部, 上海),
(30,销售部,广州 ),
(40,财务部,深圳);
create table job(
id int PRIMARY KEY,
jname VARCHAR(20),
descripition VARCHAR(50)
);
INSERT INTO job VALUES
(1,董事长,管理整个公司,接单),
(2,经理,管理部门员工),
(3,销售员,向客人推销产品),
(4,文员,使用办公软件);
create table emp(
id int PRIMARY KEY,
ename VARCHAR(50),
job_id INT,
mgr INT,
joindate date,
salary DECIMAL(7,2),
bonus DECIMAL(7,2),
dept_id INT,
FOREIGN KEY(job_id) REFERENCES job(id),
FOREIGN KEY(dept_id) REFERENCES dept(id)
);
CREATE TABLE salarygrade(
grade int primary key,
losalary int,
hisalary int
);
insert into salarygrade VALUES
(1,7000,12000),
(2,12000,14000),
(3,14000,20010),
(4,20010,30010),
(5,30010,99990);
【回复】重新整理了一下SQL语句,添加了备注。使用Navicat 在MySQL 8的环境下是可以成功创建表并添加的#多表查询练习
#创建练习用表
-- 部门表
create table dept(
id int PRIMARY KEY, -- 部门ID
dname VARCHAR(50), -- 部门名称
loc VARCHAR(50) -- 部门地址
);
-- 添加4个部门
insert into dept values
( 10, '研发部', '北京' ),
( 20, '学工部', '上海' ),
( 30, '销售部', '广州' ),
( 40, '财务部', '深圳' );
-- 职务表,职务名称,植物描述
create table job(
id int PRIMARY KEY, -- 职务ID
jname VARCHAR(20), -- 职务名称
descripition VARCHAR(50) -- 职责
);
-- 添加4个职务
INSERT INTO job VALUES
(1,'董事长','管理整个公司,接单'),
(2,'经理','管理部门员工'),
(3,'销售员','向客人推销产品'),
(4,'文员','使用办公软件');
【回复】回复 @玉米Pop :-- 工资等级表
CREATE TABLE salarygrade(
grade int primary key, -- 级别
losalary int, -- 最低工资
hisalary int -- 最高工资
);
-- 添加工资信息
insert into salarygrade VALUES
(1,7000,12000),
(2,12000,14000),
(3,14000,20010),
(4,20010,30010),
(5,30010,99990);
-- 员工表
create table emp(
id int PRIMARY KEY, -- 员工ID
ename VARCHAR(50), -- 员工姓名
job_id INT, -- 职务id
mgr INT, -- 上级领导
joindate date, -- 入职日期
salary DECIMAL(7,2), -- 工资
bonus DECIMAL(7,2), -- 奖金
dept_id INT, -- 所在部门编号
FOREIGN KEY(job_id) REFERENCES job(id), -- 职务ID外连接
FOREIGN KEY(dept_id) REFERENCES dept(id) -- 部门ID外连接
);
我不太难-:
5天淦完300多集,从零开始边学边做,终于做成了一个简单的简历信息管理系统,黑马牛逼[打call]
【回复】回复 @三三元元 :因为我们大作业选的题目就是简历信息管理,所以我目的性比较强,视频都是2倍速快速过,大多数都不会跟着敲,但是我看到我可能会用到的东西的时候我就会自己根据自己的需求跟着他敲的同时改一下。看完了过滤器之后我感觉现有技术足以做完所有的功能了,我就花了1天整合了前几天的模块做完了。
【回复】我作证,我是他舍友,看着他学完的,他贼强呢[微笑]
i困的黑猫:
我愿称这套视频为Java巅峰之作,未来播放量两百万预定,到时记得喊我[墨镜]
【回复】记得,到时候一定喊你[狗子][狗子]
【回复】回复 @黑马程序员 :一定会破百万
dd1446012370:
JavaWeb学习打卡Day1
1. Junit测试
① 步骤
定义一个测试类(eg: CaulatorTest)
定义测试方法 (eg:testAdd() , 返回值void,参数列表空参)
给方法加@Test
导入junit依赖
② 判定结果
红色失败,绿色成功。
使用断言判断处理结果:Assert.assertEquals(期望的结果,运算的结果)
③ @Before和 @After
@Before修饰的方法会在测试方法之前被自动执行
@After修饰的方法会在测试方法执行之后自动执行 (无论测试方法结果是否正确)
2. 反射
说明:其将类的各个组成部分封装为其他对象。
获取Class对象的三种方式:
① Class.forName(“全类名”)
多用于配置文件,将类名定义在配置文件中,读取文件,加载类。
② 类名.class
多用于参数的传递。
③ 对象.getClass()
多用于对象获取字节码的方式
结论:同一个字节码文件(.class)在一次程序运行过程中,只会被加载一次,无论通过哪一种方式获取Class对象都是同一个。
Class对象功能:
① 获取成员变量
Field【 】 getFields
Field getField(String name) (获取公共的public)
Field【 】 getDeclaredFields()
Field getDeclaredField(String name)
② 获取构造方法
Constructor【 】 getConstructors()
Constuctor<T> getConstructor(类名,参数)
③ 获取成员方法
Method【 】 getMethods()
Method getMethod()
④ 获取类名
String getName()
Field成员变量
① 设置值
void set(Object obj, Object Value)
② 获取值
get(Object obj)
③忽略访问权限修饰符的安全检查
setAccessible(true) 暴力反射
Constructor:构造方法
创建对象
T newInstance(Object …)
如果使用无参构造方法创建对象:Class对象的newInstance方法。
吃赣南脐橙长大的梦龙:
我就想知道这个老师的名字!因为黑马旅游网我完成了!🤠
【回复】回复 @白衣蓝剑_天冰雪寒 :是陈长宏,又给我改名了[调皮]
【回复】回复 @白衣蓝剑_天冰雪寒 :如假包换[OK]
有一个传说丶:
旅游网分页数据查询总结
后端:
首先需要一个pageBean对象,用于存放每一个分页的数据,中有一个List<T> list 集合的属性,用于存放route对象,route对象是关于路线信息的集合
需要一个routeServlet,继承BeanServlet;。接收网页中携带的数据,同时以这些数据为基础查询各种数据,即调用业务层查询所有数据并封装为pageBean对象同时转化为json返回给客户端
需要一个routeDao用于查询所有记录数和所有数据,即两个方法,findCount
findByPage(cid,start,pageSize)
需要一个service用于实现业务逻辑,同时生成一个pageBean对象并对其进行封装。
前端:
使用AJAX技术对页码记录数总页码等进行实时变化
cid需要自己给出,
加载页面完成从url获取cid,同时有一个运行load方法(参数为cid,当前页码,);
load方法用ajax实现业务查询,把查询到的pageBean的各种数据用拼字符串的方法把获取的数据拼起来组装到html中。
显示页码:
遍历的方式生成每一个li标签然后拼接到总的lis总,最后加载到对应的html中。同时对页码添加onclick事件,但事件触发时,运行load方法,
其中:首页,上一页,末页,下一页需单独处理再拼接到lis当中。
页码展示优化:
为了只展示10个,以选择的页码为中心,前5后4得到begin和end。当遍历显示页码时,把页码开始设为begin,结束设置为end,需注意特殊情况,begin<0或者end>totalPage.
数据展示:同样是拼字符串,用遍历的方式,把route的原始前端数据复制出来,将每一个数据改写成pageBean中的数据
【回复】回复 @喜羊羊不想想名字了 :可以呀
【回复】你好,请问你的旅游网可以分页运行吗?
【回复】回复 @有一个传说丶 :我的点击注册没有反应,请问您知道吗[大哭]
小柳llliu:
Java Web 学习打卡 day 10
①今天学习了数据库DCL管理用户增删查,修改密码,管理权限,
②JDBC的概念,各个类的详解,DriverManager注册驱动,获取数据库连接
Connection,Statement。
编程渣渣:
P72 SQL语句需要自取1
create table dept(
id int PRIMARY KEY,
dname VARCHAR(50),
loc VARCHAR(50)
);
insert into dept values
(10,'研发部','北京'),
(20,'学工部', '上海'),
(30,'销售部','广州 '),
(40,'财务部','深圳');
create table job(
id int PRIMARY KEY,
jname VARCHAR(20),
descripition VARCHAR(50)
);
INSERT INTO job VALUES
(1,'董事长','管理整个公司,接单'),
(2,'经理','管理部门员工'),
(3,'销售员','向客人推销产品'),
(4,'文员','使用办公软件');
create table emp(
id int PRIMARY KEY,
ename VARCHAR(50),
job_id INT,
mgr INT,
joindate date,
salary DECIMAL(7,2),
bonus DECIMAL(7,2),
dept_id INT,
FOREIGN KEY(job_id) REFERENCES job(id),
FOREIGN KEY(dept_id) REFERENCES dept(id)
);
CREATE TABLE salarygrade(
grade int primary key,
losalary int,
hisalary int
);
insert into salarygrade VALUES
(1,7000,12000),
(2,12000,14000),
(3,14000,20010),
(4,20010,30010),
(5,30010,99990);
【回复】你的字符串都没有加引号
世一努努力:
CREATE TABLE student1(
id INT, -- 编号
NAME VARCHAR(20), -- 姓名
age INT, -- 年龄
sex VARCHAR(5), -- 性别
address VARCHAR(100), -- 地址
math INT, -- 数学
english INT -- 英语
);
insert INTO student(id,NAME,age,sex,address,math,english) VALUES(1,'马云',55,'男','杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),(4,'柳青',20,'男','杭州',66,78),(5,'柳岩',55,'男','杭州',86,NULL),(6,'刘德华',57,'男','香港',99,99)
,(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65);
【回复】创建和插入的表名不一致哦,两个应该都是student1或都是student
黑马程序员:
打卡学习笔记挑战进行中,为激励大家学习,申请了一批黑马程序员的原创书籍,前20累计完成学习14天的同学,将获得一本黑马程序员原创书籍一本,其余完成者将获得价值99的精品教程,本次起止时间为05月25日——06月09日。详情活动报名q群858938084
在此条置顶评论中打卡学习笔记。6.08--day 15
【回复】6.08--day15
### Servlet编码步骤
#### 1)编码步骤
**第一步:前期准备-创建JavaWeb工程**
**第二步:编写一个普通类继承GenericServlet并重写service方法**
**第三步:在web.xml配置Servlet**
#### 2)测试
**在Tomcat中部署项目**
**在浏览器访问Servlet**
【回复】第十五天学习笔记打卡:
1. 学习http的执行原理
2. 学习request的原理,获取数据的方法
3. 使用http和request实现登录案例
诶嘿的嘿:
我想问下视频中的图片(img)在哪领取
【回复】30天精通Javaweb
链接:https://pan.baidu.com/s/12PxqjrqZ50Tm6zYzN0brZw
提取码:vton
【回复】回复 @412041011 :感谢[打call]
黑马程序员:
Java打卡笔记挑战,进活动群:926410800 可领课程笔记
本次活动起止时间10月26日-11月8日
可在此条置顶评论中打卡学习笔记。day 9
【回复】javaweb学习打卡day9
复习了一遍多表查询,感觉老师真是善良,几乎没出难的
事务这方面老师讲解的有点令人惊喜,以前学sql时候几乎都没这方面的理解
个人感觉,如果要朝着数据库这方面钻研的话,数据库设计,多表查询,事务精通这三个少不了的
【回复】一个servlet程序访问到另外一个servlet程序,被访问到的会自动执行service方法这是固定的,但是为什么还会执行第二个servlet的dopost或doget方法呢。
【回复】javaweb学习打卡day14
今天主要了解了html中几个基础核心标签,以及旅游网项目的首页制作
感觉比较简单,难度不是很大,期待更多的收获
郑平安11:
我才看完eclipse的,就出idea[大哭][大哭][大哭]
【回复】回复 @正能量的Asher :https://www.bilibili.com/video/BV1mE411h7Co/ 往这看
【回复】回复 @正能量的Asher :27天web
黑马程序员:
暑期学习打卡笔记挑战
前20名累计完成学习14天的同学将获得一本黑马书籍,其余完成者可领取价值99的课程。本次活动起止时间7月6日-7月23日。详情进活动群:711303242
在此条置顶评论中打卡学习笔记。day 8
【回复】day 8
1. JavaScript基本概念
2. 基本语法:
1. 与html结合方式
2. 注释
3. 数据类型
4. 变量
5. 运算符
6. 流程控制语句
7. JS特殊语法
8. 练习:99乘法表
3. 基本对象
1. Function:函数(方法)对象
2. Array:数组对象
3. Boolean
4. Date:日期对象
5. Math:数学对象
6. Number
7. String
8. RegExp正则表达式对象
9. Global
【回复】day08
JDBC概念(Java数据库连接)java database connecttivity
本质:sun公司定义所以关系型数据库的规则(接口),数据库厂商实现接口,提高数据库驱动jar包
执行代码的是jar包中的实现类
1、导入jar包2、注册驱动3、获取数据库连接对象Connection4、定义SQL5、获取执行SQL语句的对象 statement6、执行SQL,接受返回结果7、处理结果8、释放资源
*代码实现︰
/ /1.导入驱动jar包
//2.注册驱动
Class.forName( "com.mysql.jdbc.Driver" );
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3","root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行sql的对象statement
Statement stmt = conn.createstatement();
//6.执行sql
int count = stmt.executeupdate(sql);
//7.处理结果
System.out.println( count) ;
//8.释放资源
stmt.close();
【回复】day 8(太忙所以得晚上看)
今天学习了SQL 的概念以及语法等。。
1.SQL是结构化查询语言,定义了操作所有关系型数据库的规则,每一种数据库操作方式存在不一样的规则。
2.SQL的语法,SQL语句可以一行或者多行书写,以分号结尾,也可以使用空格和缩进来增强语句的可读性
3.Mysql数据库的SQL语句不区分大小写,关键字通常使用大写
4.学习了三种SQL注释的写法
5.SQL分类一般有四种,分别为DDL ,DML,DQL,DCL
世一努努力:
CREATE TABLE emp(
id INT PRIMARY KEY auto_increment,
NAME VARCHAR(30),
age INT,
dep_name varchar(30),
dep_location VARCHAR(30)
);
INSERT INTO emp (name,age,dep_name,dep_location) VALUES ('张三',20,'研发部','广州');
INSERT INTO emp (name,age,dep_name,dep_location) VALUES ('李四',21,'研发部','广州');
INSERT INTO emp (name,age,dep_name,dep_location) VALUES ('王五',20,'研发部','广州');
INSERT INTO emp (name,age,dep_name,dep_location) VALUES ('老王',20,'销售部','深圳');
INSERT INTO emp (name,age,dep_name,dep_location) VALUES ('大王',22,'销售部','深圳');
INSERT INTO emp (name,age,dep_name,dep_location) VALUES ('小王',18,'销售部','深圳');
爱学习的小健健:
p167正则表达式错误:
1.添加转义字符:因为字符串的转义问题,字符串的两个\实际上是一个\
var reg = new RegExp("\\w{6,12}");
var reg2 = /\w{6,12}/;
2.{}里面不能有多余的空格,我因为习惯性逗号后面加空格所以一直是false;删掉多余空格后里面两个数字都是蓝色的。
【回复】[嘟嘟]刚好看到这解决了这个问题,感谢[给心心]
【回复】后面讲案例的时候还会讲到这的,老师改过来了。敬请期待[滑稽]
【回复】第一点和第三点括号里面都是有双引号的,被屏蔽了