自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 注解相关知识总结

注解相关知识总结开发工具与关键技术:InteliJ IDEA/ Annotataion作者:苦行者撰写时间:2021年6月18日一、 注解(Annotation)的概念Annotataion是从JDK5.0开始引入的新技术。Annotataion的作用:不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取。Annotataion的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnin

2021-06-08 08:21:55 171 1

原创 Spring boot 页面国际化

Spring boot 页面国际化开发工具与关键技术:InteliJ IDEA/ i18n作者:苦行者撰写时间:2021年6月8日一、国际化(I18N)简介 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。 国际化又称为 i18n:internationalization 软件实现国际化,需具备哪些特征: 对于程序中固定使用的文本元素,例如在菜单栏、导航条等中使用的文本元素、或错误提示信息,

2021-06-08 08:17:57 259 1

原创 Mybatis多表新增

Mybatis多表新增开发工具与关键技术:eclipse/ mybatis多表新增作者:苦行者撰写时间:2021年5月28日Mybatis的多表新增并不是什么非常难的技术点,只要记住以下两个关键点即可。1、 使用事务管理2、 获取表的新增主键ID当我们新增了第一张表,再新增第二张表的时候,必需要拿到第一张表的新增ID,才能够进行第二张表的新增,否则保存到数据库中的数据就会缺少与第一张表的唯一关联外键,那么如何获取第一张表的新增ID呢?其实非常简单,只需要在第一张表的Mapper.xml的新

2021-05-18 08:45:04 2738 1

原创 Mybatis缓存

Mybatis缓存开发工具与关键技术:IntelliJ IDEA/ mybatis-cache作者:杨先金撰写时间:2021年5月18日一、简介1、什么是缓存[Cache]?(1)、存在内存中的临时数据。(2)、将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能够使用缓存?经常查询并且不经

2021-05-18 08:41:55 82 1

原创 MyBatis配置之别名优化

MyBatis配置之别名优化开发工具与关键技术:IntelliJ IDEA/ mybatis作者:苦行者撰写时间:2021年5月2日一、 为什么要配置别名?上图是一个UserDao.xml配置文件,里面配置了一个新增的SQL语句,它的参数类型为指定包名下的User实体,长长的一连串的包名加上实体类名称,看起来非常地不舒服,按照一般的人性化一点的设置它不应该是简单一个User就搞定了的吗?其实它可以通过一个mybatis的配置文件来给这些实体类取一个简短的别名的。二、MyBatis配置之别名

2021-05-09 08:35:54 118 1

原创 使用队列来优化递归操作完成文件下载

使用队列来优化递归操作完成文件下载开发工具与关键技术:eclipse/ 递归&队列作者:苦行者撰写时间:2021年4月28日一、 递归:问:什么是递归?答:通俗的讲就是“方法自己调用自己”。那么它在内存中有什么特点?递归操作在内存中的原理其实就是一个堆栈的过程,而栈结构的特点是“先进后出”,这与队列的“先进先出”的特性是截然相反的。一般的,文件上传和下载需用到递归操作,它可以纵向遍历指定好的某个资源目录,然后把指定目录下的所有文件取出来,拿到对应文件的绝对资源路径,再拼接成一个

2021-05-09 08:28:20 741 2

原创 事务的特性(ACID)与隔离级别

开发工具与关键技术:eclipse/事务作者:杨先金撰写时间:2020年1月18日事务的特性1、原子性(Atomicity):指事务是不可分割的工作单位,事务中的操作要么都发生,要么都不发生。2、一致性(Consistency):事务前后数据的完整性必须保持一致。3、隔离性(Isolation):指多个用户并发访问数据时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要互相隔离。4、持久性(Durability):指一个事务一旦被提交,它对数据库中数据的改变是永久性的,接下来

2021-01-21 09:06:52 168 1

原创 Node读取流

开发工具与关键技术:webstorm-Node读取流作者:杨先金撰写时间:2020年1月8日//Node_ fs读取流,读取文件let fs = require(“fs”);//创建读取流//–语法:fs.createReadStream(文件路径,{可选的配置操作})let readStream = fs.createReadStream(“holle.txt”,{flags:“r”,encoding:“utf-8”});console.log(readStream);//监听读取流打

2021-01-21 09:05:06 414

原创 有关Java-Servlet中文乱码的问题

