- 博客(32)
- 资源 (7)
- 收藏
- 关注
原创 MyBatis07:缓存
缓存简介1、什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能使用缓存?经常查询并且不经常改变的数据。Mybatis缓存MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升
2020-11-04 19:58:02
227
1
原创 MyBatis06:动态SQL
动态SQL介绍什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.官网描述:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 S
2020-11-04 19:48:17
212
原创 MyBatis05:一对多和多对一处理
多对一的处理多对一的理解:多个学生对应一个老师如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!数据库设计CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`, `name`) VALUES (1, '秦
2020-11-04 13:59:46
172
原创 MyBatis04:使用注解开发
面向接口编程大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系.
2020-11-04 13:25:17
96
原创 MyBatis03:ResultMap及分页
查询为null问题要解决的问题:属性名和字段名不一致环境:新建一个项目,将之前的项目拷贝过来1、查看之前的数据库的字段名2、Java中的实体类设计public class User { private int id; //id private String name; //姓名 private String password; //密码和数据库不一样! //构造 //set/get //toString()}3、接口//根据id.
2020-11-04 13:17:33
183
原创 MyBatis02:CRUD操作及配置解析
CRUD操作namespace将上面案例中的UserMapper接口改名为 UserDao;将UserMapper.xml中的namespace改为为UserDao的路径 .再次测试结论:配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!selectselect标签是mybatis中最常用的标签之一select语句有很多属性可以详细配置每一条SQL语句SQL语句返回值类型。【完整的类名或者别名】传入SQL语句的参数类
2020-11-04 10:09:38
98
原创 MyBatis01:第一个程序
MyBatis简介环境说明:jdk 8 +MySQL 5.7.19maven-3.6.1IDEA学习前需要掌握:JDBCMySQLJava 基础MavenJunit什么是MyBatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 J
2020-11-03 16:53:44
90
原创 JavaWeb
JavaWeb文章目录JavaWeb1、基本概念1.1、前言1.2、web应用程序1.3、静态web1.4、动态web2、web服务器2.1、技术讲解2.2、web服务器3、Tomcat3.1、 安装tomcat3.2、Tomcat启动和配置3.3、配置高难度面试题:3.4、发布一个web网站4、Http4.1、什么是HTTP4.2、两个时代4.3、Http请求1、请求行2、消息头4.4、Http响应1.响应体2、响应状态码5、Maven5.1 Maven项目架构管理工具5.2 下载安装Maven5.3
2020-11-03 16:44:13
162
原创 Spring09:声明式事务
声明式事务回顾事务事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎!事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。事务四个属性ACID原子性(atomicity)事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用一致性(consistency)一旦所有事务动作完成,事务就要被提交。数据和资源处于一种满足
2020-11-03 13:16:48
81
原创 Spring08:整合MyBatis
整合MyBatis步骤1、导入相关jar包junit<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency>mybatis<dependency> <groupId>org.mybatis<
2020-11-03 13:11:10
93
原创 Spring07:AOP就这么简单
AOP上一讲中我们讲解了代理模式,这是AOP的基础,一定要先搞懂它那我们接下来就来聊聊AOP吧!什么是AOPAOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2020-11-03 13:04:18
96
原创 Spring06:静态/动态代理模式
代理模式为什么要学习代理模式,因为AOP的底层机制就是动态代理!代理模式:静态代理动态代理学习aop之前 , 我们要先了解一下代理模式!静态代理静态代理角色分析抽象角色 : 一般使用接口或者抽象类来实现真实角色 : 被代理的角色代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .客户 : 使用代理角色来进行一些操作 .代码实现Rent . java 即抽象角色//抽象角色:租房public interface Rent
2020-11-03 12:57:22
125
原创 Spring05:使用注解开发
使用注解开发说明在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" xmlns:context
2020-11-03 12:41:49
81
原创 Spring04:自动装配
Bean的自动装配文章目录@Autowired@Qualifier@Resource小结自动装配说明自动装配是使用spring满足bean依赖的一种方法spring会在应用上下文中为某个bean寻找其依赖的bean。Spring中bean有三种装配机制,分别是:在xml中显式配置;在java中显式配置;隐式的bean发现机制和自动装配。这里我们主要讲第三种:自动化的装配bean。Spring的自动装配需要从两个角度来实现,或者说是两个操作:组件扫描(component s
2020-11-03 12:17:15
77
原创 Spring03:依赖注入(DI)
概念依赖注入(Dependency Injection,DI)。依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 .构造器注入我们在之前的案例已经讲过了Set 注入 (重点)要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is .测试pojo类 :Address.java public.
2020-11-03 12:08:22
102
原创 Spring02:快速上手Spring
上一期中我们理解了IOC的基本思想,我们现在来看下Spring的应用:HelloSpring导入Jar包注 : spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 .<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <
2020-11-03 11:43:51
105
原创 Kotlin中观察者模式
安卓中的GUI经常会用到观察者模式,当发生点击等事件时,就会处理一些逻辑,比如EventBus:我写了一个简单的例子,报社发布新闻,读者获取新闻。package MyObserver// 被观察者class Newspaper{ private var title:String = "" private var text:String = "" private var readers = HashSet<Reader>() private v
2020-06-17 17:37:37
299
原创 Kotlin 中的单例模式
使用 object 关键字就可以构造一个线程安全的单例类。object Singleton { init { // 在这里执行一些初始化 } fun sayHi(){ println("hello!") }}fun main() { Singleton.sayHi()}
2020-06-17 14:55:57
260
原创 安卓Activity启动模式
1.启动模式说明1.1standard 标准模式:说明:Android创建Activity时的默认模式。每次启动一个Activity都会又一次创建一个新的实例入栈,无论这个实例是否存在。生命周期:如上所看到的,每次被创建的实例Activity 的生命周期符合典型情况,它的onCreate、onStart、onResume都会被调用。1.2SingleTop 栈顶复用模式:说明:分两种处理情况:须要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity。不会再创建新
2020-05-20 20:19:07
283
原创 JAVA IO输入输出
在hdu上找到一个很好的总结。package IO;import java.io.BufferedInputStream;import java.util.Scanner;public class Main { private static Scanner in = new Scanner(new BufferedInputStream(System.in)); public static void main(String[] args) { while (
2020-05-14 08:35:49
173
原创 https中的混合加密与Wireshark抓包分析
目录简介对称密钥加密公开密钥加密认证HTTPS中的混合加密https解决的问题使用Wireshark抓包https第一步,Client Hello。第二步,Server Hello。第三步,Certificate、Server Key Exchange、ServerHello Done。第四步,Client Key Exchange、Change Cipher Spec、Encrypted Handshake Message。第五步,New Session T
2020-05-13 11:29:31
1097
原创 使用Wireshark抓包http请求
简介HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。工作原理HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器有:Apache服务器,IIS服务器(Internet Information Serv
2020-05-12 21:42:32
11708
原创 TCP使用Wireshark 抓包三次握手与四次挥手
目录准备三次握手四次挥手参考博客准备本科的时候实验课做过抓包实验,但是现在都忘完了,于是对照博客重新学下。首先选择实验的网站,选择https://blog.youkuaiyun.com/ ,在http://ip.tool.chinaz.com/中可以解析出对应的ip地址。(???阿里云牛逼)在Wireshark 中开启抓包,浏览器访问网站后关闭网站,停止抓包,通过tcp and ip.addr==47.95.47.253 可以筛选出对应的报文。可以发现,前3条报文就是...
2020-05-12 11:12:31
781
原创 压缩感知OMP(正交匹配追踪法 Orthogonal Matching Pursuit) 算法python实现
论文原文:% Signal Recovery From Random Measurements Via Orthogonal Matching% Pursuit,IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 53, NO. 12实现代码:def cs_omp(y,Phi,N,K): residual=y #初始化残...
2020-05-12 09:04:00
2832
3
原创 算数编码python实现
参考博客https://blog.youkuaiyun.com/hanzhen7541/article/details/91142442https://blog.youkuaiyun.com/zzq060143/article/details/89307513def get_dict_from_singal(): singal_dict = {} singal_dict['A'] = (0,...
2020-05-12 09:03:30
3644
原创 JAVA实现简单的散列表
设计如下:储存的value是一个字符串,key就是字符串的长度。用一个链表数组储存,暂时还比较简单。package myHashTable;public class myHashTable { class Node { int key; String content; Node next; Node(String content) { this.content = content;
2020-05-11 21:22:58
254
原创 JAVA中红黑树的实现
平衡二叉树是强平衡,红黑树是弱平衡(黑节点平衡),所以平衡二叉树调整结构时花费的操作更多,适合于读操作频繁的情况,红黑树适合与写操作平衡的情况。package RBTree;public class RBTree<T extends Comparable<T>> { private RBTNode<T> mRoot; // 根结点 private static final boolean RED = false; priva
2020-05-11 16:19:48
155
原创 JAVA中二叉搜索树的实现
基本性质:首先是一棵二叉树,其次每个节点的值大于其左子树上节点的值,小于其右子树上节点的值。结构:public class myBST { Node root = null; class Node { int value; Node left_child = null; Node right_child = null; Node(int value) { this.value = valu
2020-05-11 15:57:11
121
原创 JAVA中链表的实现及常用函数
链表的定义:public class myLinkedList { public Node head = null; class Node { public int value; public Node next = null; Node(int value) { this.value = value; } }}添加一个节点: public void addNode(int
2020-05-11 10:32:52
1094
原创 JAVA中栈stack的使用
public class myStack { public static void main(String[] args) { Stack<String> mystack = new Stack<>(); mystack.push("a"); mystack.push("b"); mystack.push("c"); while (!mystack.empty()){ S.
2020-05-09 20:27:47
349
原创 JAVA中队列queue的使用
import java.util.LinkedList;import java.util.Queue;public class myQueue { public static void main(String[] args) { //add和remove方法在失败的时候会抛出异常,所以不推荐。 Queue<String> queue = new LinkedList<>(); queue.offer("a"); ..
2020-05-09 20:16:15
336
stm32f103操作NRF24L01发送和接受数据
2018-10-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人