- 博客(54)
- 收藏
- 关注
原创 Spark SQL快速入门
Spark SQL是spark的一个模块,用于处理海量的结构化数据。1.2 Spark SQL有什么特点?优点是什么?Spark SQL支持读取和写入多种格式的数据源,包括Parquet、JSON、CSV、JDBC等。Spark SQL支持标准的SQL语言,包括SELECT、JOIN、GROUP BY等,还支持用户自定义函数(UDF)和窗口函数(Window Function)等高级功能。
2023-07-28 13:19:03 717 1
原创 Redis入门
在初学java web开发时,想必使用的数据库都是MySQL,来进行一些简单的增删改查。但在做一些大项目和实际开发中,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库(MySQL数据库)来保存数据的系统会因为面向磁盘,读写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。
2023-05-20 15:26:14 834 1
原创 Mapper代理开发案例及MyBatis核心
使用这种方式可以不用写接口的实现类,免除了复杂的方法,使得代码更加清晰易懂按照以前的DAO 开发模式 ,我们有一个写了一个接口类 然后需要写这接口的实现类,现在就是MyBATis 通过帮我们生成了这个实现了。这里给大家展示一下我的模板(注意我的mysql是8.0以上的版本,其他版本写法有所不同),其中[]里的内容是可以换的,大家换成自己的即可,还有数据库账号密码啥的。之前我们是用的方式引入,当我们的映射文件一多就需要一个个找了,是十分麻烦的。
2023-01-07 17:57:31 851
原创 MyBatis框架 入门案例
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。什么是持久层呢,就是负责将数据保存到数据库的那一层代码,也就是对应着上面说的简化JDBC的操作。这里给没接触过框架的同学解释一下什么是框架。
2023-01-04 22:29:55 535
原创 MySQL数据库之事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。例如一个银行转账操作,张三向李四转1000块钱,那么第一步要判断张三是否有1000块,如果没有,那么事务就会抛出异常,直接结束,后面的收款等一系列操作也宣告失败。
2022-12-17 21:32:20 373
原创 MySQL数据库学习(5)DCL,函数
DCL是数据控制语言,用来管理用户、控制数据库的访问权限。就控制有哪些用户可以访问数据库,可以访问数据库的哪些内容。
2022-10-26 17:19:17 682
原创 MySQL数据库学习(4)
假如我们有20条员工信息,我们有很多种分法,不同分法对于的页数不同,这和我们查询每页的条数紧密相关。先在之前的数据里加上性别这里字段并丰富一下数据,然后点击查询模块,开始操作。分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。然后统计一下男性女性的平均年龄,加上AVG(*)即可,由于我们要求的年龄的平均值,所以把age作为参数代入。注意,如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。
2022-10-22 22:14:34 3257
原创 java日期时间类 Date和SimpleDateFormat
Date类的对象在Java中代表的是当前所在系统的此刻日期时间,说白了就是你计算机上现实的时间。
2022-10-18 20:27:20 429
原创 java内部类
一说静态,那肯定要有static来修饰,他的特点和使用与普通类完全相同,类有的成分他都有,只是位置在别人里面。例如,有自己的变量,常量,也可以有构造器和set,get方法。
2022-10-16 19:05:03 423
原创 MySQL数据库学习(3)
DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。关键字:SELECT。
2022-10-13 14:37:31 1059
原创 MySQL数据库学习(2)
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。这和上面说的DDL有什么区别呢,注意,DDL是对字段的修改,就是通俗来讲改个表名,字段名,或者删除整个字段之类的操作,而DML则可以针对某一个数据修改,例如直接修改某个人的年龄,姓名等。
2022-10-09 22:07:40 540
原创 java异常(下)
java本身涵盖的异常类型并不能覆盖所有现实中出现的问题,这就需要我们自定义类型来解决。自定义异常还有哪些好处呢?可以使用异常的机制管理业务问题,如提醒程序员注意,同时一旦出现bug,可以用异常的形式来清晰的指出错的地方。定义一个异常类继承Exception。重写构造器。在出现异常的地方用 throw new 自定义对象抛出。定义一个异常类继承RuntimeException。重写构造器。在出现异常的地方用 throw new 抛出。
2022-10-08 20:06:32 254
原创 MySQL数据库学习(1)
概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。什么是二维表?就是我们平时使用的excel表格。使用表存储数据,格式统一,便于维护使用SQL语言操作,标准统一,使用方便。在安装完成MySQL之后我们的计算机就成了数据库服务器,我们可以通过客户端管理DBMS,通过数据库来创建多张二维表。
2022-10-08 16:09:35 531
原创 java异常(上)
什么是异常?,因为出现语法错误时虚拟机会提示你错误的地方。而真正的异常包括比如:数组索引越界、空指针异常、日期格式化异常等。我们为什么要学习异常?在java里面程序出现了异常是会崩掉的,程序会推出然后虚拟机终止运行,研究异常并且避免异常,然后提前处理异常,体现的是程序的安全,健壮性。
2022-10-07 16:09:07 352
原创 KMP算法之求解next数组
那么我们还知道如果子串与主串失配的话,主串是不动的,移动的是子串,而子串最坏的情况是移动到第一个位置,那么next数组从第二位开始即初始化为1,如果该某一位置失配时前有相等前后子串,则返回其相等子串的长度+1,没有则返回1位置。第三次走时i到了第三个位置,i=1,j=-1,满足if语句,i++,j++,i=2,j=0,next[2]=0,第四次再一次进入if语句,此时满足next[i]=next[j],next[3]=j=1,完成next数组。a,ba,有相同“a”串,长度为1,+1,第四位赋值2。
2022-10-06 09:45:33 767
原创 哈夫曼树(Huffman Tree)
哈夫曼树又称最优二叉树,是一种带权路径长度最短的。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可以证明哈夫曼树的WPL是最小的。给定N个权值作为N个。
2022-10-03 14:42:07 4529
原创 java中的抽象类与方法
例如:定义一个动物抽象类,里面定义一个跑的抽象方法。由于不同动物跑的速度或者姿势不同,所以在定义跑这个方法时,并不能写死,也就是明确定义出跑的怎么样。
2022-10-02 20:24:12 2952
原创 JavaScript之事件
利用on开头的事件onclick,特点︰注册事件的唯一性,同一个元素同一个事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面注册的处理函数。例如,我们设置一个按钮,点击时希望弹出一个窗口显示“hi”,如果在下面又创建一个事件,让同一个按钮点击显示“hello”,那么上面的“hi”就会被覆盖,只会弹出一个显示“hello”的窗口。案例:假如给ul注册点击事件,ul下面有多个li,然后利用事件对象的target来找到当前点击的li,因为点击li,事件会冒泡到ul上,ul有注册事件,就会触发事件监听器。..
2022-08-07 16:36:01 168
原创 最小生成树--Prim算法和Kruskal算法
对于最小生成树的原理就不解释了,离散数学都学了~_~,我们的重点是如何判断是否有回路。这里有一个方法——集合避圈法。
2022-07-30 21:54:58 407 2
原创 Python中面向对象的三大特征(封装,继承,多态)
我们知道Python,Java等是面向对象的语言,本篇文章带你了解Python的面向对象的特征。
2022-07-24 10:42:01 292
原创 Python中for循环的使用及range()函数
回顾一下c/c++中for循环的用法,举个例子,遍历1~10:标准语法: for循环条件的数据类型只能是int类型,而python可以是整型、字符串,数据结构有列表,元组,字典甚至是文件(文件之后再讲)等,但要注意的是,既然是循环,那他必须要有一个范围,下面展示一个错误案例:初学者可能误认为这就是从0~10的循环,这位是错误的,而且编译器会显示应为collections.Iterable 类型,这个翻译过来就是集合,迭代器,进一步指明了in后面应是一个范围。先说字符串类型输出结果为:hel
2022-07-06 22:07:29 6199
原创 再谈二叉树(下)
上一期我们已经介绍了而二叉树的基础了,那么我们下面看一下更多的相关问题。根据遍历构造二叉树是不是每一种遍历组合都能构造出二叉树呢?答案是否。前序遍历和后序遍历的组合是不能确定为一二叉树的。前序和后序在本质上都是将父节点与子结点进行分离,但并没有指明左子树和右子树的能力,因此得到这两个序列只能明确父子关系,而不能确定一个二叉树。先看一个题:根据先序遍历的特点可知,第一个字符一定是代表最顶端的父节点,之后我们要确定做分支和右分支的界限,就是如何区分左右节点。这时就要借助中序遍历,我们知道中序
2022-05-30 20:54:55 897
原创 再谈二叉树(上)
二叉树是重要的数据结构内容,我们今天再来讲一下二叉树相关知识点。定义与结构首先再次明确一下什么是二叉树:二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。一颗正常的二叉树。我们怎么在计算机中储存二叉树呢没也就是说它的结构是什么样的呢,这就要用到我们的链表了。类似于指针,也需要用到结构.
2022-05-29 16:18:58 107 2
原创 Python 学习第四期
time :5-21字符串驻留机制仅作了解即可字符串的操作1,字符串的查询查找子字符串第一次出现的位置 .index(''子串'') / .find(''子串'')查找子字符串最后一次出现的位置 .rindex(''子串'') / .rfind(''子串'')2,大小写的转换upper()#把字符串中的所有字符转换成大写字母lower()#把字符串中的所有字符转换成小写字母swapcase()#小写转大写,大写转小写capitalize()#把第一个字符转换成大写
2022-05-27 20:31:17 195 1
原创 多重背包问题与分组背包
多重背包的含义: 物品数量不再是无穷多。思路,既然物品个数有限,但还要判断要装几个,我们可以用暴力的做法,三重循环,每层循环控制自己的变量,容易理解。第三层循环就是控制装的物品的个数,我们通过分析可以得知,在使用次数不超过物品提供个数的同时,还要小于背包的空间限制。#include<bits/stdc++.h>using namespace std;const int N = 1010;int v[N];int w[N];int s[N];int f[N][N
2022-05-26 23:13:43 309
原创 01背包与完全背包
背包问题是动态规划里最重要的问题之一,现在我们一起梳理一下这类问题的所有大类。01背包01背包是最简单最基础的背包问题,他的意思是只考虑物体的质量和体积。先看题目:AcWing-01 背包我们先分析,他既然是动态规划问题,我们就要避免重复计算,即我们要用数组将计算过的数据存储起来,下次若要使用时直接拿来,不需要浪费时间了。又因为包含两个要素重量和体积,所以我们先要有两个数组 V[N] , W[N],来存放数据,之后在需要一个数组存放最大的质量,那么我们要选用什么样的数组呢?...
2022-05-24 20:48:39 144
原创 STL初步(上)
STL是指C++的标准模板库(Standard Template Library)。它很好用,但也很复杂。本节将介绍STL中的一些常用算法和容器,在后面的章节中还会继续介绍。入门喽!!5.2.1排序与检索例题5-1大理石在哪儿(WhereistheMarble?,UVa10474)现有N个大理石,每个大理石上写了一个非负整数。首先把各数从小到大排序,然后回答Q个问题。每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x。排序后的大理石从左到右编号为1~N。...
2022-05-20 19:57:39 90
原创 栈与队列知识
栈先表明栈的特点:后进先出。即后进入的数据先行输出。栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾(栈顶部)进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。如图:栈的基本操作:1,栈的插入 .push()2,栈顶端元素删除并向下移动 .pop()3,判断栈是否为空 .empty()4,返回栈顶的元素 .top()5,返回栈里元素的个数 .size()操作实例:把1~10压入栈中并输出:代码:int main() {
2022-05-19 21:06:57 87
原创 整数二分查找
789. 数的范围输入样例:6 31 2 2 3 3 4345输出样例:3 45 5-1 -1代码:#include <algorithm> //STL通用算法#include <bitset> //STL位集容器#include <cctype>#include <cerrno>#include <clocale>#include <cmath>#inclu
2022-05-13 22:04:24 72
原创 Python 学习第三期
time :5-12字典的基本操作(1),通过键找到字典的元素方法,若未找到相关数据,.get() 会返回 None。lis={'zhangsan':100,'lisi':200}print(lis['zhangsan'])#方法一print(lis.get('zhangsan'))#方法二输出结果:100(2),键的判断lis={'zhangsan':100,'lisi':200}print('zhangsan' in lis)输出结果:True(3),字典元素的
2022-05-13 20:44:56 233
原创 Python 学习第二期
time :5-02列表(数组)第一种建表输出:a=['he','xd','90']for i in range(3): print(a[i],'',end='')输出结果:he xd 90第二种:a=list(['he','xd','90'])获取列表的索引(数组的下标)正向索引:0 1 2 3 .... n-1逆向索引:-n -n+1 .... -1格式:变量.index(列表元素)a=['he','xd','90']print(a.inde..
2022-05-08 16:17:02 939 1
原创 Python 学习第一期
time :4-29整形数据python 的进制转换模式(输出为十进制数据):print('二进制转换',0b101011)print('八进制转换',0o124)‘0b’ 后加上要转换的二进制数据‘0o’ 后加上八进制数据浮点数据浮点型数据进行计算加减法(非全部计算):from decimal import Decimalprint(Decimal('1.1')+Decimal('2.4'))字符串类型用 ''' str ''' 三引号可进行换行输入,且换行
2022-05-02 20:26:46 1060 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人