Html: 

超文本标记语言。是一种浏览器解读的语言。 



 <a>百度</a> 

 <h3>神州十一</h3> 





 xml:可扩展的标记语言 

 <persons> 

 </persons> 





 Web: 

Http:超文本传输协议 





 200:ok,可以获取服务端的数据了 

 404:访问的网址不存在。 



 URL地址: 

协议:主机ip:端口/具体路径 



http://10.0.166.127:8080/Day21_Server/aa.jpeg 




 需求:登录: 

思路: 

step1:创建一个页面:html 

form表单: 

submit:提交 





step2:创建服务端的java程序:Servlet(专门用于做服务端的java程序:提供处理客户端的请求) 

所谓的Servlet程序,就是一个java的class。继承HttpServlet。 



step3:接收客户端传来的数据: 

用户名,密码 



step4:查询服务端的数据库:是否有该数据 

有:登录成功 

没有:登录失败 



IO流:将数据写给客户端 

跳转: 







 url-mapping: 

键:要访问的数据资源:图片,音频,Servlet。。 

值:对应的url地址 





服务端: 

aa.jpeg:http://10.0.166.127:8080/Day21_Server/chutian.jpeg 







LoginSerlvt:http://10.0.166.127:8080/Day21_Derver/bbb 





 map: 

映射:名-值 





 HttpServletRequest request 

客户端发送到服务端的请求对象 



本次请求的各种数据信息: 

用户名,密码 



 HttpServletResponse response 

服务端给客户端的响应 







 text/html:minitype:描述数据类型:格式:大类型/小类型 



 image/jpg 







 step1:创建Dynamic Web Project工程 

 step2:在webContent下,创建html页面 

form表单:submit--->action:servlet的地址 



 step3:创建Servlet程序: 

重写doGet()/doPost() 

A:设置编码: 

request.setCharacterEncoding("GBK/UTF-8"); 

response.setCharacterEncoding(); 

response.setContentType("text/html;charset=gbk"); 



B:获取客户端传来的的数据:操作request对象 

request.getParamter("参数名");--->String 参数值 

 

C:理应查找数据库: 

D:给予客户端响应:操作response对象 

从response获取IO流 

response.getWriter()--->PrintWriter 



 







 数据库:用于数据的持久化。 



存储结构化的数据 



存储数据的仓库:增加,删除,修改,查找 



存储数据以数据表为单位。 





 猫名,年龄 

 墨墨,2岁 



 姓名,专业,学号 

 张三,化学专业,1001 







 字符串:Java:String,StringBuffer,StringBuilder 

char(20):数据库中的字符串 

varchar(20): 



 整数类型:Java:int,Integer 

int 

Integer:字段的数值自增:auto_increment 



 小数类型:Java:float,double 
  

 



 主键:primary key 

非空,唯一。 

自增:自增1。 



sqlite3.exe:工具本身的命令 

数据库的sql语句: 







 SQL(STRUCTURED QUERY LANGUAGE) 

数据定义语言(DDL):用于定义数据表的结构。 

create语句:创建数据表 

alter语句:修改表结构 

add: 

drop语句:删除数据表 





数据操作语言(DML:Data Manipulation Language),用于对数据库进行操作。更改数据的内容 

insert语句:增加,插入数据 

delete语句:删除 

update语句:修改,更新 





数据查询语言(DQL:Data Query Language),用于查询数据库,对数据库中的数据没有影响的。 

select语句:用于查询数据库 







 操作步骤: 

 step1:双击打开sqlite3.exe工具。用于操作my1610.db这个数据库 



 step2:使用sqlte3.exe的命令 

以.开头,回车结束。 



SQL语句:以;结束。 



A:打开数据库my1610.db 

.open my1610.db 



.tables:表示显示该数据库中的所有的表名称。 





B:创建数据表:使用SQL语句 

创建表: 

 

create table 表名(字段名 数据类型,字段名 数据类型); 



 create table users (id integer primary key autoincrement,username varchar(20),password varchar(30)); 







插入数据: 

insert into 表名(字段名,字段名,字段名。。) values (数值1,数值2,数值3.。。); 



 insert into users(id,username,password) values(1,'admin','admin123'); 

 insert into users(username,password) values('zhangsan','zhangsan123'); 



 insert into users(username,password) values('lisi','lisi123'),('wangwu','123'),('zhaoliu','1234'); 



