MySQL:DDL与DML 前端

一、开发一个数据库的流程是怎样的?

1). 数据库设计阶段

在项目开发时,首先开发人员需要根据产品经理出具的页面原型 和 需求文档进行需求的分析,然后进行项目的设计,包括:概要设计、详细设计、接口设计、数据库设计等。那这里呢,有很重要的一环,就是数据库设计,要设计数据库以及存储数据的表接口。 这是第一阶段,数据库设计阶段。

2). 数据库操作阶段

我们根据页面原型及需求分档,分析需求,实现业务功能,最终要通过java程序操作数据库中的数据,完成数据的增删改查操作。而要操作数据库,我们就得通过SQL语句去操作,所以在这一阶段,最重要的就是数据库。

3). 数据库优化阶段

我们的基本业务功能实现完毕后,还得考虑项目的优化,而项目优化,很重要的一环就是数据库的优化。当然数据库优化的手段有很多,包括:索引、SQL优化、分库分表等等。


二、DDL怎么建库,建表?

建库:在SQL文件中输入create database 库名/create schema 库名,然后运行该命令;

或者使用图形化工具,来创建数据库,创建表、修改表等DDL操作。

建表:在SQL文件中输入:create table  表名(
    字段1  字段1类型 [约束]  [comment  字段1注释 ],
    字段2  字段2类型 [约束]  [comment  字段2注释 ],
    字段3  字段3类型 [约束]  [comment  字段3注释 ],
    ......
    字段n  字段n类型 [约束]  [comment  字段n注释 ] 
) [ comment  表注释 ] ;,然后运行该命令;

或者使用图形化工具,来创建数据库,创建表、修改表等DDL操作。


三、约束有哪些,什么含义?

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

目的:保证数据库中数据的正确、有效性和完整性。

分类:

约束

描述

关键字

非空约束

限制该字段的数据不能为null

NOT   NULL

唯一约束

保证该字段的所有数据都是唯一、不重复的

UNIQUE

主键约束

主键是一行数据的唯一标识,要求非空且唯一

PRIMARY KEY

默认约束

保存数据时,如果未指定该字段的值,则采用默认值

DEFAULT

外键约束

用来让两张表的数据之间建立连接,保证数据的一致性和完整性

FOREIGN KEY

注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。


四、DML操作数据insert into, update, delete

1.增加(insert)

1).给指定字段添加数据

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

2). 给全部字段添加数据

insert into 表名 VALUES (值1, 值2, ...);

3). 批量添加数据

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

1.修改(update)

修改数据的具体语法为:

update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [ where  条件 ] ;


五、SpringBoot中用过哪些注解,有什么作用?

1.bean的声明注解

要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:

注解

说明

位置

@Component

声明bean的基础注解

不属于以下三类时,用此注解

@Controller

@Component的衍生注解

标注在控制器类上

@Service

@Component的衍生注解

标注在业务类上

@Repository

@Component的衍生注解

标注在数据访问类上(由于与mybatis整合,用的少)

注意事项:

  • 声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。
  • 目前来说,我们使用以上四个注解都可以声明bean,但是在集成后端web开发之后,声明控制器bean只能用@Controller。

2.依赖注入注解

注解

说明

位置

@Autowired

表示在程序运行时,Springboot会自动的从IOC容器中找到UserService类型的bean对象,然后赋值给该变量。

 

@Primary

当存在多个相同类型的Bean注入时,加上@Primary注解,来确定默认的实现。

@Qualifier

可以通过@Autowired ,配合@Qualifier 来指定我们当前要注入哪一个bean对象。 在@Qualifier的value属性中,指定注入的bean的名称。

@Resource

通过@Resource注解,并指定其name属性,通过name指定要注入的bean的名称。这种方式呢,是按照bean的名称进行注入。

注意事项:

@Autowird 与 @Resource的区别:

  • @Autowird 属于spring框架,默认按照bean的类型注入。 可以配合 @Qualifier注解,实现按照名称注入。
  • @Resource是JavaEE自带的注解,根据bean的名称进行注入的。

3.其他注解


六、后端开发中三层架构是哪些,各自负责什么?
  • Controller-请求处理、响应数据:接收前端发送的请求,对请求进行处理,并响应数据;
  • Service-逻辑处理:处理具体的业务逻辑;
  • Dao-数据访问:负责数据的访问操作,包含数据的增、删、改、查。

七、前端和后端传参有哪些形式

1.简单参数:

原始方式

通过Servlet中提供的API HttpServletRequest 可以获取请求的相关信息,比如获取请求参数;

