spring是全栈,轻量级开源框架。以ioC(反转控制)和AOP(面向切面编程)为内核。

提供springMVC和springJDBC,业务层事务管理等技术。

spring的优势:方便解耦,简化开发。AOP编程支持。声明式事务的支持。方便程序设置。

Spring程序开发步骤:

1.导入Spring开发基本包左边

2.编写对象接口和实现类。

3.配置spring的xml文件,并配置对象进入xml文件

4.使用spring的api获得bena示例。

没招,第一步创建spring项目都卡壳了,先学javaweb,再继续ssm。

SQL语法

DDL语法(操作数据库和表的语句)

查询,创建,删除,使用。

操作数据库

show databases;  --展示所有数据库

create database 数据库名称; --创建一个新的数据库//不能创建两个名称一样的数据库

create database if not exists 数据库名称;--可以用于判断数据库是否已经存在,若存在则不创建。

drop database 数据库名称;  --删除目标数据库.删除也可以使用exists判断存在。

use 数据库名称;--选择目前使用的数据库

select database();--查询目前使用的数据库名称

操作表

show tables;        --查询当前选中的数据库中有哪些表

desc func;        --查询当前表有哪些字段,以及字段的类型(查询表结构)\

create table 表名(); --创建新表。注意最后一个字段不能要逗号

--创建表--
create table 表名(
    字段名 数据类型,
    字段名 数据类型,
    ... 
    字段名 数据结构
);

sql中的数据类型:数值,日期,字符串.

此表来源为黑马程序员:

drop table 表名;  --删除表,也可以用if exists判断是否存在.

alter table 表名 rename to 新的表名;  --表名重命名

alter table 表名 add 列名 数据类型; --增加新列

alter table 表名 modify 列名 新的数据类型; --修改列的数据类型

alter table 表名 change 列名 新列名 新的数据类型; --修改列名和数据类型

alter table 表名 drop 列名; --删除列

DML语法(对表中数据增删改操作)

insert into 表名(列名1,列名2,...)valuse(值1,值2,...); --给指定列添加数据

insert into 表名 values(值1,值2,...); -- 给表中所有列添加数据

insert into 表名 valuese(值1,值2,...),(值1,值2,...),(值1,值2,...)...;  --批量添加

update 表名 set 列名1=值1,列名2=值2,...[where 条件];        --更新数据。使用方式如下。        注意:如果update语句不写where条件,会将表中所有数据全部修改。非常危险,注意注意。

update stu set sex = '男' where name = 'zhangsan';

delete from 表名 [where 条件];        --删除数据。同样也要注意加where条件,不然会把表中所有数据都删了。

DQL语法(查询操作)

SELECT
    字段列表
FROM
    表名列表
WHERE
    条件列表
GROUP BY
    分组列表
HAVING
    分组后条件
ORDER BY
    排序字段
LIMIT
    分页限定

基础查询

select 列名1,列名2,...,列名n from stu; --查询列数据

select * from 表名; ---查询全部,但是*要少用,为了代码规范。

select distinct 列名 from 表名; --查询列中不重复数据。

如下查询方式,可以用as给列名起一个别名,方便阅读。as也可以省略。

select name,math as 数学成绩,english as 英语成绩 from stu;
select name,math 数学成绩,english 英语成绩 from stu;

条件查询

select 字段列表 from 表名 where 条件列表;、

注意:null值的比较不能使用等号(=)进行比较,需要使用is null 或 is not null 进行比较。

模糊查询:%表示任意个字符,_表示单个字符。

select * from stu where name like '张%';--查询名字开头是张的人
select * from stu where name like '_张%';--查询名字中第二个字是张的人
select * from stu where name like '%张%';--查询名字中有张的人

排序查询

select 字段列表 from 表名 order by 排序字段名1[asc/desc],排序字段名2[asc/desc];  --希望查询出的数据是有序的,使用排序查询,第一个条件相等时,启用第二个条件。

selcet * from stu order by name asc;
selcet * from stu order by name asc,score desc;

分组查询

使用分组查询就要知道聚合函数:

使用聚合函数需要注意:

聚合函数使用时都不考虑null数据。

--使用count时最好对主键使用,或者直接使用*--
select count(主键id) from stu;
select count(*) from stu;

select 字段列表 from 表名 [where 分组前条件] group by 分组字段名 [having 分组后条件];

分组之后查询出的字段为分组字段和聚合函数,查询其他字段无意义。

分组前条件用where,分组后条件用having(having可以对聚合函数进行判断,而where不行。这是因为代码的执行顺序,where>聚合函数>having,导致)。

select sex,avg(score) from stu group by sex;
select sex,avg(score),count(&) from stu group by sex;
select sex,avg(score),count(&) from stu where score >= 70 group by sex;
select sex,avg(score),count(&) from stu where score >= 70 group by sex having count(*) > 2;

分页查询

select 字段列表 form 表名 limit 起始索引,查询条目数;

在页面中的查询,就可以用动态的数据进行起始索引的计算,实现分页查询

起始索引 = (当前页码 - 1) * 每页显示的数据条数。

selcet * from stu limit 0 , 3;    --查询前三条记录,此处的0是索引。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