- 博客(70)
- 收藏
- 关注
原创 C++引用
C++ 引用1、引用的基本概念在C++Primary书中定义为:引用就是对象的另一个名字。在实际程序中,引用主要用作函数的形参。作用: 给变量起别名语法: 数据类型 &别名 = 原名;示例:#include <iostream>using namespace std;int main(int argc, char const *argv[]) { int a = 10; int &b = a; //b和a指向同一位置 cout <
2021-01-18 18:28:27 273
原创 c++ 内存分区模型
c++ 内存分区模型C++程序在执行时,将内存大方向分为4个区域:代码区:存放函数体的二进制代码,由操作系统进行管理。全局区:存放全局变量和静态变量以及常量。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。内存分区意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。1、程序运行前在程序编译后,生成了可执行程序,未执行该程序前分为两个区域。代码区:存放CPU执行的机器指令。代码区是共
2021-01-15 20:52:46 324
原创 Spring 面向切面编程(AOP) D5
Spring AOP简介问题提出首先我们回顾一下OOP(Object Oriented Programming-面向对象编程),OOP引入了封装、继承、多态等概念建立了一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,并不适合定义横向的关系(例如日志功能)。 日志代码常常是横向的散布在所有对象层次中,这种散布在各处的重复的代码被称为横切(cross cutting)。如果仍然使用OOP设计,会导致大量的代码重复,不利于各模块的重用。因而我们引入AOP的编程思想。面向切面
2020-11-12 08:56:33 284
原创 Spring 代理模式 D4
1 代理模式为什么要学习代理模式?因为这就是SpringAOP的底层!【SpringAOP和SpringMVC】代理模式的分类:静态代理动态代理关于代理的举例:2 静态代理角色分析:抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色: 代理真实角色,代理真实角色后,我们一般会做一些附属操作客户: 访问代理对象的人。我们再举一个例子,MVC模式中,用户访问Controller层,进而Service层,进一步调用dao层实现具体操作。现假设我们已经开发好了一
2020-11-11 11:01:10 555
原创 Spring 使用注解开发 D3
Spring 使用注解开发在Spring4之后,要使用注解开发,必须要保证aop的包已经导入!使用注解需要导入context约束,必须开启注解的支持!<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm
2020-11-11 10:59:34 123
原创 Spring DI依赖注入及Bean自动装配 D2
1、DI 依赖注入1.1 构造器注入上文已经提到过,此处不再赘述!1.2 Set方式注入依赖注入:Set注入!依赖: bean对象的创建依赖于容器注入:bean对象中的所有属性,由容器来注入!【环境搭建】复杂类型public class Address { private String address; public String getAddress() { return address; } public void set
2020-11-11 10:58:37 181 1
原创 Spring 初识及IOC详解 D1
1、初识 Spring1.1 简介Spring框架即以interace21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。Rod Johnson, Spring Framework创始人,著名作者。很难想象Rod Johnson的学历,真的让很多人大吃一惊,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。Spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!Github: https://github.com/spr
2020-11-11 10:56:24 202
原创 Mybatis 缓存 D9
1 缓存 简介查询: 连接数据库是非常消耗资源的! 一次查询的结果,给它暂存在一个可以直接取到的地方! --> 内存 : 缓存什么是缓存【Cache】?存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库的数据文件)查询,从缓存中查询会提高查询效率,解决了高并发系统的性能问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。什么样的数据能使用缓存?经常查询并且不经常改变的数据。2 Mybatis 缓
2020-11-03 11:27:48 153 1
原创 Mybatis 动态SQL D8
Mybatis 动态SQL引用官方文档:Mybatis的强大特性之一便是它的动态SQL, 如果你有使用JDBC或其它类似框架的经验,你就能体会到根据不同条件拼接SQL语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的都好,利用动态SQL这一特性可以彻底摆脱这种痛苦。什么是动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句。动态SQL元素和JSTL或基于类似XML的文本处理器相似;Mybatis采用功能强大的基于OGNL的表达式来淘汰其他大部分元素。if
2020-11-03 11:24:51 168 2
原创 Mybatis 多对一、一对多问题详解(结合案例) D7
1 前期准备关联与集合概念关联: 多个学生,关联一个老师 【多对一】**集合:**一个老师,对应多个学生【一对多】数据库搭建:CREATE TABLE `teacher`( `id` INT(10) UNIQUE, `NAME` VARCHAR(30) DEFAULT NULL, PRIMARY KEY(`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO `teacher`(`id`,`NAME`) VALUES(1,'李老师')
2020-11-03 11:23:17 311
原创 Mybatis 执行流程剖析 D6
Mybatis 执行流程本文旨在用流程图展示MybatisUtils.java以及Mybatis真实类与接口的执行过程,读者可以结合Mybatis的源码,查看各个方法之间的调用。MybatisUtils.java文件中源码:public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static{ try { //使用mybatis第一步
2020-11-03 11:21:01 158 2
原创 Mybatis 注解开发 D5
Mybatis 使用注解开发1 面向接口编程在真正的开发中,更倾向于面向接口编程。根本原因:解耦,可拓展,提高复用,分层开发中,上层不用管具体的实现,大家都遵守共同的标准,使得开发变得容易,规范性更好。在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了。而各个对象之间的协作则成为系统设计的关键,小到不同类之间的通信,大到各个模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容,
2020-11-03 11:16:53 82
原创 Mybatis 日志实现及分页功能实现 D4
1、日志1.1日志工厂如果一个数据库操作,出现了异常,我们需要排错。日志就是最好的助手!曾经是:sout、debug现在我们要使用:日志工厂SLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING 【掌握】NO_LOGGING在Mybatis中具体使用哪个日志实现,在设置中实现。STDOUT_LOGGING标准日志输出:在mybatis核心配置文件中,配置我们的日志!<settings>
2020-11-03 11:14:16 113
原创 Mybatis 配置解析详解及生存周期、作用域图 D3
一、Mybatis 配置解析详解1 核心配置文件mybatis-config.xmlMyBatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionMana
2020-11-03 11:11:18 1808 6
原创 Mybatis CRUD实现 D2
Mybatis CRUD实现1 namespacenamespace中的包名和Dao/Mapper接口的包名要求一致!2 CRUD接口及其实现UserMapper接口:package com.demut.dao;import com.demut.pojo.User;import java.util.List;public interface UserMapper { //获取全部用户 List<User> getUserList(); //根据i
2020-11-03 11:07:28 99
原创 Mybatis 初次搭建运行 D1
1、Mybatis简介1.1 什么是Mybatis MyBatis 的前身是 Apache 的开源项目 iBatis。MyBatis 几乎可以代替 JDBC,是一个支持普通 SQL 查询,存储过程和高级映射的基于 Java 的优秀持久层框架。 MyBatis 与 JDBC 相比,减少了 50% 以上的代码量。并且满足高并发和高响应的要求,所以它成为最流行的 Java 互联网持久框架。1.2 持久化的概念数据持久化持久化就是将程序的数据在持久状态和瞬时状态转化的过程。内存: 断电即失数据
2020-11-03 11:04:18 107
原创 JavaWeb Day07 MVC架构、过滤器与监听器
Model业务处理: 业务逻辑(Service)数据持久层:CRUD (Dao)View展示数据提供链接发起Servlet请求(a, form, img…)提供用户的请求:(req:请求参数、Session信息…)交给业务层处理对应代码控制视图的跳转登陆 --> 接受用户的登陆请求 --> 处理用户的请求(获取用户登陆参数,username,password) -->交给业务层处理登陆业务(判断用户名密码是否正确:事务) --> Dao层查询用户名和密码是否正确 --> 数据库。
2020-09-22 12:24:29 188
原创 网址讲解与URL类使用案例
一、网址详解网址的组成部分: 通信协议://域名:端口号/虚拟路径?参数列表#锚点通信协议:传输速率控制传输编码控制出错控制域名:ip地址的别名ip地址:是计算机在互联网中的唯一标识(公网ip)DNS服务商在浏览器中输入网址,会首先访问dns服务商,dns服务商会返回该域名对应的ip地址,随后浏览器通过ip访问。端口号:范围:0~65535http协议访问时,可以忽略端口号,自动寻找80https协议访问时,也可以忽略端口号,自动寻找443参数
2020-08-16 20:16:13 900
原创 JavaWeb JSP详解 (内含底层原理)Day06
文章目录1 JSP概述2 JSP底层原理3 JSP基础语法JSP表达式JSP脚本片段JSP声明4 JSP指令5 九大内置对象, 四大作用域6 JSP标签、JSTL标签、EL表达式写在最后1 JSP概述Java Server Pages : Java服务器端页面,和Servlet一样都是用来开发动态web的技术!最大的特点:写JSP就像在写HTML区别:HTML只给用户提供静态数据;JSP页面中可以嵌入Java程序,为用户提供动态数据;2 JSP底层原理思路:JSP如何执行?
2020-06-06 16:16:08 524 3
原创 JavaWeb Cookie&Session(详解) Day05
Cookie、Session1 会话**会话:**用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程叫做会话。**有状态会话:**一个同学来过教室,下次再来教室的时候,我们都知道他曾经来过,这个过程称之为有状态会话。一个网站,怎么证明你来过?客户端 服务端服务端给客户端一个信件,客户端下次访问服务器时带上信件就可以了;cookie服务器登记你来过了,下次你来的时候我来匹配你;session2 保存会话的两种技术cookie客户端技术(响应,请求)se
2020-06-01 09:37:39 213 1
原创 JavaWeb Servlet超详细讲解(附带原理)Day04
JavaWeb Servlet1 Servlet简介Servlet就是Sun公司开发动态web的一门技术Sun在这些API中提供一个借口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成以下两个步骤:编写一个类,实现Servlet接口把开发好的java类部署到web服务器中把实现了Servlet接口的Java程序叫做:Servlet2 HelloServl...
2020-05-21 12:04:19 432 1
原创 JavaWeb IDEA配置Maven与Tomcat 超详细讲解 (Mac)Day03
Maven 项目架构管理工具前言为什么要学习这个技术?在JavaWeb开发中,需要使用大量的jar包,我们手动去导入;如何能够让一个东西自动帮我们导入和配置这些jar包。如此,Maven就诞生了!Maven很强大,但我们目前用来就是方便导入jar包的!Maven的核心思想:约定大于配置有约束,不要去违反。Maven会规定好我们应该如何去编写我们的java代码,必须按照这个...
2020-04-26 00:07:03 603 1
原创 JavaWeb Http详解 Day02
1、Http概述1.1 基础知识Http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。文本:html,字符串,…超文本:图片,音乐,视频,定位,地图…80吧Https:安全的4431.2 两个时代http1.0HTTP/1.0:客户端可以与web服务器连接,只能获得一...
2020-04-25 00:09:31 175
原创 JavaWeb Web概述及Tomcat配置详解 Day01
1、基本概念1.1、基本概念Web开发:web~网页,www.baidu.com静态web:html, css提供给所有人看的数据始终不会发生变化~动态web:淘宝,几乎所有的网站提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同技术栈:Serviet/ISP,ASP,PHP在Java中,动态web资源开发的技术统称为Java...
2020-04-24 00:24:43 288 1
原创 MySQL Day11 再谈事务与DBCP、C3P0数据库连接池的配置
1 再谈事务一个事务本质在于:其内部的功能要么都成功,要么都失败!之前的blog中谈过事务,那一篇是在Sequel Pro中测试的,此处重点谈论如何用Idea来操作事务!ACID原则原子性:要么全部完成,要么都不完成一致性:总数不变隔离性:多个进程互不干扰持久性:一旦提交不可逆,持久化到数据库内隔离性的问题:脏读:一个事务读取了另一个没有提交的事务不可重复读:在同一个事务内...
2020-04-19 17:01:16 268
原创 使用Idea连接数据库(Mac)
使用Idea连接数据库连接前,我们需要下载Mysql Connector(数据库驱动)下载地址链接现在我们开始连接:首先准备要连接的数据库(代码如下)CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;USE jdbcStudy;CREATE TABLE `users`(id INT PRI...
2020-04-18 19:49:50 2671
原创 MySQL Day10 JDBC (内含SQL注入问题)
1 数据库驱动驱动:声卡、显卡、数据库我们的程序会通过数据库驱动来和数据库打交道!2 JDBCSUN公司为了简化开发人员的(对数据库的统一)操作,提供了一个(Java操作数据库)的规范,俗称JDBC这些规范的实现由具体的厂商去做~对于开发人员来说,我们只需要掌握JDBC接口的操作即可!Idea中内置了java.sql 、javax.sql包可供我们使用!除此之外,还需要下载一个...
2020-04-18 19:43:00 293 1
原创 MySQL Day09 规范数据库设计与三大范式
MySQL 规范数据库设计1 为什么需要设计糟糕的数据库设计:数据冗余,浪费空间数据插入和删除都会麻烦,可能产生异常,尽量不要使用物理外键程序的性能差良好的数据库设计:节省内存空间保证数据库的完整性方便我们开发系统软件开发中关于数据库的设计:分析需求:分析业务和需要处理的数据库的需求概要设计:设计关系图 E-R 图设计数据库的步骤:(个人博客)...
2020-04-16 13:12:04 335
原创 MySQL Day08 用户权限管理和数据备份
MySQL 权限管理和备份1 用户管理MySQL使用可视化工具就可以完成几乎全部操作!本篇文章第一部分主要介绍使用Sequel Pro创建用户与使用SQL命令操作用户!1.1 Sequel Pro可视化创建用户:1.2 SQL命令操作用户表: mysql.user本质:对用户表进行增删改查!-- 创建用户 CREATE USER 用户名 IDENTIFIED BY '密码'C...
2020-04-15 20:27:10 269
原创 MySQL Day07 索引
MySQL 索引MySQL官方对索引的定义为:索引是帮助MySQL高效获取数据的数据结构。 提取句子主干,就可以得到索引的本质:索引是数据结构。1 索引的分类一个表中主键索引只能有一个,唯一索引可能有多个主键索引 (PRIMARY KEY)唯一的标识,主键不可重复,只能有一个列作为主键唯一索引 (UNIQUE KEY)避免重复的字段值出现,唯一索引可以重复(多个列都可标...
2020-04-15 18:02:36 536
原创 MySQL Day06 事务
MySQL 事务1 什么是事务要么都成功,要么都失败!举例说明:初始状态:A为1000¥ B为200¥——————SQL执行 A给B转账 A 1000 --> 200 B 200SQL执行 B收到A的钱 A 800 --> B 400——————将以上一组SQL放在一个批次中执行则成为一个事务!事务原则: ACID原则:原子性、一致性、隔离性、持久...
2020-04-14 19:05:13 224 1
原创 MySQL Day05 子查询、函数、MD5加密、SELECT小结
1 MySQL子查询WHERE 这个值是计算出来的本质:在where语句中嵌套一个子查询语句1、查询Customer Relations 的所有考试结果(学号,科目编号,成绩)-- ========= WHERE ========== ---- 1、查询Customer Relations 的所有考试结果(学号,科目编号,成绩)-- 方式一:使用连接查询SELECT `Student...
2020-04-14 18:58:02 691
原创 MySQL Day04 自连接、排序、分页
MySQL 自连接、排序、分页1 自连接1.1 测试用数据库:CREATE TABLE `school`.`category`( `categoryid` INT(3) NOT NULL COMMENT 'id', `pid` INT(3) NOT NULL COMMENT '父id 没有父则为1', `categoryname` VARCHAR(10) NOT NULL COM...
2020-04-09 23:32:32 217 1
原创 MySQL Day03 DQL查询数据、WHERE子句、联表查询
MySQL DQL查询数据、WHERE子句、联表查询1 DQL概述(Date Query Language: 数据查询语言)所有的查询操作都用到Select简单的查询,复杂的查询它都能做数据库中过最核心的语言,最重要的语言使用频率最高的语句2 指定查询字段2.1 简单查询测试代码:-- 查询全部学生 SELECT 字段 FROM 表SELECT * FROM `studen...
2020-04-07 23:57:57 222
原创 MySQL 测试数据(附开源网站)
MySQL测试数据前言: 笔者接下来要步入MySQL DQL的学习阶段了,然而在开始学习时,苦苦没有测试数据,故花了很长时间利用某开源网站(附在文章最后)制作了4个数据表,四个表之间笔者经过考虑并没有添加物理外键,不过留下了相应的索引,如有需要,读者可自行添加逻辑外键。四个表数据我会在正文中分别陈述。制作不易,留个????再走吧!测试数据如下:1 创建school数据表...
2020-04-07 13:35:35 4630 2
原创 MySQL Day02 数据管理及DML语言
MySQL 数据管理DML语言1 外键(了解即可)流程图描述:MySQL代码测试:(首先将数据库中表清空,随后输入以下操作,要严格按照语句输入,不然会报错)方式一、在创建表的时候,增加约束(比较麻烦,也比较复杂)-- 定义年级表:CREATE TABLE `grade`( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '...
2020-04-06 13:59:58 937
原创 MySQL Day01 概述及数据库、表操作
MySQL概述及数据库、表操作前言:JavaEE:企业级Java开发 Web前端(页面:展示,数据!)后台(连接点:连接数据库JDBC,链接前端(控制,控制视图跳转,给前端传递数据))数据库是所有软件体系中最核心的存在 DBA1 什么是数据库?数据库(DB DataBase)概念:数据仓库~软件,安装在操作系统(window, linux, mac…)之上!作用:存储数据,管理数...
2020-04-06 10:30:00 285 1
原创 JavaScript jQuery的使用 Day07
jQuery的使用jQuery库,内含大量的JavaScript函数。推荐学习网站(工具站):http://jquery.cuishifeng.cn1 获取jQuery及‘hello jQuery’可以从该网址查找需要的jQuery在线链接:https://www.bootcdn.cn/jquery/也可以自行下载jQuery文档到本机上:https://jquery.com/downl...
2020-04-02 15:42:59 274 1
原创 JavaScript 操作表单 Day06
JavaScript 操作表单(获取数据及MD5加密)1 获取和设置表单的值实现步骤:step1: 对应的< input >添加id属性。step2: document.getElementById()step3: .value测试代码:<!DOCTYPE html><html lang="en"><head> <m...
2020-04-01 18:16:32 931 1
原创 JavaScript操作DOM对象 Day05
JavaScript操作DOM对象0 核心浏览器网页就是一个Dom树形结构!获取Dom节点:得到Dom节点更新:更新Dom节点添加:添加一个新的节点删除:删除一个Dom节点要操作一个Dom节点,就必须要先获得这个Dom节点。1 获取Dom节点获得Dom节点代码:<!DOCTYPE html><html lang="en"><head>...
2020-03-31 17:09:20 1194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人