修改数据: 

update 表名 set 字段=新值,字段=新值 [where 修改条件]; 



 update users set username='rose',password='rose123'where id = 3; 





删除数据: 

delete from 表名 [where 删除条件]; 



 delete from users where id = 3; 



查询数据: 

select 字段名,字段名 from 表名[where 查询条件]; 

 select id,username,password from users; 



 select * from users; 







修改表结构 

alter tabke 表名 add 字段 数据类型; 

 alter table users add note varchar(50); 



删除表: 

drop table 表名; 



 DDL: 

create 

alter 

drop  



 DML: 
  

insert 

update 

delete 



 DQL: 

select 



 表名:student 

 id 
 name 
  age 
 sex 
  classno 



 1 
 leo 
 21 
 male 
 1 



 2 
 rose 
  20 
 female 
  1 



 3 
 jessica 
  18 
 female 
  2 



 4 
 smith 
  23 
 male 
  2 



 5 
 tom 
 22 
 male 
 3 



 6 
 jack 
  22 
 male 
  3 



 7 
 james 
  24 
 male 
  3 



 8 
 kate 
  19 
 female 
  2 









 select 字段 from 表 where  ?; 

A:数学的关系符号: 

>,<,>=,<=,=,!=,<> 



B:and:同时满足--->& 

  or:选择一个条件满足即可--->| 



C:in:字段的值in(数值) 

 

D:between 数值 and 数值 



E:like,像 

模糊查询: 



通配符: 

_:匹配的一个任意字符。 

%:匹配0-多个任意字符。 





F:排序:order by 字段 升序(asc,默认)/降序(desc); 

位于sql语句的末尾。 



 





 1.查询:student表中的name,sex,age。age大于20岁的。 

 

select name,sex,age from student where age > 20; 



查询所有的学生信息,要求age 小于22岁。 

 

select * from student where age < 22; 





 2.查询student表中,年龄大于20岁的男同学。 

年龄比20大,性别是男的。同时满足。 



select * from student where age > 20 and sex ='male'; 

 



查询3班,年龄大于22岁的学生信息。 



   
 select * from student where classno = 3 and age > 22; 



 3.查询student表中,年龄大于20的男同学,或者年龄小于19的女同学。 



select * from student where age > 20 and sex = 'male' or age < 19 and sex = 'female'; 

 

查询1班的女生,或者是2班的男生的学生信息。 

 

select * from student where  classno = 1 and sex ='female' or classno =2 and sex ='male'; 



 4.查询表中,年龄为21,22,23的学生信息。 

select * from student where age = 21 or age = 22 or age = 23; 



select * from student where age in (21,22,23); 



select * from student where age >=21 and age <= 23; 



查询1班的,或者是3班的学生信息。 

 

select * from student where classno in (1,3); 



 5.查询表中,年龄在22到24之间的学生信息。 

 

select * from student where age >= 22 and age <= 24; 
  



select * from student where age between 22 and 24; 



查询1班,到2班的学生信息。 



select * from student where classno between 1 and 2; 



 6.查询表中,名字为jack,或者tom的学生信息。 

 

select * from student where name = 'jack' or name ='tom'; 



select * from student where name like 'jack' or name like'tom'; 



 7.查询表中,name以j开头的学生信息。 

通配符: 

_:匹配的一个任意字符。 

%:匹配0-多个任意字符。 

j 

ja 

jabc 

abcj 



j_ 

 

ja,jb,jc,jj 



j% 

 

j,ja,jaa,jaaaaaaaaaaa 



select * from student where name like 'j%'; 



查询name以t开头的学生信息。 



 8.查询表中,name的第二个字母为o的学生信息。 

select * from student where name like '_o%'; 





 9.查询表中,name中有o字母的学生信息。 

'%o%'; 



name中包含字母e的。 

 



 10.查询表中,学生的信息,按照age降序排序。 

降序:从大到小:desc 

升序:从小到大:asc 



排序:order by 字段名 desc;默认升序 





 11.查询所有的女同学的信息,按照年龄降序排序。 

select * from student where sex ='female' order by age desc; 





 12.查询男同学的信息,名字中包含m。按照年龄升序排序。 

