自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java中比较时间大小

infoList.add(createSheetCheckInfo(“配供业务发货时只能选择在合同有效期内且终结未关闭的合同商品!

2023-05-24 11:02:31 235

原创 java文件上传

文件上传 /** * 文件上传 * @param file 文件 * @param fileSaveName 文件保存名称(不包含文件扩展名) * @param pathSuffix 指定文件保存路径拼接后缀,多级使用/分隔,如:person/ 实际保存路径就是 xxx/pathSuffix/xxx.jpg * @return */ @PostMapping("/file/upload") public ResultData .

2022-01-19 16:50:11 498

原创 mysql查询重复数据

SELECT d.`name`,count(*) count FROM person_details d group by d.`name` HAVING count>1

2022-01-05 10:49:10 457

原创 mysql根据时间进行筛选

<if test="param.startTime != null"> <![CDATA[ and s.create_time >= #{param.startTime} ]]> </if> <if test="param.endTime != null"> <![CDATA[ and s.create_time <= #{param.endTime} ]]> </if>

2022-01-04 13:30:41 1703

原创 省市区—三级联动

三级联动selectp.province_name,c.city_name,r.region_name,concat(p.province_name, c.city_name, r.region_name) namesfromt_ba_province pleft join t_ba_city c on p.province_code = c.province_codeleft join t_ba_region r on r.city_code = c.city_code– where

2021-12-15 09:28:08 68

原创 BigDecimal使用总结

这里写自定义目录标题BigDecimal.setScale()方法实用技巧BigDecimal比较建议用compareToBigDecimal.setScale()方法实用技巧scale() 方法用于格式化小数点setScale(1,BigDecimal.ROUND_DOWN) 直接删除多余的小数位,如2.35会变成2.3setScale(1,BigDecimal.ROUND_UP) 进位处理(无论小数如何),2.35变成2.4setScale(1,BigDecimal.ROUND_HALF_U

2021-11-11 15:42:51 101

原创 updateByExample与updateByExampleSelective&updateByPrimaryKey与updateByPrimaryKeySelective的区别1和使用

在使用MyBatis时,使用逆向工程工具生成一套接口和xml映射文件用于简单的单表操作,而其中有四个比较类似的接口方法,一套是 updateByExample与updateByExampleSelective另一套updateByPrimaryKey与updateByPrimaryKeySelective它们的作用是对数据库进行更新操作。1、updateByExample()按主键更新更新所有的字段,包括字段为null的也更新2、updateByExampleSelective()按主键更新值不

2021-07-30 08:58:01 4820 3

原创 通用mapper的学习与使用

什么是通用Mapper通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。极其方便的使用MyBatis单表的增删改查。支持单表操作,不支持通用的多表联合查询。快速入门:1、导入集成SpringBoot所需的依赖: <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId

2021-07-22 19:47:43 773 2

原创 Mybatis逆向工程生成的selectByExample,selectByPrimaryKey和select详解

Mybatis的逆向工程生成的Example类主要进行实体类的复杂查询通用mapper中selectByExample,selectByPrimaryKey和select的区别1、selectByExample几乎可以解决所有的查询,select和selectByPrimary是简化的针对特定情况的解决方法2、以主键为条件进行查询, selectByExample的代码如下:Example example = new Example(Sku.class);Example.Criteria crit

2021-07-22 08:59:18 5557

原创 Spring中redirect和forward的区别

页面转发区别:在Servlet中两种实现:forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request,response);redirect方式:response.sendRedirect("/somePage.jsp");forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的

2021-07-16 08:55:42 3144

原创 Java读取文件操作时路径中的斜杠问题

java中的路径一般用"/"windows中的路径一般用""linux、unix中的路径一般用"/"然后使用了正斜杠与反斜杠混合在一起的路径:file1 = new FileReader(new File("C:\\Users\\Administrator/Desktop\\55.txt"));发现也能正常的读取到文件,也就是说基本上可以认为Windows的路径中"\“等同于”/"总结:java中的路径一般用"/"windows中的路径一般用"",而"“需要转义,因此需要写成”\"lin

2021-07-09 15:06:37 1332

原创 mybatis之generator入门及使用方法

一、generator简介MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG寻求对简单CRUD(创建,检索,更新,删除)的大部分数据库操作产生重大影响。(一句话,generator可以自动生成代码和映射文件,但是多表查询还是需要我们去配置,即使这样也可以省

2021-07-08 19:23:03 1291

原创 Spring中ApplicationContext的getBean()

getBean一共有以下四种方法原型:(1)getBean(String name) :通过id或name去查找获取bean.参数name表示IOC容器中已经实例化的bean的id或者name,且无论是id还是name都要求在IOC容器中是唯一的不能重名。(2)getBean(Class type):通过类型去获取bean,要求类型必须唯一参数Class type表示要加载的Bean的类型。如果该类型没有继承任何父类(Object类除外)和实现接口的话,那么要求该类型的bean在IOC容器中也必须是

2021-07-05 17:02:36 298

原创 彻底理解Java中堆和栈

1、概述JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。2、堆内存什么是堆内存?堆内存是java内存中的一种,它的作用是用于存储java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放。堆内存的特点是什么?第一点:堆其实可以类似的看做是管道,或者说是平时去排队买票的情况差不多,所以堆内存的特点就是:先进先出,后进后出,也就是你先排队好,你先买票。第二点:堆可以动态地分配

2021-06-14 10:00:19 5045 5

原创 request.getParameter()方法

request.getParameter()方法:1.获取通过http协议提交过来的数据. 通过容器的实现来取得通过get或者post方式提交过来的数据2.request.getParameter()方法传递的数据,会从web客户端传到web服务器端,代表HTTP请求数据,该方法返回String类型的数据request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段request.getAttribute()方法返回request范

2021-06-11 20:52:49 8201

原创 关于Java读取文件操作时路径中的斜杠问题

file1 = new FileReader(new File(“C:/Users/Administrator/Desktop/55.txt”));因为以前使用路径的时候都采用的是双斜杠.翻看了下自己以前的代码,发现自己的代码全都是这种的:file1 = new FileReader(new File(“C:\Users\Administrator\Desktop\55.txt”));去网上查了后发现如下结论:java中的路径一般用"/"windows中的路径一般用""linux、unix中的

2021-06-11 09:00:58 3489

转载 HashMap底层实现原理及面试问题

①HashMap的工作原理HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 HashMap在每个链表节点中储存键值对对象。当两个不同的键对象的hashcode相同时

2021-06-11 07:49:15 65

原创 java 快速排序

快速排序对冒泡排序的一种改进思路:一趟排序后,选取一个中间值,数组被分为比中间值小的部分,比中间值大的部分;再对左右两部分分别递归排序代码实现import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr = {-9, 78, 0, 23, -567, 70}; System.out.println("排序前---");

2021-06-08 19:22:26 43

原创 El表达式中pageScope、requestScope、sessionScope、applicationScope作用

从pageContext、request、session、application四个作用域依次检索指定关键词的数据,到XXScope的XX作用域为止。即它们检索的范围依次是:pageScope : pageContext。 //page之后的检索不到requestScope: pageContext->request。 //request之后的检索不到sessionScope: pageContext->request->session。 //se

2021-06-07 17:19:45 624

原创 request.getRequestDispatcher.forward() && response.sendRedirect()

要带参数转网页,就用getRequestDispatcher(“book_list.jsp”).forward(request,response);本servlet已完成全部处理,比如更新、删除,不需传递参数,而需要在一个新的网页处理新的要求,比如再次查看更新后或删除后的信息,就用sendRedirectresponse.sendRedirect(“find_servlet”); 在find_servlet这个servlet中执行查找任务,然后再将查找这个request通过setAttribute方.

2021-06-06 10:54:50 463

原创 NULL 和空字符串 “ “ 的区别

两者区别非常大,虽然都是没有信息,但是null代表堆内存中根本没有这个东西,而空字符串就完全不同了,空字符串也是字符串,他是有内存空间的,你可以这样尝试一下:String aaa = null;String bbb = “”;然后调用String的方法比如说aaa.indexOf(“a”);bbb.indexOf(“a”);这样的话,字符串aaa在调用indexOf的时候会报空指针异常,而bbb则不会。因为aaa在堆内存中不存在,无法调用方法,而bbb是存在的。你可以这么想,余额宝里有100

2021-06-05 17:02:16 394

原创 request和requestScope的区别

EL表达式中,param和requestScope的区别在看param和requestScope之前,不妨先了解下在java下request的情况:request对象通常用来接收客户端提交到服务端的数据,如:在servlet或者action中可以用request.getParameter()的方法获取获取参数内容;requestScope通常是在servlet或者action的服务端中通过request.setAttribute()方法把数据放到request对象中供客户端获取,然后客户端获取

2021-06-05 15:49:18 146

原创 Servlet的生命周期

生命周期的各个阶段:实例化 :Servlet 容器创建 Servlet 的实例初始化 :该容器调用init() 方法请求处理 :如果请求Servlet,则容器调用 service()方法服务终止 :销毁实例之前调用destroy() 方法Servlet生命周期详解:Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应。常用的tomcat、jbo.

2021-06-05 14:56:12 275

原创 Servlet——ServletContext 对象的理解和应用

ServletContext提两个问题:1.大家在访问某个网站的时候,往往都会看到网站的首页面显示您是第几位浏览者(网站计数器),这是怎么实现的?2.我们在访问某个bbs网站的时候,往往会显示有多少人在线,这是怎么实现的?可能我们会想到的常规实现思路:数据库或者文件。这种做法比较简单,但是却会对数据库或者文件访问过于频繁,开销比较大。解决之道是用ServletContext什么是ServletContext要理解ServletContext就必须和Cookie、Session做一个对比,如下图

2021-06-04 11:20:33 228

原创 JSP的三种跳转方式

jsp:forward 属于服务器内部跳转,由服务器控制跳转,请求一次服务器。超链接跳转,属于客户端跳转,由客户端控制跳转,2次请求服务器。<response:sendRedirect(“url”) 属于客户端跳转,有服务器端控制跳转,2次请求服务器这三种跳转一般和page,request,session,application 4种属性的的作用范围来进行练习。下面是4中属性的作用范围:page:request:session:application:...

2021-06-03 09:27:12 138

原创 Arrays.sort和Collections.sort区别

区别如果我们需要对一个对象数组进行排序,我们可以使用Arrays.sort()方法。如果我们需要排序一个对象列表,我们可以使用Collections.sort()方法。Collections.sort内部实现也是Arrays.sort()Arrays.sort()Arrays.sort() 采用了2种排序算法 – 基本类型数据使用快速排序法,对象数组使用归并排序。...

2021-05-13 19:42:38 252

原创 ReentrantLock()和synchronized的原理

大自然的生存法则,在Java里也异常适用。ReentrantLock默认就是采用非公平锁,让线程们自己去竞争。ReentrantLock类里一共由三部分组成。源码分析ReentrantLock类中有三个内部类。Sync:继承AQS。NonfairSync:继承Sync。FairSync:继承Sync。package java.util.concurrent.locks;import java.util.concurrent.TimeUnit;import java.util.Collec

2021-05-11 16:28:50 87

原创 java换行符

可以使用Java中\n和\r的换行,不过也是有区别的,如下:  1.\r 叫回车 Carriage Return  2.\n 叫新行 New Line  但是都会造成换行,但结果会有区别public class Tets { public static void main(String[] args) { System.out.print("aaa"+"\r"); System.out.print("bbb"); }}结果是:bbb进程已结束,

2021-05-11 07:44:40 388

原创 数据库,事务的详细解析

事务:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败操作: 1、开启事务:start transaction 2、回滚:rollback 3、提交:commit面试重点:事务的四大特征:1、原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败2、持久性:当事务提交或回滚后,数据库会持久化的保存数据3、隔离性:多个事务之间,相互独立4、一致性:事务操作前后数据总量不变/*事务:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功

2021-05-10 20:50:42 79

原创 数据库的约束(对表中的数据进行限定,保证数据的正确性、有效性和完整性)

/*约束:对表中的数据进行限定,保证数据的正确性、有效性和完整性 分类:1、主键约束:primary key 2、非空约束:not null 3、唯一约束:unique 4、外键约束:foreign key */ /*非空约束:not null*/ /*创建表添加非空约束*/CREATE TABLE stu ( id INT, NAME VARCHAR ( 20 ) NOT NULL /*name非空*/);/*删除name的非空约束*/ALTER TABLE stu mod.

2021-05-10 20:48:03 2102

原创 DQL (排序查询 聚合函数 分组查询 分页查询)

/*排序查询ORDER BY 排序方式(升序ASC 降序DESC)*/select * from studenttable order by score DESC;/*按照score升序序,如果一样,则按照age升序*/select * from studenttable order by score ASC , age ASC;/*聚合函数:将一列数据作为一个整体,进行纵向的计算. 注意:聚合函数的计算,排出null*//*count:计算个数 max:计算最大值 min:计算..

2021-05-10 20:46:50 62

原创 mysql 数据库,多表查询(内外连接查询)

/*内连接查询:1、隐式内连接(使用where条件消除无用数据) 2、显示内连接*//*1、隐式内连接(使用where条件消除无用数据*//*查询所有员工信息和对应的部门信息*/SELECT * FROM emp,dept WHERE emp.dept_id=dept.id;/*查询员工表的名称,性别,部门表的名称*/SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp.dept_id=dept.id;/*一般是这种写法,更.

2021-05-10 20:44:46 97

原创 DCL 授权管理

/*SQL分类: 1、DDL:操作数据库和表 2、DML:增删改表中的数据 3、DQL:查询表中的数据 4、DCL:管理用户,授权*//*1、管理用户: 1、添加用户 2、删除用户 3、修改用户密码 4、查询用户 *//*1、切换到student数据库*/use student;/*2、查询user表*/SELECT * FROM USER;/*创建用户:CREATE USER '用户名'.

2021-05-10 20:43:00 69

原创 DML增删改表中的数据

/*添加数据*/insert into studenttable(id,name,age) values(1,'张无忌',18);/*1、列名和值要一一对应 2、如果表名后,不定义列名,则默认给所有列添加值*/INSERT INTO studenttable VALUES(2,'赵敏',17,99.9,null);INSERT INTO studenttable VALUES(3,'刘亦菲',25,80,NULL,'女');/*查看数据*/SELECT * from studenttabl.

2021-05-10 20:41:57 48

原创 DDL 操作表和数据库(创建,删除,修改,添加,复制表)

/*date:日期,只包含年月日,yyyy-MM-dd datatime:日期,只包含年月日时分秒,yyyy-MM-dd HH:mm:ss(HH是24小时制,hh是12小时制) timestamp:时间戳类型 包含年月日时分秒,yyyy-MM-dd HH:mm:ss(HH是24小时制,hh是12小时制) 如果将来不给这个字段赋值,或赋值null,则默认使用当前的系统时间,来自动赋值*/ /*创建表*/CREATE TABLE studenttable( .

2021-05-10 20:39:08 143

原创 DQL 查询表(select的各种命令)

/*查询studenttable表*/select *from studenttable;/* select 字段列表 from 表名列表 where条件列表 group by分组字段 having分组之后的条件 order by排序 limit分页限定*//*查询多个字段**/select name,age from studenttable;/*查询所有字段*/select * from studenttable;/*去除重复的结果集*/select distinct.

2021-05-10 20:34:45 135

原创 Dos命令大全完整版

DOS(磁盘操作系统)命令,是DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。DOS命令不区分大小写,比如C盘的Program Files,在dos命令中完全可以用"progra~1"代替,加上英文引号是因为名称的中间有空格(即多于一个词),这一点是初学者经常忽略的。常用命令:(1)查看目录内容命令 DIR(2)指定可执行文件搜索目录 PATH(3)创建目录命令 MD(4)打开指定目录命令 CD(5)删除当前指定的子目录命令 R

2021-05-10 08:27:26 4853 2

原创 命令行中java和javac、javap使用详解(java编译命令)

最近重新复习了一下java基础,这里便讲讲对于一个类文件如何编译、运行、反编译的。也让自己加深一下印象。可知,当前默认目录为C盘Users文件夹下的Administrator文件夹。一般而言,我们习惯改变当前目录。由于windows有磁盘分区,若要跳到其他磁盘,例如E盘,有几种方法:1、输入命令: pushd 路径(此命令可将当前目录设为所希望的任一个已存在的路径)2、输入命令: e: 转移到e盘,然后再输入 cd 转移到所希望的已知路径。希望在windows命令行下使用javac、java、ja

2021-05-10 08:18:32 1005

原创 JDBC快速入门,以及各种操作类的详细解释

**DriverManager:驱动管理对象* *功能:1、注册驱动 :告诉程序该使用哪一个数据库驱动jar包* 2、获取数据库连接** Connection:数据库连接对象* *功能:1、获取sql的对象 2、管理事务:开启,提交,回滚** Statement:执行sql的对象** ResultSet:结果集对象,封装

2021-05-09 14:52:56 93

原创 理解Java的Class.forName()方法

Class.forName() 官方文档解释:通俗点说就是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段,并返回与该类相关的Class对象。例如:加载thread类(只是先加载、初始化,并没有实例化\new\分配内存空间)Class t = Class.forName(“java.lang.Thread”);另外需要理解的概念:♦静态代码块: 概念总结:随着类的加载而加载,并且只执行一次,常用来执行类的初始化 作用:用于给类初始化.♦区分 new关键字和newInstance

2021-05-09 14:31:18 200

空空如也

空空如也

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

TA关注的人

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