(作者:苦行者;撰写时间:2020年12月7日)一、response对象输出中文,产生乱码。1、字节(ServletOutputStream getOutputStream() 字节输出流)*解决方案*设置浏览器打开文件时采用的编码response.setHeader(“Content-Type”,“text/html;charset=UTF-8”);*获取字符串的byte数组采用的编码“哈喽我的”.getBytes(“UTF-8”);2、字符(PrintWriter getWrit

2020-12-07 18:24:46 149 1

原创 线程(Thread)知识点概要

(作者:苦行者;撰写时间:2020年12月2日)*线程的一些主要方法:1.thread.run():运行(线程任务)2.thread.start():开启线程3.thread.stop():强制结束线程(线程消亡)4.thread.sleep(time):冻结线程,线程依旧存活,时间到就解冻,接着运行线程5.thread.wait():彻底冻结,没有消亡还不能动,不过可以进行手动唤醒(notify()),被wait的线程会被存储到线程池里面。6.thread.notify():唤醒线程7.t

2020-12-02 18:26:18 207

原创 JAVA_Eclipse:JDBC连接MySQL数据库的步骤

(作者:苦行者;撰写时间:2020年8月7日)一、JDBC连接mySql数据库步骤1、注册驱动(三种方式):(1)、DriverManager.registerDriver(new com.mysql.jdbc.Driver());(2)、Class.forName("com.mysql.jdbc.Driver");(3)、System.getProperty ("jdbc.Drivers","com.mysql.jdbc.Driver:com.oracle.jdbc.Driver");

2020-08-09 09:08:21 1427

原创 使用Layui的时间模块设置时间范围

(作者:苦行者;撰写时间:2020年5月28日)在开发过程当中通常会遇到的关于某一特定时间段的筛选范围问题,一个合理的时间范围往往更加利于数据的筛选和处理,也更加严谨。下图是我们最为常见的情况。它要求我们筛选出从“开始时间”到“结束时间”内的所有符合条件的数据,那么如此看来,如果我们以输入的起始时间为基准点,控制结束时间的可输入范围,那么必须令结束时间不能早于起始时间,但可以晚于起始时间;反过来,如果以输入的结束时间为基准点,控制起始时间的可输入范围,那么必须令起始时间不能晚于起始时间,但可以早于起始

2020-05-28 15:37:18 4727 1

原创 数据结构与算法知识总结(下)

(作者:咸鱼;撰写时间:2020年5月7日)一、树的定义和基本术语1、定义:树是由n(n>=0)个结点组成的有限集何T。如果n=0,称为空树,如果n>0则满足:(1)、有一个特定的称为根(root)的结点,它只有直接后继,但没有直接前趋;(2)、除根以外的其他结点划分为m(m>0)个互不相干的有限集何T1,T2,…,Tm,每个集合又是一棵树,并且称之为根的子树(subTree)。每棵子树的根节点有且仅有一个直接前趋,但可以有0个或多个直接后继。2、基本术语(1)、节点(nod

2020-05-09 11:46:48 253

原创 数据结构与算法知识总结(中)

(作者:咸鱼;撰写时间:2020年5月6日)一、线性表的定义及特征1、定义:由n(n>=0)个相同类型数据元素(结点)a1,a2,a3,…an组成的有序序列(a1,a2,…an);其中,n为数据元素的个数,也称表的长度;空表n=0,记为()。2、特征:(1)、在非空的线性表,有且仅有一个开始结点a1,它没有直接前趋,且仅有一个直接后继a2;(2)、有且仅有一个终端结点an,它没有直...

2020-05-08 10:19:54 175

原创 数据结构与算法知识总结(上)

一、数据结构研究的内容1、逻辑结构(1)、线形结构。结构中的数据元素之间存在着一对一的线性关系。(2)、树结构。结构中的数据元素之间存在着一对多的层次关系。(3)、图结构。结构中的数据元素之间存在着多对多的任意关系。逻辑结构的延伸及基本算法(查找和排序)3、物理结构:它阐述的是数据与数据之间的逻辑结构如何存储在物理存储器中。通常 有两种存储方式:一种是数组的存储结构...

2020-04-28 15:38:20 174

原创 C#清空数组——null与Array.Clear()的区别

(作者:苦行者;撰写时间:2019年7月25日)1、在C#语句中,我们声明一个数组,需要new一个特定数据类型的数组,比如说int[ ]、string[ ]、char[ ]等,而在new一个数组的时候,同时还要确定你new出来的这个数组的长度,如图1中红色下划线所示;当你给数组添加数据的时候,它是按照键值对的格式给每一个key对应的value赋值,如图1所示(这里以int数组为例)。 ...

2019-07-27 16:48:54 8955 2

原创 技术小突破——批量新增床位

(作者:苦行者;撰写时间:2019年7月24日)1、这次是自小编第一次开发项目以来最为重大的一次技术突破,然而本人也是非常的激动,毕竟这是一次很难得的开发经验,应用已学的知识,实现一个又一个“零的突破”,这不就是一个IT程序员走向人生巅峰的至上要义吗?2、废话不多说,下面让我们来看一下本次要跟大家分享的技术到底有什么特别之处。下面是一个新增床位的模态框。当我点击“新增床位”按钮的时候,弹...

2019-07-27 16:37:06 277

原创 自动生成卡号和住院号

(作者:苦行者;撰写时间:2019年7月18)1、图1显示的html代码分别是两个卡号和住院号的文本框,而我要实现的功能是当我点击“新增”按钮的时候,自动生成卡号和住院号并回填到文本框内。 图12、下面我们一起来看一下它的js部分的代码,在“新增”的点击事件里面写一个方法,在方法体内用两个post请求分别到控制器...

2019-07-18 09:12:37 4761

原创 如何将datetime数据类型转化为字符串类型

(作者:苦行者;撰写时间:2019年7月17日)1、在修改保存之前,有一个重要的步骤,那就是回填数据,其他一些在数据库里面本身就是以字符串类型保存的数据回填还好,直接回填就行,不需要再进一步处理,反而是日期类型的数据就要麻烦得多,要进行数据转换,比如转化为字符串类型进行回填。Date数据类型还好说,只要在控制器那边直接转换成字符串类型也可以回填成功,反而是datetime类型要转换成字符串就有...

2019-07-18 09:08:02 8578

原创 如何去除input标签的历史记录

(作者:苦行者;撰写时间:2019年7月8日)1、input标签有一个令人郁闷的缺点(针对我个人),那就是它会把你曾经填写过的数据记录下来,下次点击它的时候就会把你的那些历史记录以下拉框的形式罗列展示出来,而你根本就不需要那些记录,特别是一些随便输入的历史记录它就会自己“跑”出来,非常影响观赏性。于是我便在网上搜索有关解决这个问题的方法,最后成功地解决了这一问题。原来都是input标签自带的...

2019-07-08 09:02:09 9620 2

原创 .serializeArray()序列化表格元素

(作者:苦行者;撰写时间:2019年7月6日)1、一般地,我们做增删查改的时候,少不了要获取到页面的数据,然后把它们传递到控制器进行进一步处理,这个步骤很必要,是必不可少的。然而,获取页面数据的方法就我目前的知识层面来说已知的就有两种;第一种方法是,直接根据ID或者其他能够唯一指向该元素的选择器来获取到该元素的值;第二种方法,也就是今天我要重点讲述的序列化form表单,一次性获取到指定for...

2019-07-08 08:57:45 712

原创 重定向的作用及其意义

(作者:苦行者;撰写时间:2019年6月28日)1、意义我们都知道在进入主页面之前要走“登录”这一步操作,登录的目的就是为了限制一些没有“身份”的人登录和操作主页面,登录页面是主页面要求设置的一道“关卡”。起初,二者之间是没有任何的联系,大家同为页面,彼此不认识谁,更不会存在相互制约的关系;然而,在“程序员”这个“上帝意识”的有意“撮合”下,彼此之间催生了一种若有若无的内在联系:“登录”成了...

2019-06-28 09:10:04 37531 5

原创 从MVC中删除实体模型须知

(作者:苦行者;撰写时间:2019年6月25日)1、要从一个MVC项目中删除实体模型,并添加新的实体模型,只须把原先的实体模型从项目的Models层中移除,再添加新的数据源即可;2、但非常值得注意的一点就是,在删除实体模型之前,一定要先把项目中Web.config里的原有的有关实体模型的属性和来源的那条html标签删除,即里面的标签否则会出现类似于浏览器的“缓存”机制的后果,即页面的功能...

2019-06-28 09:06:01 435

原创 往html内追加html

(作者:苦行者;撰写时间:2019年6月15日)1、图中是一个下拉菜单,里面有一些子选项,而我接下来要实现的功能是:当我点击任意一个选项的时候,让它对应地显示到下面的导航栏(隐藏起来了)内。Html结构如下:我给dl标签下面的每一个dd标签都给它一个id,主要是为了后面给追加的div标签自动添加id,方便后期使用。2、导航栏html结构如下,需要往里面追加html;3、下拉菜单的点...

2019-06-18 08:55:16 3028

原创 初始化echarts实例

(作者:苦行者;撰写时间:2019年6月15日)1、在此之前首先要引入一下Echarts插件。2、html部分如下。在这里要实例化的图例有三种,分别是饼状图、柱状图和折线图,给它们固定的宽度和高度;3、js部分。3.1初始化实例;基于准备好的dom,通过echarts.init(document.getElementById(“id名称”))的方法初始化实例;3.2、设置图表的配...

2019-06-18 08:41:51 6426 3

原创 鼠标拖动控制音量

(作者:苦行者;撰写时间:2019年6月7日)如何通过鼠标拖动来控制音量呢?其实很简单,跟拖动图标通过验证是差不多的原理,只不过几句代码的差别而已,首先让我们看一下它的页面布局;这是一个向上滚动条式的模拟音量键,通过鼠标拖动中间的灰色方块上下移动来达到控制音量大小的效果,让我们来看一下它的HTML:css样式:div里面包裹两个span标签,类adjust的span标签为中间的灰色方...

2019-06-09 20:09:41 1288

原创 拖动图标式验证

(作者:苦行者;撰写时间:2019年6月3日)1、验证码有各式各样的验证形式,有图片验证,有文字和数字验证,还有本次要将的拖动图标式验证,下面是它的页面:用户根据文字提示将左边的“美国队长的盾牌”的图标移动至右边的红色圈内即为验证成功,在这个过程中,系统将会自动计算时间,根据用时判断超越用户的百分比。以下是它的html代码:可以看到,在两张图片外包裹一层div标签并给它设置样式,给...

2019-06-09 20:02:56 1975

原创 踩与点赞

(作者:苦行者;撰写时间:2019年5月31日)1、Html代码及页面:这是两个layui插件自定义的点赞和踩的符号实体,用标签包裹,分别给这两个i标签一个id。2、Js代码:首先,定义好两个bit数据类型的变量eas和tra,让它们的初始值为true,分别用来记录是否点赞和是否踩两个状态;获取点赞的符号的id,给它添加点击事件,判断eas是否为false,即已经踩过,如果已经...

2019-06-09 19:55:50 1321

原创 正则表达式基础知识总结

(作者:杨先金;撰写时间:2019年5月23日)1、什么是正则表达式:概念:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。作用:正则表达式主要用来验证、搜索和替换。2、正则表达式的使用:(1)、JavaScript中使用正则表达式:JavaScript中正则表达式的...

2019-05-28 09:11:33 400

原创 JQuery根据url/json对象创建下拉框的方法的封装

(作者:杨先金;撰写时间:2019年5月23日)一般情况下我们给某个下拉框绑定数据的时候,为了方便快速以及减少代码量,我们会专门给它封装一个函数,以便写代码的时候直接调用,在这里就有两种创建下拉框的方法:1、JQuery根据url创建下拉框的方法的封装:具体的代码如下图所示。该函数有三个参数——第一个参数fromId :form表单id(必须);第二个参数url :查询下拉框的url...

2019-05-28 09:07:57 450

原创 如何实现轮播的自动更新

(作者:杨先金;撰写时间:2019年5月13日)1、想要灵活地实现轮播的自动更新,首先在控制器那边将保存到数据库的所有轮播图片查询出来,封装好返回给页面,其控制器代码如下图所示:2、页面部分的代码如下:@{List noticeCarousels = ViewBag.noticeCarousels;} :在页面获取到控制器返回回来的轮播数据,再在轮播体内写js代码,@{ }内的代码只会在服...

2019-05-16 17:42:53 708

原创 添加定时任务

(作者:杨先金;撰写时间:2019年5月13日)1、定义:“定时任务”指的是在规定的时间段内或时间点去执行某一操作。2、事例:比如说一个项目的业务,用户上传文件到保存到服务器的过程中会有一个中间操作,这个中间操作就是会先把用户上传的文件保存到临时目录里去,然后才是保存到数据库。那么问题来了,作为中间容器的临时目录,它里面的内容会随着时间的推移越积越多,不利于长足发展,因此就有了定时任务,把...

2019-05-16 17:30:55 2859

原创 打印水晶报表

(作者:杨先金;撰写时间:2019年4月23日)1、首先要安装水晶报表,这一步必不可少,安装好了之后,在你的项目里面新建一个文件夹,在这个文件夹里面添加新建项,选择数据集,然后就是添加数据源,这个数据源可以是数据库里的某张表,也可以是自定义的表,在这里我要的表在数据库里并不存在,是由多张表组合成的表,因此就需要自定义一张表作为数据源。2、自定义数据源:给它设置标题、表头以及各个字段,当然也不...

2019-05-07 13:13:08 410

原创 后台生成图片

(作者:杨先金;撰写时间:2019年4月23日)以生成证书为例,讲解一下如何实现在后台生成证书图片。1、首先是证书数据的绑定:定义一个Certifkicate()的方法,将获取到的选中行的数据一一进行绑定,为后续的生成图片做好准备工作。2、然后是生成证书(单条&批量新增证书表数据):获取选中行,判断是否选中数据,如果选中数据的长度小于或等于0,那么弹出提示框"请选择需要生成证书...

2019-05-07 13:07:19 600 2

原创 Excel表格的导入与导出

(作者:杨先金;撰写时间:2019年4月22日)一、主要思路:1、获取读取的文件;2、把文件转换为二进制数组;3、二进制数组转成内存流;4、利用NPOI把内存流中的数据读取成Excel。二、Excel表格的导入:1、首先初始化导入数据临时表,上传Excel表格,将上传的Excel表格保存到临时表:(1)、提交表单,到控制器请求数据,获取到文件的后缀,然后判断页面传过来的文件是否为Exce...

2019-05-06 10:24:43 3466

原创 文件选择器的使用

(作者:杨先金;撰写时间:2019年4月20日)1、页面部分的代码如下,首先,我们需要准备两个标签,一个img标签,还有一个input标签。img标签给它一个id为NoticeCarousePicture,并且给它的src属性设置图片路径,这里是一张“上传图片”的小图标;input标签的类型为“file”,也就是文件类型的input标签,用来打开文件选择器的,我们把它hidden隐藏起来, 除...

2019-04-28 12:25:18 2360

原创 Lambda表达式与Linq写法的相互转换

(作者:杨先金;撰写时间:2019年4月13日)1、下面是Lambda表达式的简单写法实例:Lambda表达式最突出的一个优势就是在简化代码的同时,保证功能与Linq写法的完全一致,一样能够查询数据。就上面的实例来看,我要得到animels对象里面字段长度小于7的所有属性,首先你得定义一个变量来接收数据,用Lambda表达式根据查询条件把符合条件的数据拿出来放到事先定义好的变量当中,这里用到...

2019-04-28 08:59:21 446

原创 文件选择器的使用

(作者:杨先金;撰写时间:2019年4月20日)1、页面部分的代码如下,首先,我们需要准备两个标签,一个img标签,还有一个input标签。img标签给它一个id为NoticeCarousePicture,并且给它的src属性设置图片路径,这里是一张“上传图片”的小图标;input标签的类型为“file”,也就是文件类型的input标签,用来打开文件选择器的,我们把它hidden隐藏起来, 除...

2019-04-28 07:32:15 619

原创 Lambda表达式与Linq写法的相互转换

(作者:杨先金;撰写时间:2019年4月13日)1、下面是Lambda表达式的简单写法实例:Lambda表达式最突出的一个优势就是在简化代码的同时,保证功能与Linq写法的完全一致,一样能够查询数据。就上面的实例来看,我要得到animels对象里面字段长度小于7的所有属性,首先你得定义一个变量来接收数据,用Lambda表达式根据查询条件把符合条件的数据拿出来放到事先定义好的变量当中,这里用到...

2019-04-28 07:22:30 374

原创 数据的查询

(作者:杨先金;撰写时间:2019年4月18日)在控制器中的查询主要是Linq查询,而Linq查询又可具体分为“联表查询”、“多条件查询”以及“分页查询”等,不同的情况下我们要查询的内容也不同,因此根据不同的情况选择合适的查询方式会让我们事半功倍。下面让我们来看一下它们各自的写法有什么相同与不同之处:1、Linq查询:Linq单表查询的写法如下:Linq查询的方法多种多样,它查询出来的...

2019-04-14 10:00:25 73

空空如也

空空如也

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

TA关注的人

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