自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 【web服务器】【Tomcat】【servlet】【jsp】【freemarker】执行原理梳理

web服务器web服务器:web服务有apache 、tomcat等多个Apache和Tomact的联系1)Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持php,还可以与Tomcat连通(Apache单向连接Tomcat,就是说通过Apache可以访问Tomcat资源,反之不然)。    2)Apache只支持静态网页,但像Jsp动态网页就需要Tomcat来处理。  3)Apache和Tomcat整合使用:    如果客户端请求的是静态页面,则只需要Apache服

2020-12-24 10:38:59 212

原创 FreeMarker

FreeMarker 概念FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。...

2020-12-23 18:07:09 173

原创 jsp

jsp概念JSP全称Java Server Pages简化的servlet设计,在html标签中嵌套Java代码,用以高效开发web应用的动态标签。jsp的作用:替换显示页面部分的servlet(使用*.jsp文件替换XXXJSP.java)jsp结构网络服务器需要一个 JSP 引擎,也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求JSP 容器与 Web 服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于 JSP 网

2020-12-22 16:34:25 190

原创 jQuery&ajax&json

原生js的缺点不能添加多个入口函数(window.onload),如果添加了多个的话,后面的会把前面的给覆盖原生的js的api名字太长不好记原生的js有时候代码冗余原生js中有些属性或者方法有兼容问题原生js容错率比较低,前面的代码出了问题,后面的代码页运行不了jquery的概念jquery 是一个优秀的Javascript库jquery的理念:写的少,做的多jquery的入门jquery的引入 <script src="js/jquery-3.3..

2020-12-20 18:48:58 168

原创 数据库索引

mysql体系架构索引系统数据存储系统mysql用哈希表为什么不行?mysql的数据结果是b+树的解释说明二分查找树的数据结构二分查找树:树的子节点最多是两个,并且左子树小于根节点,右子树大于根节点如果我们的数据是有序的话,那么二分查找树就会成为一个链表所以衍生出了平衡二叉树平衡二叉树的数据结构平衡二叉树的概念:平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。常见的符合平衡树的有,B树(多路平衡搜索树)、A

2020-12-20 18:48:09 102

原创 事务控制的代码实现

