自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

123

  • 博客(43)
  • 收藏
  • 关注

原创 使用GitHub、Gitee作为图片仓库,CSDN文档引入

错误示例不能直接使用插入图片方式写入url地址(虽然这种方式在Typora等工具支持)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z1NTKIug-1598806934968)(https://github.com/hzb-start/MyImages/raw/master/test/my.png)]正确示例使用img标签<img src="https://github.com/hzb-start/MyImages/raw/master/test/.

2020-08-31 01:06:24 1598 4

原创 听说最近Gradle很火,我们一起去配置Gradle

Gradle是什么?与Maven的作用一样,帮助我们构建项目、管理jar包等为什么要使用Gradle?相比于Maven更加简洁、高效Spring官网推荐使用Gradle构建项目下载我将通过IDEA演示构建Gradle项目流程,IDEA可以通过wrapper(不依赖本机环境)方式使用Gradle,但是为了保障使用的Gradle版本统一并且可以自己更换版本所以不使用默认的wrapper方式,而是采用手工下载二进制压缩包并配置环境变量,再通过IDEA构建项目如果不太理解,可以.

2020-08-27 15:23:03 187

原创 大数加法 Java

头插法import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve(String s, Stri

2022-01-03 17:12:52 187

原创 Flink

report(transactions).executeInsert(“spend_report”);将transactions表经过report函数处理后写入到spend_report表每分钟(小时)计算在五分钟(小时)内每个账号的平均交易金额(滑动窗口)?注:使用分钟还是小时作为单位均可...

2021-10-26 22:28:42 524

原创 2021-10-24

1024

2021-10-24 23:46:15 120

原创 近似计算在Presto的使用

第一题搜索HyperLogLog算法相关内容,了解其原理,写出5条 HyperLogLog的用途或大数据场景下的实际案例概念HyperLogLog是一种高级数据结构,是用来统计基数,也称为基数计数算法基数计数(cardinality counting)是实际应用中一种常见的计算场景,在数据分析、网络监控及数据库优化等领域都有相关需求。精确的基数计数算法由于种种原因,在面对大数据场景时往往力不从心,因此如何在误差可控的情况下对基数进行估计就显得十分重要。目前常见的基数估计算法有Linear Count

2021-09-29 21:05:06 285

原创 Spark SQL思考题

一、如何避免小文件问题1、在最终输出数据时,减少 Task 的数目2、如果存在 Shuffle,可以通过 Adaptive Query Execution(AQE) 动态调整 partition 的数量3、如果不存在 shuffle,在代码端通过repartition的方法进行重分区然后再通过write的方式来减少 partition 的数量4、Hudi 提供的一个非常重要的特性是自动管理文件大小,而不用用户干预,使用 Hudi 提供的小文件合并功能避免小文件问题...

2021-09-21 15:55:08 72

原创 Spark SQL添加命令

为Spark SQL添加一条自定义命令SHOW VERSION显示当前Spark版本和Java版本(额外补充Scala版本)版本记录IDEA版本:2019.3.5本地Java版本:1.8.201本地Maven版本:3.6.3Spark版本:3.1.2版本问题困惑了好久,最后更换了IDEA版本后成功一、Spark SQL添加命令1、在SqlBase.g4添加语法规则src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g

2021-09-06 10:31:03 612

原创 反转链表之一题多解

一、题目LeetCode 206题测试地址:https://leetcode-cn.com/problems/reverse-linked-list/二、图解链表基本结构/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val =

2021-09-02 08:46:24 66

原创 从上到下打印二叉树(层序遍历)

从上到下打印二叉树(层序遍历)剑指 Offer 32 - I/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int[] levelOrder(Tre

2021-06-11 12:37:00 237 2

原创 conda使用(Windows 10)

未配置环境变量,所以使用Anaconda Powershell Prompt或Anaconda Prompt查看版本conda --version更新conda update conda查看环境conda info --envs或者conda env list创建环境conda create -n <env_name> python=x.x删除环境conda remove -n <env_name> --all激

2020-10-24 00:00:40 95

原创 阿里云购买服务器步骤

服务器为什么需要服务器?发布自己的网站或项目搭建数据库、tomcat、远程仓库等环境练习Linux基础操作以及Linux环境部署等等购买服务器24岁以下可以购买学生机,100+元/年官网:https://www.aliyun.com/,在阿里云购买需要在安全组设置中开通端口映射步骤如图123456789...

2020-08-23 18:14:41 156

原创 Spring Boot的配置文件存放规则

Spring Boot的配置文件可以写在哪些位置项目名:test总共有四种方式,如图所示方式一项目下创建文件夹:configconfig文件夹里面创建:application.yamlserver: port: 8081方式二项目下创建:application.yamlserver: port: 8082方式三项目的资源路径下创建文件夹:configconfig文件夹里面创建:application.yamlserver: port: 8083.

2020-08-23 18:08:47 221

原创 Spring Boot开发Web项目

静态资源通过jar包引入Spring Boot项目可以通过jar包去运行Web项目,因此静态资源不是存放到webapp中静态资源的存放路径通过WebMvcAutoConfiguration类中的addResourceHandlers()方法指定:/webjars/Spring Boot将静态资源存入到jar包中引入:从jar目录结构的webjars开始写检验:http://localhost:8080/webjars/jquery/3.3.1-1/jquery.js@Overridepub.

2020-08-23 18:06:14 124

原创 Spring Boot入门

1.微服务一个项目可以由多个**小型服务(微服务)**构成把各个功能变成独立的项目,再通过协议(例如HTTP等)将独立的项目连在一块如果需要对某个功能进行修改,只需对单独的项目进行修改,不涉及其它项目正常运行等问题2.Spring Boot作用(1)可以快速开发微服务模块(2)简化J2EE开发(用Java开发大型项目)(3)整个Spring技术栈的整合(整合SpringMVC、Spring等)(4)整个J2EE技术的整合(整合MyBatis、Redis等)3.准备工作(1)配置jdk①

2020-08-23 18:04:57 381

原创 8.事务

使用注解实现事务(声明式事务)目标:通过事务 使以下方法 要么全成功、要么全失败public void addStudent() {// 增加班级// 增加学生// CRUD}1.所需要的jar包(1)spring-tx-4.3.9.RELEASE.jar事务所需的jar包(2)commons-dbcp-1.4.jar连接池使用到的数据源(3)commons-pool-1.6.jar连接池(4)ojdbc7.jar事务与数据库相关,所以需要连接数据库(5)spring-jdb

2020-08-08 16:11:04 87

原创 7.使用注解定义bean

1.概念通过注解的形式将bean以及相应的属性值放入IOC容器2.示例(1)applicationContext.xml<?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:p="http://www.springfra

2020-08-08 16:10:31 111

原创 6.自动装配

1.约定优于配置自动装配是一种以约定的方式进行赋值2.使用范围只适用于ref类型3.示例<bean id="course1" class="nuc.hzb.entity.Course" autowire="byName"> <property name="courseName" value="java"></property> <property name="courseHour" value="54"></property>&lt

2020-08-08 16:09:58 112

原创 5.特殊值的注入问题

1.value与注入方式的区别使用子元素注入而使用value属性注入参数值位置写在首尾标签()的中间(不加双引号)写在value的属性值中(必须加双引号)type属性有(可选)可以通过type属性指定数据类型无参数值包含特殊字符(<, &)时的处理方法两种处理方法 一、使用<![

2020-08-08 16:09:27 79

原创 4.Spring DI

1.依赖注入示例(1)Teacher.javapackage nuc.hzb.entity;public class Teacher { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return

2020-08-08 16:08:55 74

原创 3.Spring IOC发展史

1.通过new来获取对象Student student = new Student();student.setXxx();2.通过简单工厂来获取对象3.通过IOC(超级工厂)获取对象4.控制反转的解释(1)IOC(控制反转)也可以称之为DI(依赖注入)(2)控制反转将创建对象、属性值的方式进行了翻转,从new、setXxx()翻转为了从Spring IOC容器getBean()(3)依赖注入将属性值注入给了属性,将属性注入给了bean,将bean注入给了IOC容器(4)总结IOC/D

2020-08-08 16:08:24 164

原创 2.开发Spring IOC程序

1.Student.javapackage nuc.hzb.entity;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Student { private int no; private String name; private int age;

2020-08-08 16:07:55 98

原创 1.Spring环境搭建

1.搭建Spring环境(1)下载jar①地址一https://repo.spring.io/webapp/#/artifacts/browse/tree/Properties/libs-release-local/org/springframework/spring②地址二https://maven.springframework.org/release/org/springframework/spring/(2)Spring至少需要的jar(5+1)①spring-aop.jar开发AO

2020-08-08 16:07:20 84

原创 MyBatis深入研究

MyBatis进阶1.数据库环境切换2.注解方式3.增删改的返回值问题4.Oracle事务提交5.自增1.数据库环境切换(1)切换environment在conf.xml中,指定实际使用的数据库<environments default="developmentOracle"> <!--Oracle数据库--> <environment id="developmentOracle"> <transactionManager type="JD

2020-07-21 23:24:19 385

原创 十七、Mybatis内置的类型处理器

类型处理器Java类型JDBC类型BooleanTypeHandlerBoolean,boolean任何兼容的布尔值ByteTypeHandlerByte,byte任何兼容的数字或字节类型ShortTypeHandlerShort,short任何兼容的数字或短整型IntegerTypeHandlerInteger,int任何兼容的数字和整型LongTypeHandlerLong,long任何兼容的数字或长整型FloatTypeHandl...

2020-07-21 18:24:37 187

原创 十六、逆向工程

1.概述表、类、接口、mapper.xml四者密切相关,因此当知道一个的时候,其他三个应该可以自动生成2.实现步骤(1)jarmybatis-generator-core.jarmybatis.jarojdbc.jar(2)generator.xml逆向工程的配置文件generator.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybati

2020-07-21 18:20:00 92

原创 十五、整合Ehcache缓存

1.概述三方提供的二级缓存有:ehcache、memcache要想整合三方提供的二级缓存 (或者自定义二级缓存),必须实现org.apache.ibatis.cache.Cache接口,该接口的默认实现类是PerpetualCache2.整合Ehcache二级缓存(1)jarehcache-core.jarmybatis-Ehcache.jarslf4j-api.jar(2)配置文件Ehcache.xml<ehcache xmlns:xsi="http://www.w3.org/20

2020-07-21 18:19:23 78

原创 十四、禁用、清理二级缓存

1.禁用<!--useCache="false"--><select id="queryAllStudents" resultType="student" useCache="false"> select * from student</select>2.清理(1)与清理一级缓存的方法相同commit会清理一级和二级缓存,但是清理二级缓存时,不能是查询自身的commit()一般执行增删改时会清理掉缓存,设计的原因是为了防止脏数据但是在清理二级缓存中,c

2020-07-21 18:18:31 166

原创 十三、查询缓存

1.一级缓存同一个SqlSession对象MyBatis默认开启一级缓存,如果用同样的SqlSession对象查询相同的数据则只会在第一次查询时向数据库发送SQL语句,并将查询的结果放入到SqlSession中(作为缓存在后续再次查询该同样的对象时,则直接从缓存中查询该对象即可,即省略了数据库的访问)public static void queryStudentByStuno() throws IOException { Reader reader = Resources.getResource

2020-07-21 18:16:53 114

原创 十二、延迟加载

1.使用场景一对一、一对多、多对一、多对多例如:一对一:学生、学生证,一对多:班级——学生如果不采用延迟加载(立即加载),查询时会将一和多都查询,班级、班级中的所有学生如果想要暂时只查询一的一方,而多的一方先不查询,而是在需要的时候再去查询,就要用到延迟加载2.一对一(1)conf.xml<settings> <!-- 开启日志,并指定使用的具体日志 --> <setting name="logImpl" value="LOG4J"/> <

2020-07-21 18:16:13 76

原创 十一、整合log4J日志

1.log4j依赖的jarlog4j.jar (mybatis.zip中lib中包含此jar)2.开启日志在conf.xml中开启<settings> <!-- 开启日志,并指定使用的具体日志 --> <setting name="logImpl" value="LOG4J"/></settings>如果不指定,Mybatis就会根据以下顺序 寻找日志SLF4J →Apache Commons Logging →Log4j 2 → Log4

2020-07-21 18:15:19 73

原创 十、关联查询

1.一对一(1)业务扩展类用resultType指定类的属性包含多表查询的所有字段package nuc.hzb.entity;public class Student { private int stuNo; private String stuName; private int stuAge; private String graName; private boolean stuSex; private Address address; public Student()

2020-07-21 18:14:38 111

原创 九、动态SQL

1.重复代码// 查询全部String statement = "select stuno,stuname from student";// 根据年龄查询学生String statement = "select stuno,stuname from student where stuage = #{stuage}"; // 根据姓名和年龄查询学生String statement = "select stuno,stuname from student where stuname = #{st

2020-07-21 18:13:44 91

原创 分享组件Share.js的使用

一、特别说明1.vue环境2.组件仓库地址3.使用 cdnjs引入share.min.css与 social-share.min.js(在线方式)二、使用效果1.初始版2.修改版三、使用说明1.引入(1)js文件地址https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/js/social-share.min.js(2)css文件地址https://cdnjs.cloudflare.com/ajax/lib

2020-07-21 15:01:57 3781

原创 idea热部署实现静态资源更新不需重启服务器

1.打开tomcat配置,点击Deployment,确保是带有war deployment,如果不是把之前的删掉,重新添加(这种情况一般是deployment有两种:war和war deployment)2.点击Server,确保On frame deactivation是Update classes and resources3.其它地方都与热部署生效的配置无关,看详细图...

2020-07-16 21:55:29 931

原创 八、输出参数

1.简单类型(8个基本+String)<select id="queryStudentCount" resultType="int"> select count(*) from student</select>2.输出参数为实体对象类型<select id="queryStudentByStuno" parameterType="int" resultType="student"> select * from student where stuno = #{

2020-07-16 21:30:20 284

原创 七、调用存储过程

1.查询某个年级的学生总数输入:年级输出:学生总数create or replace procedure queryCountByGradeWithProcedure(gName in varchar, sCount out number)asbeginselect count(*) into sCount from student where gname = graName;end;<!--通过调用存储过程实现查询 存储过程的输入参数,在MyBatis用Map来传递

2020-07-16 12:52:52 357

原创 六、输入参数(parameterType)

1.类型为简单类型(8个基本类型+String)#{}、${}的区别区别1#{任意值}${value} ,其中的标识符只能是value<select id="queryStudentByStuname" parameterType="string" resultMap="studentResult"> <!-- select * from student where stuname = #{stuname} --> select * from student where

2020-07-16 12:50:51 386

原创 五、类型处理器(转换器)

1.自带类型处理器int——number等2.自定义类型处理器java——数据库(jdbc类型)3.示例实体类Studentboolean stuSex true:男false:女表studentnumber stuSex1:男0:女4.自定义类型转换器步骤(1)创建转换器通过阅读源码发现,此接口有一个实现类BaseTypeHandler ,因此要实现转换器有2种选择a.实现接口TypeHandler接口b.继承BaseTypeHandlerpackage nuc.

2020-07-16 12:49:28 145

原创 四、优化

1.db.properties可以将配置信息单独放入db.properties文件中,然后再动态引入db.properties:k=v(在conf.xml中通过k的值来取v的值)引入之后,使用${key}(1)db.propertiesdriver=oracle.jdbc.OracleDriverurl=jdbc:oracle:thin:@127.0.0.1:1521:ORCLusername=scottpassword=tiger(2)conf.xml<?xml vers

2020-07-16 11:02:54 118

空空如也

空空如也

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

TA关注的人

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