sqlite> select * from student where sex ='male' and name like '%m%' order by age 

  asc; 





 13.查询年龄的最大值,最小值,平均值。 

 统计函数: 

 max(字段名): 

 min(); 

 sum() 

 avg() 

 count(*):计数 



select max(age),min(age),sum(age),avg(age) from student; 



 14.查询所有班级的人数。 

select count(*) from student; 

 

 15.查询班级里男人的人数,女生的人数。 

分组:group by 字段名; 



按照该字段的取值的种类。 

性别:2组 

班级号:3组 





group by sex; 



sex: 

male: 

female: 





classno: 

1 

2 

3 



age: 

18 

19 

20 

21 

22 

23 

24 





select sex, count(*) from student group by sex; 

 分组之后使用统计函数,结果就是分组后的。数据的条数取决于分组的组数。 



 16.查询每个班级的人数。并且显示班级号。 

sqlite> select classno,count(*) from student group by classno; 



 17.查询男生的人数,女生的人数,以及男生中的最大年龄,女生中最大年龄。 

select sex, count(*),max(age),min(age) from student group by sex; 



 

 18.按照班级编号,统计每个班级的人数,并且显示班级人数大于2的班级。 

select classno,count(*) from student group by classno having count(*)>2; 



 分组后再限定条件:having 



 19.限定查询:limit。, 

 count()-->总的数据量:118 



 每页20,共6页。 





 limit m, n;//跳过m条,查询n条 

 1页:limit 0,20; 

 2页:limit 20,20; 

 3页:limit 40,20; 

 4页:limit 60,20; 

 。。。。 





 总结: 

 1.Servlet 

Html:超文本标记语言。 

form表单: 

<form action="submit按钮点击后,出发的路径" method="get/post"> 

<input type="text/passwor/radio/checkbox/file/button/reset/submit/image"> 

<select> 

<option></otption> 

</select> 

<textarea></textarea> 

</form> 



按钮: 

button,image:点击后无效果。配合js 

reset,submit:点击后有事件。 



get/post 

get: 

A:默认的请求方式 

B:数据追加在url后边 

url?参数名=参数值&参数名=参数值 



C:传递的数据量少量。 

D:容易乱码 

E:数据不安全 



post: 

A:将要传递数据写给服务端。 

B:可以传递大量的数据。 
  

C:数据安全 

D:可以传递大量数据。 

 

Servlet:服务端的java程序。(了解原理) 

能够处理客户端的请求:继承HttpServlet 



doGet(),doPost() 



Request:请求对象 

Response:响应对象 





step1:先设置编码: 

request.setCharacterEncoding(""); 

response.setCharacterEncoding(""); 

response.setContentType("text/html;charset=.."); 



step2:接收客户端传递来的数据: 

request.getParater("");-->String  



step3:查询数据库: 

 

step4:给予响应:response对象 

response.getWriter()--->PrintWriter  

 2.SQLite:重点掌握 

SQL: 

DDL:数据库定义语言:定义数据表的结构 

create 

alter 

drop 



DML:数据库操纵语言:操作数据表中的数据:增删改 

insert 

delete 

update 



DQL:数据库查询语言:查询 

select 







 增删改查:CRUD 

create, read, update, and delete (CRUD)  

 

 

 建表语句:(重点) 

create table 表名 (字段 数据类型 ,字段 数据类型); 



 主键:修饰一个字段:要求该字段的值不能为空,也不能重复。id 

自增: 





 修改表:(了解) 

alter table 表名 add 字段名 数据类型 

alter table 表名 rename to 新名; 



 删除表:重点 

drop table 表名; 



 插入数据:重点 

insert into 表名(字段名) values (数值); 



 删除数据: 

delete from 表名 [where 删除条件]; 



 修改数据: 

update  表名 set 字段=新值,字段=新值 [where 修改条件]; 



 查询数据: 

select 字段名,字段名from 表名 [where 查询条件]; 



A:关系运算符;>,<,>=,<=,=,!=,<> 

B:and or 

C:in 

D:between and 

E:order by 字段 升序(asc)/desc(降序) 

F:模糊查询: 

like  '' 

_:匹配任意1个字符 

%:匹配任意0到多个字符 



G:分组: 

group by  字段; 

 

H:统计函数: 

max(),min(),sum(),avg(),count() 



I:分组后限定条件:having 

J:limit 





 Http协议: