加载中...
SSM学习
一、SSM整合理解1.1 什么是SSM整合?微观:将学习的Spring SpringMVC Mybatis框架应用到项目中! SpringMVC框架负责控制层 Spring 框架负责整体和业务层的声明式事务管理 MyBatis框架负责数据库访问层 宏观:Spring接管一切(将框架核心组件交给Spring进行IoC管理),代码更加简洁。 SpringMVC管理表述层、SpringMVC相关组件 Spring管理业务层、持久层、以及数据库相关(DataSource,MyBatis)的组件 使用IoC的方式管理一切所需组件 实施:通过编写配置文件,实现SpringIoC容器接管一切组件。 1.2 SSM整合核心问题明确1.2.1 第一问:SSM整合需要几个IoC容器? 两个容器 本质上说,整合就是将三层架构和框架核心API组件交给SpringIoC容器管理! 一个容器可能就够了,但是我们常见的操作是创建两个IoC容器(web容器和root容器),组件分类管理! 这种做法有以下好处和目的: 1.分离关注点:通过初始化两个容器,可以将各个层次的关注点进行分离。这种分离 ...
SpringMVC学习
一、SpringMVC简介和体验 1.1 介绍 https://docs.spring.io/spring-framework/reference/web/webmvc.html Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称( spring-webmvc ),但它通常被称为“Spring MVC”。 在控制层框架历经Strust、WebWork、Strust2等诸多产品的历代更迭之后,目前业界普遍选择了SpringMVC作为Java EE项目表述层开发的首选方案。之所以能做到这一点,是因为SpringMVC具备如下显著优势: Spring 家族原生产品,与IOC容器等基础设施无缝对接 表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案 代码清新简洁,大幅度提升开发效率 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可 性能卓著,尤其适合现代大型、超大型互联网项目要求 原生Se ...
MyBatis学习
一、Mybatis简介 1.1 持久层框架对比 JDBC SQL 夹杂在Java代码中耦合度高,导致硬编码内伤 维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见 代码冗长,开发效率低 Hibernate 和 JPA 操作简便,开发效率高 程序中的长难复杂 SQL 需要绕过框架 内部自动生成的 SQL,不容易做特殊优化 基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。 反射操作太多,导致数据库性能下降 MyBatis 轻量级,性能出色 SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据 开发效率稍逊于 Hibernate,但是完全能够接收 开发效率:Hibernate>Mybatis>JDBC 运行效率:JDBC>Mybatis>Hibernate 1.2 快速入门(基于Mybatis3方式) 1.准备数据模型 1234567891011121314CREATE DATABASE `mybatis-example`; ...
Maven学习
一、Maven的主要作用 依赖管理 项目构建 二、Maven工程构建 2.1梳理Maven工程GAVP属性 Maven工程相对之前的工程,多出一组gavp属性,gav需要我们在创建项目的时指定,p有默认值,后期通过配置文件修改。 Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在maven仓库总做一个标识,类似人的《姓-名》。有了具体标识,方便maven软件对项目进行管理和互相引用! GAV遵循一下规则: 1) GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。 说明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。 正例:com.taobao.tddl 或 com.alibaba.sourcing.multilang com.atguigu.java 2) ArtifactI ...
Spring学习
一、SpringFramework介绍 SpringFramework框架结构图: 功能模块 功能介绍 Core Container 核心容器,在 Spring 环境下使用任何功能都必须基于 IOC 容器。 AOP&Aspects 面向切面编程 TX 声明式事务管理。 Spring MVC 提供了面向Web应用程序的集成功能。 二、Spring IoC容器和核心概念 2.1 组件和组件管理概念 2.1.1 什么是组件? 回顾常规的三层架构处理请求流程: 整个项目就是由各种组件搭建而成的: 2.1.2 Spring充当组件管理角色(IoC) 组件可以完全交给Spring 框架进行管理,Spring框架替代了程序员原有的new对象和对象属性赋值动作等! Spring具体的组件管理动作包含: 组件对象实例化 组件属性属性赋值 组件对象之间引用 组件对象存活周期管理 ...... 我们只需要编写元数据(配置文件)告知Spring ...
IDEA中操作数据库设置列的主键、唯一、非空、递增等属性
第一步 右键要修改的表,点击Modify Table 第二步 点击要修改的列,修改的位置分别如下,右侧修改主键和唯一需要点击三个小圆点 第三步 然后按照需要点选,结果如下
Maven项目导入包失败问题
问题1 1xxxxxx failed to transfer from https://maven.aliyun.com/repository/public during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of aliyunmaven has elapsed or updates are forced. Original error: Could not transfer artifact xxxxxx from/to aliyunmaven (https://maven.aliyun.com/repository/public): transfer failed for https://maven.aliyun.com/repository/public/xxxxxxx 意思是: 对于这个包从maven中心传输到本地仓库失败,决定不会重新尝试下载jar包,直到 ...
IDEA结合git使用流程
将本地项目上传到github上 步骤 1)settings搜索git,将Path to Git executable修改为git的路径 2)settings搜索github,点击加号,选择通过github和token登录都行,token的话在github上生成 3)settings搜索commit,取消勾选Use non-modal commit interface。 注解: 这个操作可以在底部窗口显示Local Changes 4)点击工具栏的git,点击github,选择share project on github,成功的话,可以看到github上面多了一个仓库 注解: 这一步出现问题,可以去settings中的directory mappings中删除directory 5)右键项目,选择git,点击add,可以发现文件变红。 注解: 文件颜色 意义 绿色 已经加入控制暂未提交 红色 未加入版本控制;自己建立新文件后就是红色的,出现红色的一定要Add到git中,不然不能上传到远程仓库 ...
Markdown语法学习
生成勾选框 12- [ ] 任务1- [x] 任务2 效果: 注意:- 与[ ]之间要有一个空格,[ ]有一个空格表示不勾选,里面是x表示勾选,[ ]与后面的文字也要有一个空格 任务1 任务2 链接引用 123格式:[链接名](链接 "鼠标悬停显示信息")其中鼠标悬停显示信息可选参数 百度
软考刷题
[toc] 2023/5/24 动态规划 动态规划可以是自底向上(填表),也可以是自顶向下(递归) 下午试题六 abstract 抽象类和抽象方法都必须用abstract修饰 123456// 比如两个子类的方法都含有以下的runpublic void run(){}// 并且这两个子类都继承一个抽象类,则这个抽象类中的run为public abstract void run(){} 注意抽象类要填完整,abstract class MenuComponent{},不要漏掉class,以及abstract的a是小写 super 在子类中通过调用super.method();可以调用父类的方法(method是方法名) 当子类的构造方法内第一行没有出现“super()”时,系统会默认给它加上无参数的"super()"方法,会执行父类的无参构造方法 ArrayList和List List是一个接口,ArrayList是一个实现类 12private List<Menu>menuList;menuList = ...
上午题-14-算法
[toc] 回溯法-N皇后问题 j-i=abs(pos[i]-pos[j])表示判断对角线是否相等(j是大于i的) 说明: 判断对角线: j+pos[j]==i+pos[i] j-i==pos[i]-pos[j] j-pos[j]==i-pos[i] j-i==pos[j]-pos[i] 所以合起来就是j-i==abs(pos[i]-pos[j]) 分治 分解 求解 合并 动态规划 贪心法 回溯法 分支限界法
上午题-3-数据结构
[toc] 复杂度 大O表示法 渐进符号 例题 由渐进上界的定义,0<=f(n)<=cg(n) 则f(n)=O(g(n)) 递归 主方法 线性结构 线性表 顺序存储——一组地址连续的存储单元 链式存储——地址不要是连续的 链式存储 头结点:在首元结点之前附设的一个结点,其指针指向首元结点 首元结点:指链表中存储第一个元素的结点 头指针:指向链表中的第一个结点,若有头结点,则指向头结点,否则指向首元结点。 插入的时间复杂度 最好情况是O(1),插入第一个结点后面一个结点的位置 最坏情况是O(n),插入在最后面(因为要让链表遍历到尾,p=p->next) 平均时间复杂度是O(n) 删除、查找也是类似,最好是O(1),最坏是O(n),平均是O(n) 题目 插入是直接在尾指针后面插 删除由于要找到位置在前面的结点,所以是O(n) 循环链表的特点是表中最后一个结点的指针域指向头结点 栈 后进先出 队列 先进先出 串 计算next的例子 算 ...