帮粉丝找了一个基于SpringBoot的天猫商城项目,快速部署运行,所用技术:MySQL,Druid,Log4j2,Maven,Echarts,Bootstrap …免费给大家分享出来前台演示后台演示天猫商城是一个基于SpringBoot的综合性B2C电商平台,基于Spring Boot的天猫商城,快速部署运行,所用技术:MySQL/Druid/Log4j2/Maven/Echarts/Bootstrap需求设计天猫商城:****用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。作为天猫商城的核心组成部分之一的天猫数据管理后台:包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。注意事项源码资料获取方式:关注小编+转发文章+私信【 078】免费获取!!!!后台管理界面的订单图表没有数据为正常现象,该图表显示的为近7天的交易额。该项目同时兼容eclipse,但如有自行扩展代码的意愿,建议使用IDEA。部署方式1、打开 IntelliJ IDEA 导入项目2、项目数据库为MySQL 5.7版本,在sqls文件夹中找到SQL文件并导入到数据库中3、使用IDEA打开项目后,在maven面板刷新项目,下载依赖包4、配置数据库连接并启动SpringBootApplication即可后端界面前端界面作者的话前后台业务代码,都是自主完成,后台都是专门设计的样式,前台是参考天猫自行开发界面**天猫商城源码源码资料获取方式:关注小编+转发文章+私信【 078】免费获取!!!!MySQL篇1、数据库的三范式是什么第一范式:列不可再分 第二范式:行为可以唯一区分,主键约束 第三范式:表的非主属性不能依赖与其他表的非主属性 外键约束 且三大范式是一级一级依赖的,第二范式建立在第一范式上,第三范式建立在第一第二范式上。2、MySQL数据库引擎有哪些如何查看mysql提供的所有存储引擎mysql> show engines;
mysql常用引擎包括:MYISAM、Innodb、Memory、MERGEMYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎Innodb:行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持外键约束,并发能力强,占用空间是MYISAM的2.5倍,处理效率相对会差一些Memory:全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在mysql重启时会丢失,默认使用HASH索引,检索效率非常高,但不适用于精确查找,主要用于那些内容变化不频繁的代码表MERGE:是一组MYISAM表的组合3、说说InnoDB与MyISAM的区别InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高;4、数据库的事务什么是事务?: 多条sql语句,要么全部成功,要么全部失败。事物的特性:数据库事务特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durabiliy)。简称ACID。原子性:组成一个事务的多个数据库操作是一个不可分割的原子单元,只有所有操作都成功,整个事务才会提交。任何一个操作失败,已经执行的任何操作都必须撤销,让数据库返回初始状态。一致性:事务操作成功后,数据库所处的状态和它的业务规则是一致的。即使数据不会被破坏。如A转账100元给B,不管操作是否成功,A和B的账户总额是不变的。隔离性:在并发数据操作时,不同的事务拥有各自的数据空间,它们的操作不会对彼此产生干扰持久性:一旦事务提交成功,事务中的所有操作都必须持久化到数据库中。5、索引是什么官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗地说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独地索引文件中,也可能和数据一起存储在数据文件中)。我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别别说明,默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。6、SQL优化手段有哪些1、查询语句中不要使用select *2、尽量减少子查询,使用关联查询(left join,right join,inner join)替代3、减少使用IN或者NOT IN ,使用exists,not exists或者关联查询语句替代4、or 的查询尽量用 union或者union all 代替(在确认没有重复数据或者不用剔除重复数据时,union all会更好)5、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。6、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=07、简单说一说drop、delete与truncate的区别SQL中的drop、delete、truncate都表示删除,但是三者有一些差别delete和truncate只删除表的数据不删除表的结构 速度,一般来说: drop> truncate >delete delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效; 如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚.操作不触发trigger.8、什么是视图视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。9、 什么是内联接、左外联接、右外联接?内联接(Inner Join):匹配2张表中相关联的记录。左外联接(Left Outer Join):除了匹配2张表中相关联的记录外,还会匹配左表中剩余的记录,右表中未匹配到的字段用NULL表示。右外联接(Right Outer Join):除了匹配2张表中相关联的记录外,还会匹配右表中剩余的记录,左表中未匹配到的字段用NULL表示。在判定左表和右表时,要根据表名出现在Outer Join的左右位置关系。10、并发事务带来哪些问题?在典型的应用程序中,多个事务并发运行,经常会操作相同的数据来完成各自的任务(多个用户对同一数据进行操作)。并发虽然是必须的,但可能会导致以下的问题。脏读(Dirty read): 当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。丢失修改(Lost to modify): 指在一个事务读取一个数据时,另外一个事务也访问了该数据,那么在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。这样第一个事务内容地修改结果就被丢失,因此称为丢失修改。 例如:事务1读取某表中的数据A=20,事务2也读取A=20,事务1修改A=A-1,事务2也修改A=A-1,最终结果A=19,事务1的修改被丢失。不可重复读(Unrepeatableread): 指在一个事务内多次读同一数据。在这个事务还没有结同时,另一个事务也访问该数据。那么,在第一个事务中的两次读数据之间,由于第二个事务因为修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为不可重复读。幻读(Phantom read): 幻读与不可重复读的类似。它发生在一个事务(T1)读取了几行数据,接着另一个并发事务(T2)插入了一些数据时。在随后的查询中,第一个事务(T1)就会发现多了一些原本不存在的记录,就好像发生了幻觉一样,所以称为幻读。不可重复读和幻读区别:不可重复读的重点是修改比如多次读取一条记录发现其中某些列的值被修改,幻读的重点在于新增或者删除比如多次读取一条记录发现记录增多或减少了。源码资料获取方式:关注小编+转发文章+私信【 078】免费获取!!!!
本文出自快速备案,转载时请注明出处及相应链接。
本文永久链接: https://www.175ku.com/38831.html