在Controller中,我们要想获取Request对象,可以直接在方法的形参中声明 HttpServletRequest 对象。然后就可以通过该对象来获取请求信息;

SpringBoot方式

在Springboot的环境中,对原始的API进行了封装,接收参数的形式更加简单。 如果是简单参数,参数名与形参变量名相同,定义同名的形参即可接收参数。

2.简单实体对象:如果请求参数比较多,通过上述的方式一个参数一个参数的接收,会比较繁琐。 此时,我们可以考虑将请求参数封装到一个 pojo (bean)对象中。 此时,要想完成数据封装,需要遵守如下规则:请求参数名与POJO的属性名相同

3.复杂实体对象:复杂实体对象指的是,在实体类中有一个或多个属性,也是实体类型的。复杂实体对象的封装,需要遵守如下规则:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。

4.数组参数:请求参数名与形参对象属性名相同且请求参数为多个,定义数组类型形参即可接收参数

5.集合参数:请求参数名与形参集合对象名相同且请求参数为多个,@RequestParam 绑定参数关系

6.日期参数:在一些特殊的需求中,可能会涉及到日期类型数据的封装,那对于日期类型的参数在进行封装的时候,需要通过 @DateTimeFormat注解,以及其中的pattern()属性来设置日期的格式((@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss"))。因为日期的格式多种多样,请求pattern属性中如何制定,前端传递参数时就怎么传递。

7.JSON参数:在前后端进行交互时,如果是比较复杂的参数,前后端通过会使用JSON格式的数据进行传输。 而传递json格式的参数,服务端,在Controller中,我们通常会使用实体类进行封装。 具体的封装规则如下:

JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数。需要使用 @RequestBody 标识。

8.路径参数:

处理上述演示的在请求体传递参数,以及在请求的url后面通过 ?xxx=xxx 的形式传递参数以外,在现在的开发中,经常还会直接在请求的URL中传递参数。比如:

http://localhost:8080/user/1 http://localhost:880/user/1/0

上述的这种传递请求参数的形式呢,我们称之为:路径参数。

  • 路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数

八、IOC,DI

控制反转: Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。

依赖注入: Dependency Injection,简称DI。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。

Bean对象:IOC容器中创建、管理的对象,称之为bean。


九、控制反转用哪些注解实现,DI用什么注解实现。详见第五点

十、Vue是什么,ElementUI是什么、Nginx是什么

Vue是一套前端框架,用于免除原生JavaScript中的DOM操作,简化书写。

基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上。

双向绑定是指当数据模型数据发生变化时,页面展示的会随之发生变化,而如果表单数据发生变化,绑定的模型数据也随之发生变化。

Vue是一种JavaScript框架,用于构建用户界面。它是一种渐进式框架,意味着你可以根据需要逐渐引入其特性。Vue具有简单易学、灵活和高效的特点,使得开发者可以轻松地构建交互性的Web应用程序。

ElementUI是一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,组成网页的部件,例如 超链接、按钮、图片、表格、表单、分页条等等 。

ElementUI是一个基于Vue的UI组件库,提供了一整套美观、易用且高效的组件,使得开发者可以快速构建漂亮的Web界面。ElementUI的组件范围广泛,包括按钮、表单、弹窗、导航等等,提供了丰富的样式和功能选项,减少了前端开发的复杂性。

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,在各大型互联网公司都有非常广泛的使用。

Nginx是一款开源的高性能Web服务器和反向代理服务器。它被广泛应用于搭建静态资源服务器、负载均衡、反向代理、缓存等场景。Nginx以其稳定性、可扩展性和高并发处理能力而闻名,能够快速、有效地处理大量的并发请求。Nginx也可以作为一个动态Web服务器与各种编程语言配合使用,如与PHP、Python、Node.js等。总之,Nginx是一个强大且灵活的服务器软件,被广泛用于构建高性能的Web应用架构。


十一、三剑客?

HTML、CSS、JavaScript

HTML:是一门语言,所有的网页都是用HTML 这门语言编写出来的,也就是HTML是用来写网页的,像京东,12306,公司官网等网站有很多网页。

CSS:是一门语言,用于控制网页表现。CSS也有一个专业的名字:Cascading Style Sheet(层叠样式表)。

JavaScript:是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。JavaScript 是用来控制网页行为的,它能使网页可交互,如改变页面内容、修改指定元素的属性值、对表单进行校验等。


十二、CSS 选择器有哪些

1.元素选择器:元素名称{color: red;};

2.id选择器:id属性值{color: red;};

3.类选择器:.class属性值{color: red;}。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值