JDBC方式的事务控制package com.lty;import java.sql.*;/** * @Description: * @Author: Feng.QC * @Date: 2020/12/16 11:33 * @Version: 1.0 */public class ConnectionTransaction { public static void main(String[] args) { Connection conn = null; .

2020-12-16 16:10:07 587

原创 数据库事务

什么是事务?保证业务操作完整性的一种数据库机制事务的四个特点:ACIDA:原子性C:一致性I: 隔离性D:持久性事务的控制JDBC的控制方式:开启事务:Connection.setAutoCommit(false);提交事务:Connection.commit();回滚事务:Connection.rollback();Mybatis的控制方式Mybatis自动开启事务提交事务:sqlSession.commit();回滚事务:sqlSess.

2020-12-15 11:41:26 105

原创 01-冯诺依曼体系结构

计算机分类硬件输入设备,输出设备,存储器,运算器,控制器软件系统软件:1.DAO、2.Windows、3.Linux、4.unix、5.Mac、6.Android、7.iOS应用软件1.WPS2. QQ3. 微信4. 英雄联盟5. 绝地求生冯.诺依曼体系结构...

2020-11-08 21:01:09 106

原创 08-redis-集群

概念由多个redis组成的redis集群特点每个实例上存储的数据都不同要求每一个节点至少要拥有一个从节点,以防止集群奔溃当主节点坏了的时候,从节点可以补上redis集群搭建redis集群至少需要三个节点,又有三个三个从节点,所以,需要六台服务(1)创建文件夹mkdir cluster(2)解压redis到cluster目录下tar -xvf redis-3.2.9.tar.gz -C ./cluster/(3)给redis-3.2.9.tar.gz重命名为redis1

2020-10-16 16:22:04 84 1

原创 07-redis-主从复制和读写分离

主从配置(一主而从)(1)如果服务是启动的,先停掉redis服务(2)进入root目录创建文件夹master-slave mkdir master-slave(3) 进入到master-slave目录下cd master-slave(4) 创建三个配置文件touch redis638{0,2,4}.conf[root@leitingyan master-slave]# lsredis6380.conf redis6382.conf redis6384.conf(5)编辑Ma.

2020-10-16 13:48:10 55 2

原创 06-redis-Zset

zset:zset和set基本一致,唯一的区别是zset每一个元素都有自己的一个分数,可以通过这个分数来对元素进行排序特点:无序元素不可以重复但是元素对应的分数是可以重复的zset对应的基本指令zadd:添加元素127.0.0.1:6379[6]> zadd lty 12 aa 13 bb 14 cc 15 dd(integer) 4zcard:查看元素中元素的个数127.0.0.1:6379[6]> zcard lty(integer) 4zsc

2020-10-16 10:23:24 196

原创 05-Redis-set

set的特点:无序元素不可重复sadd:讲一个或多个member元素加入到集合key当中,已经存在的元素将会被忽略,不会加入127.0.0.1:6379> sadd set01 123 456 789 aaa bbb ccc(integer) 6sacrd:获取集合里面的元素个数127.0.0.1:6379> scard set01(integer) 6smember:列出set中的元素127.0.0.1:6379> SMEMBERS se

2020-10-16 09:16:35 55

原创 04-redis-List

List的概念list是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)lpush:从list的左边插入rpush:从list的右边插入127.0.0.1:6379> lpush llty v1 v2 v3 v4 v5 v6(integer) 6127.0.0.1:6379> llen llty(integer) 6127.0.0.1:6379> rpush llty v7 v8 v9(integer) 9lpop:从l

2020-10-15 21:01:55 204 1

原创 03-redis-Hash

Hash概念hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。hset:将哈希表 key 中的域 field 的值设为 value ,如果 key 不存在,则新建 hash 表, 执行赋值,如果有 field ,则覆盖值。hset lty610 name lty(integer) 1127.0.0.1:6379> hset lty610 age 20(integer) 1127.0.0.1:6379> hset

2020-10-15 20:15:56 62

原创 02-redis-redis基本操作

redisping 返回PONG:检查redis是否可用【相当于服务器和客户端在打招呼】127.0.0.1:6379[2]> pingPONGdbsize:返回的是数据库中的key的数量127.0.0.1:6379> DBSIZE(integer) 3select [index]:切换redis库flushdb:删除当前库的数据flushall:删除所有库的数据exit:退出客户端,进入linux环境redis-cli shutdown

2020-10-15 19:26:38 60

原创 01-redis-linux上安装redis

linux系统上安装redis步骤将安装包上传到服务器上解压上传到服务器的redis安装包到指定的路径tar -xvf redis-3.2.9.tar.gz -C /usr/local编译redis:会有环境不完整问题所以先配置环境vim /etc/yum.repos.d/rhel-source.repo进入编辑文档,将编辑文档的内容删除之后,赋值以下内容[rhel-source]name=Red Hat Enterprise Linux $releasever - $ba

2020-10-15 10:15:06 68

原创 linux常用命令-05-软件安装与卸载

卸载rpm -e查看当前linux系统都安装了那些软件rpm -qa卸载linux中原有的jdk的步骤(1)先查看原有的linux中的jdk rpm -qa | grep java ------------------------------------------------java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64tzdata-java-2013g-1.el6.noarchjava-1.6.0-openjdk-1.6.0.0-1.

2020-10-14 19:51:22 175

原创 linux常用命令-04-压缩文件

压缩和解压文件的步骤(1)提前准备好文件夹和文件创建文件 touch 1.txt 2.txt创建文件夹game和movie mkdir game movie在已有的文件夹下创建文件touch game/lol.txt game/wz.txt movie/{a,b,c}.avi(2)压缩 tar -zcvf test.tar.gz 1.txt game1.txtgame/game/lol.txtgame/wz.txt(3)查看压缩包的内容,但是没有解压文件t

2020-10-14 09:34:52 168

原创 linux常用命令-03-系统管理

shutdown:关机或者重启的命令//一分钟之后关机[root@leitingyan ~]# shut down -r +1//现在立刻马上关机[root@leitingyan ~]# shut down -r nowwhoami:查看当前系统的用户是谁[root@leitingyan ~]# whoamiroot[root@leitingyan ~]# ps -ef查看进程kill:杀死某个进程(1)kill -9:强制杀死进程[root@leitingyan ~]

2020-10-13 16:25:31 235

原创 linux常用命令-02-文件管理

touch:创建文件或者更新文件修改时间[root@leitingyan ~]# touch 1.txt[root@leitingyan ~]# [root@leitingyan ~]# touch 1.txt[root@leitingyan ~]# touch a.txt b.txt c.avicp:复制文件或文件夹//复制文件到指定目标[root@leitingyan ~]# cp a.txt /root/Public/[root@leitingyan ~]# (2)

2020-10-13 15:33:20 386 1

原创 linux基本命令-01-目录管理

pwd:显示当前目录[root@leitingyan opt]# pwd/optcd切换目录1.cd /路径[root@leitingyan opt]# cd /usr[root@leitingyan usr]# pwd/usr2.特殊符号(1)回到当前用户的家目录[root@leitingyan ~]# cd ~[root@leitingyan ~]# (2)- :回到上个目录[root@leitingyan ~]# cd Public/[root@leitingy

2020-10-13 13:48:56 145 2

原创 06-mybatis-一对多的实现

mybatis一对多的实现(一个老师教许多学生)搭建环境在上一篇已经实现。连接如下https://editor.csdn.net/md/?articleId=1088675161.学生的实体类package com.lty.pojo;import lombok.Data;@Datapublic class Student { private int id; private String name; private int tid;}2.老师的实体类package co

2020-09-29 14:43:52 71

原创 05-Mybatis-多对一的实现

mybatis多对一的实现(很多学生对应一个老师)创建两个表(1.学生表2.老师表)2.搭建环境(创建一个maven项目)3.创建学生和老师的实体类(1)学生实体类package com.lty.pojo;import lombok.Data;@Datapublic class Student { private int id; private String name; private Teacher teacher;}(2)老师的实体类package co

2020-09-29 14:29:03 81

原创 04-Mybatis-分页

接口实现 //分页 List<User> getUserByLimit(Map<String,Integer> map);接口对应的配置文件 <select id="getUserByLimit" parameterType="map" resultType="user" resultMap="userMap"> select * from user limit #{startIndex},#{pageSize} </select>

2020-09-27 16:38:06 57

原创 03-mybatis的模糊查询

模糊查询的实现步骤在提前搭建好的环境下实现一个模糊查询的功能1.接口编写//模糊查询 List<User> getUserByLike(String vlaue);2.配置文件的编写<select id="getUserByLike" parameterType="String" resultType="com.lty.pojo.User"> select * from user where name like #{value}; </select&

2020-09-26 13:02:23 70 1

原创 02-Mybatis中的万能公式

map万能公式映射接口User getUserById2(Map<String,Object> map);2.接口对应配置文件的编写 <select id="getUserById2" parameterType="map" resultType="com.lty.pojo.User"> select * from user where id=#{userid}; </select>3.测试编写@Test public void getUse

2020-09-26 12:56:29 141

原创 Mybatis入门-idea版

创建一个mybatis项目需要的步骤准备数据库CREATE DATABASE mybatisUSE mybatisCREATE TABLE USER(id INT(20) NOT NULL ,NAME VARCHAR(30) DEFAULT NULL,pwd VARCHAR(30) DEFAULT NULL,PRIMARY KEY(id) )ENGINE=INNODB DEFAULT VARCHAR;SELECT * FROM USER2.创建一个maven项目,并且导入myb

2020-09-25 14:01:49 55

原创 struts2框架实现-用户登录功能

用户登录的实现步骤编写login.jsp(用于登录)<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>登录页面</title></head><body><form action="login.action" method="post"> <div>

2020-09-14 16:40:09 1342

原创 struts入门-搭建第一个struts项目

使用struts2开发程序的基本步骤加载struts2类库pom.xml <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.22</version> </dependency> 配置web.xml文件&lt

2020-09-14 15:44:58 110

原创 Mybatis-第二章 mybatis框架快速入门

mybatis官网下载进官网创建maven工程创建 mybatis01 的工程,工程信息如下:Groupid:com.itheimaArtifactId:mybatis01Packing:jar在pom.xml文件中添加mybatis的坐标 <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</ar

2020-09-01 14:04:46 123

原创 mybatis-第一章 框架概述

什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。框架需要解决的问题 框架要解决的最重要的一个问题是技术整合的问题,在 J2EE 的 框架中,有着各种各样的技术,不同的软

2020-09-01 10:33:55 124

原创 idea控制台中文乱码解决

idea控制台中文乱码解决

2020-08-24 10:17:46 103

原创 三层架构的案例练习1(web层、service层、Dao层)-第一天

技术选型web层(1)Servlet:前端控制器(2) html:视图(3)Filter:过滤器(4)BeanUtils:数据封装(5)Jackson:json序列化工具Service层 (1) javamail:java发送邮件的工具(2)Redis:nosql内存数据库(3)jedis:java的Redis客户端Dao层(1)Mysql:数据库(2)Druid:数据库连接池(3)jdbcTemple:jdbc的工具创建数据库---创建数据库cre

2020-08-21 13:45:32 775

原创 15-触发器

基本概念就是制定一个规则,在我们做增删改操作的时候 - 只要满足该规则,自动触发,无需要调用 - 语句级触发器:不包含for each row 的触发器 - 行级触发器:包含有for each row的就是行级触发器 - 加for each row是为了使用:old或者:new对象或者一行记录语句触发器插一条记录,输出一个新员工入职create or replace triggrt t1afterinserton persondeclarebegindbms_outpu

2020-08-11 16:59:42 95

原创 14-pl/sql编程语言

基本概念pl/sql编程语言是对sql语言的扩展,使得sql语句具有过程化编程的特性pl/sql编程语言比一般的过程化编程语言,更加的灵活高效pl/sql变成语言主要用来编写存储过程和存储函数等。声明方法--赋值操作可以使用:=也可以使用into查询语句赋值declare i number(2) := 10; s varchar2(10) := '小明'; ena emp.ename%type;---引用型变量 emprow emp%rowtype;---记录

2020-08-11 16:46:33 125

原创 13-索引

索引的概念索引就是在表的列上构建一个二叉树达到大幅度提高查询效率的目的,但是索引会影响增删改查的效率单列索引创建单列索引create index idx_ename on emp(ename);单列索引出发规则,条件必须是索引列中的原始值单行函数,模糊查询,都会影响索引的触发select * from empwhere ename="scott"复合索引创建复合索引create index idx_enmaejob on emp(ename,job);--复合

2020-08-11 16:02:33 59

原创 12-视图

视图的概念视图就是提供一个查询的窗口,所有的数据来自原表查询语句创建表create table emp as select * from scoot.empselect * from emp创建视图[必须有dba权限]create view v_emp as select ename,job from emp;查询视图select * from v_emp修改视图[不推荐]update v_emp set job='CLERK' where ename='ALLEN';c

2020-08-11 15:45:27 66

原创 11-分页查询

基本概念rownum行号:当我们做select操作的时候,每查出一行记录,就会在该行加上一个行号,行号从1开始,一次递增,不能跳着走下去注意:--排序操作会影响rownum的顺序select rownum, e.* from emp e order by e.sal desc--如果涉及排序,但还是要使用rownum的话,我们可以在此签到查询语句select rownum, t.* from(select rownum, e.* from emp e order by e.sal

2020-08-11 15:32:02 79

原创 10-子查询

子查询返回一个值---查询出工资和Scott一样的员工信息select * from emp where sal in (select sal from emp where ename='scott')子查询返回一个集合---查询出工资和10号部门任意员工一样的员工信息select * from emp where sal in(select sal from emp where deptno = 10);子查询返回一张表---查询出每个部门最低工资,和最低工资员工姓名,和该员工所在

2020-08-09 21:00:16 79

原创 09-多表查询

笛卡尔积select * from emp,dept d;等值连接select * from emp e,dept dwhere e.deptno=d.deptno内连接select * from emp e inner join dept don e.deptno=d.deptno---查询出所有部门,以及部门下的员工信息【外连接】select *from emp e right join dept don e.deptno=d.deptno;--查询出所有员工的信息,以及

2020-08-09 20:47:55 85

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除