自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String和StringBuilder拼接时放在方法参数位置的一个区别

众所周知StringBuilder的效率高于String拼接,今天在一个方法中用拼接的时候,发现了一个问题public void test(int[] nums,int index,s1+"1"){}public void test(int[] nums,int index,s2.append("1")){}其中s1是String类型s2是StringBuilder结果的问题就是在这个递归的过程中,s1是走出递归返回方法的调用位置的时候,这个s的值还是在本方法的值,但是!!!s2在这个调用位置下方

2021-02-24 12:49:27 244

原创 关于方法中参数传递使用++i类似操作的一个误区

首先出现这个问题是在写有效括号生成的力扣题(22题)的时候出现的,具体代码如下class Solution { public List<String> generateParenthesis(int n) { if(n==0) return new ArrayList<String>(); List<String> res = new ArrayList<String>(); String s = ""

2021-01-22 14:58:18 228

原创 关于js中的this指向问题

普通函数的this指向取决于是谁调用的,如果是obj.fun(),那就是obj,如果只是单单的fun(),那this就代表的是默认的window了,那么最关键的是箭头函数呢?箭头函数中的this所指向取决于其父级程序的指向,比如在fun()中有一个箭头函数f1:()=>{console.log(this)},那么这个this取决于fun函数的this指向,obj.fun(),则箭头函数的指向为obj。...

2021-01-06 13:26:31 192

原创 关于Java向上与向下取整

向上取整ceil函数就是往大了取,注意那个负数往大了取,floor函数就是往小取

2020-09-15 12:48:21 126

原创 关于Java中try/catch/finally的记录

这个就是说,关于finally是不是会执行的一个记录。首先两种情况是不执行的,一种是try语句没有执行,即在其之上已经出现了return语句,另一种就是出现System.exit(0);这句代码意味着虚拟机退出执行,虚拟机都关了,还管你finally?下面讨论一下关于finally执行的情况下的一些问题。以下的代码是借用博客园中某位大佬的,非本人所写。public static void main(String[] args) { System.out.printl

2020-09-15 12:44:57 102

原创 一个大坑,node.js安装cnmp时A complete log of this run can be found in: npm ERR! C:\Users\Administrator\A

解决办法:npm config set strict-ssl false一运行就可以了。。。。

2020-06-28 22:53:25 810

原创 关于return的错误

今天犯了个错,记一下关于return的返回return是直接返回到这个方法结束,即这个方法的后面代码是不执行的!!!是方法!!

2020-06-25 15:40:29 1546

原创 lamda表达式的循序渐进过程

lamda表达式的前提是一个接口中只有一个抽象类方法public class Lamda { public static void main(String[] args) { Like like=new Ilike(); like.like(520); }}interface Like{ void like(int a);}//1.类实现class Ilike implements Like{ @Override pu

2020-06-24 16:46:53 119

原创 783. 二叉搜索树节点最小距离

给定一个二叉搜索树的根节点 root,返回树中任意两节点的差的最小值。思路面对BST ,我们知道其中序遍历是按照升序进行输出,而这个题是找任意两节点差的最小值,那肯定就是一个排序的数组两两之间进行比较,找最小值。面对树的问题一般都会进行递归遍历,需要考虑是这个树要进行前序遍历、中序遍历还是后序遍历。这个题肯定是中序了,因为我们需要一个排序的数组,然后这个时候就是要么整一个list把这些个点都存进去然后两两比较,要么就是设置一个前驱节点,把每一次前面的节点保存下来,然后做运算,再把当前值赋值给前驱节

2020-06-23 09:17:45 136

原创 700二叉搜索树中的搜索

给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,思路:重点是BST,也就是说是有序的,左小右大,现在要找到那个值,就是不断的递归找,对于每个节点分四个情况,为空返回null,小了往左边找,大了往右边找,相等直接返回。只是这里有一个是特意说的就是因为只有一次返回,所以每个return都应该是对等的关系,也就是说每一次的判断都是return的返回public TreeNode searchBST

2020-06-22 09:44:58 110

原创 springmvc中返回的json出现乱码的问题

再springmvc的配置文件中加入<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> &

2020-06-21 21:40:50 85

原创 spring中的事务

事务的四个原则:ACID原子性:在一个事务当中的所有操作应该被视为一个不可分割的整体,要么全成功,要么全部失败一致性:倘若事务操作失败,则回滚事务时,与原始状态一致隔离性:当你在进行事务操作时,其他事务的操作不能影响到你的事务操作持久性:事务完成了之后,这个事务对数据库所作出的修改就被持久地保存进了数据库当中,不会再被回滚操作影响。即使出现了各种事故,比如机房断电、网络故障等等意外情况,数据库当中的数据也不能丢失。spring中对于事务的管理可以使用aop完成,我们先来一个实例我们数据库此时

2020-06-21 21:22:02 107

原创 spring与mybatis的整合

首先是正常的mybatis-config.xml的文件(我们的pojo就是一个User.java)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>

2020-06-21 17:25:28 94

原创 pom中静态资源的过滤

<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> ...

2020-06-21 15:31:45 1291

原创 mybatis中的动态sql拼接

在进行动态sql之前,先说一个在实际开发中用户的id一般都是无序的,比如使用UUID的随机生成,下面写一个。public class UUIDGenerate { public static String getIdByUUID(){ return UUID.randomUUID().toString().replaceAll("-",""); }}众所周知我们在开发中会遇到一种拼接的问题,比如搜索框这种,用户选择不用的标签进行查询等等,我们经常碰到的问题就是

2020-06-20 23:58:58 3058

原创 关于在一对多中使用嵌套查询的问题

延续上一个博文public interface TeacherMapper { Teacher getTeacherById(@Param("id") int id); Teacher getTeacherById1(@Param("id") int id);} <select id="getTeacherById1" resultMap="TeacherStu"> select * from teacher where id=#{id};

2020-06-20 23:32:50 269

原创 mybatis复杂环境处理:多对一and一对多

用一个案例来进行学习:即老师和学生,多个学生关联一个老师,一个老师有多个学生,即多对一,一对多。先来看多对一@NoArgsConstructor@AllArgsConstructor@Datapublic class Student { private Integer id; private String name; private Teacher teacher;}本来按着数据库一张表对应一个pojo的话,这里第三个属性应该是一个tid,但这里用的是一个teach

2020-06-20 23:11:01 140

原创 mybatis的缓存机制

声明:这个图是借狂神的图。mybatis中的缓存是分一级缓存和二级缓存,即会话缓存和全局缓存,查询的时候是先看二级缓存有没有,二级缓存没有查一级缓存,一级缓存没有查数据库,然后查出来的数据再次放入一级缓存中,如此一级缓存中就有了。...

2020-06-20 16:55:38 127

原创 mybatis中的一级缓存和二级缓存

缓存的出现目的就是减少于数据库之间频繁的连接操作,当数据成千上万的时候这样的操作会极大的浪费时间,所以缓存的出现解决了这个问题。mybatis中有一级缓存和二级缓存,一级缓存就是本地的会话缓存,其是自动开启的,它存在于一个sqlSession的运行中,即当sqlSession.close()时就结束了。mybatis的核心配置文件,可以看到我们开起了日志配置<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration

2020-06-20 16:40:46 1169

原创 关于在navicat中执行一段代码报错的可能原因之一

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, '秦老师'); CREATE TABLE `student` (`id` INT(10) NOT NULL,`name` VARCHAR(

2020-06-18 23:28:38 698

原创 关于mybatis中#{}和 ${}的区别

这就相当于jdbc中普通的那个执行语句变成了preparement这种预编译,可以防止sql注入那种

2020-06-18 23:07:16 131

原创 mybatis中的注解开发

官方推荐的是对于mybatis中的开发一般建议的是使用xml的开发,注解也是可以,毕竟使用xml的一般都可以用注解,但是mybatis的注解开发只能是一些简单的sql,面对一些较为复杂的sql语句时就有些力不从心。比如我们在进行匹配数据库column名和类的属性名的时候,使用的xml中的resultMap注解中是不可能的。但是一些简单的还是可以的。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration

2020-06-18 23:02:07 131

原创 mybatis中的分页操作

其实mybatis中实现这样的操作一共有两种,一种是sql上进行操作,另一种是sql不变,通过sqlSession的这个方法进行操作,重点是那个RowBounds。我们只谈sql上的操作public interface UserMapper { User getUserById(int id); List<User> getUserByLimit(Map<String,Integer> map);} <resultMap id="UserMap" t

2020-06-18 17:51:12 203

原创 mybatis中日志的相关配置操作

mybatis有自带的日志工厂,其中我们暂时需要知道的有两个:STDOUT_LOGGING和LOG4JSTDOUT_LOGGING是属于比较标准的那种,打开的方式也是比较简单的在mybatis-config.xml中配置settings标签(注意settings标签的位置位于properties和typeAliases之间) <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </se

2020-06-18 17:43:30 299

原创 Mybatis执行时的一些流程

sqlSessionFactoryBuilder相当于局部变量,它一创建sqlSessionFactory就没了,生命就是如此短暂且绚丽。sqlSessionFactory相当于(你可以把它想象为)数据库连接池,在程序运行期间一直存在。建议使用单例模式或者静态单例模式。sqlSession(线程不安全的):相当于连接到连接池的一个请求,所以既然是请求记得开启、关闭。...

2020-06-18 17:31:36 76

原创 mybatis中关于数据库中的字段名与pojo中的属性名不同的解决关系

比如说有一个user表和一个User类,两者一一映射,user表中有一个字段为pwd,User类中有一个属性为password,如果在这样的情况下在mybatis 中运行,最后得到的User对象其中的password=null,这就是因为数据库字段不匹配的原因,如何解决?在mapper.xml中select等标签有一个属性叫做resultMap,可以进行名字之间的一个映射,参照下方代码,但是这只适合于简单的。<mapper namespace="com.li.dao.UserMapper">

2020-06-18 17:31:05 912

原创 mybatis中配置文件中的其他标签

<properties resource="db.properties"/>要强调的是第一:它可以是自闭和的,也可以用<property>往其中加入自己想加入的值第二:就是这个resource,它导入了一个我们自己编写的properties文件,如下driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useSSL=true&useUni

2020-06-17 21:55:28 125

原创 关于mybatis的搭建及CRUD

使用mybatis自然也是需要一套流程,比如使用spring的话你会考虑用xml配置还是注解什么的,mybatis也是如此,我们暂且是先用xml。这个过程也是比较简单的,先导入mybatis和mysql的依赖,随后编写mybatis-config.xml(说好了先试试xml的),如下<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Con

2020-06-16 22:58:17 89

原创 使用mybatis碰到ExceptionInInitializerError

一定记得在pom中加入以下代码 <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include>

2020-06-16 22:12:04 979 1

原创 aop实现的三种方法

第一种方式就是实现spring自带的接口依然是正常的增删改查public interface UserService { public void add(); public void delete(); public void update(); public void query();}public class UserServiceImpl implements UserService { @Override public void add() {

2020-06-14 23:01:29 956

原创 aop学习前奏之动态代理

我们继续按着前面的节奏继续,上次是租房的例子进行的静态代理的方法,也就是多写了一个代理类来进行多余的操作,再加上经常的dao/service这种类型的纵向开发,在不修改源代码的情况下,我们多加了一个代理类来进行修改,但与之而来的缺点就是往往要有一个代理对象的时候我们就必须要多一个代理类,处理倒是较为繁琐,这时另一个概念就随之而来——动态代理。(这种动态的东西总是会和反射有点关系~~)我们依然还是从租房的例子来说,现在仍是有要代理的对象rent接口和代理的真实角色Hostpublic interface

2020-06-14 21:58:59 319

原创 aop学习前奏之代理模式之静态代理

代理模式这个名字就起的很合适,它所要做的就是“代理”这件事,可以分为静态代理和动态代理。先说静态代理。其实我觉得静态代理更像是在不改动原有基础类的原则上进行延伸更多的操作,就像继承那样,多了更多的方法,当然这是我初次的感觉,话不多说,用一个小例子来带入静态代理。现在我来到上海,我想去租一间房,对,需求出现了,那么涉及租房的话就有一个人你必须要知道就是房东,但是很多房东不喜欢这其中的繁文缛节,于是怎么办呢?中介(代理)就来了,于是中介承担了中间一系列如带人看房、签合同等等的操作,顺便还赚了一波,而我作为

2020-06-13 23:42:51 127

原创 舍弃spring的xml进行纯Java的注解配置

如标题所记,前面的文章都是在xml的存在下进行的注解等配置,那能不能不用xml呢?答案当然是可以的,请看如下代码。首先是我先来一个pojo,目的是一会使用其中类的属性作为输出@Componentpublic class User { public String name="jj"; }可以看到的是我依然在其上注明了@Component的注解交给spring来管理,但其实并没有什么用,正如上文所说的那样,你没有在xml中把位置给spring,它又不是神仙,自己能跑过来把这个类接管了。

2020-06-13 22:32:57 136

原创 初学spring中的几个注解

我们结束了自动装配中的注解开发,接下来就是接触spring中的几个注解,注解开发是比较轻松的,它本身没有那种繁杂的xml的配置,但是事物往往是具有两面性的,因而仁者见仁智者见智。新建一个项目,在其中依然需要建一个xml文件(虽然说不需要去注册各种bean),我们上一个注解装配中说到要在xml中放入一个<context:annotation-config/>今天要有一个新的标签内容<context:component-scan base-package="com.li.pojo"/

2020-06-13 17:38:37 84

原创 spring的自动装配三种模式

第一种装配模式是我们非常熟悉的xml配置,这种装配需要写id,class,还有这个类具体的属性值等等,较为麻烦。第二种byName和byType的自动装配模式,如何设置呢?我们有三个类,cat、dog、people,并且people种有cat与dog的属性。public class Cat { public void shout(){ System.out.println("miao~"); }}public class Dog { public void

2020-06-12 23:08:55 661

原创 jdbc插入java.sql.SQLException: Parameter index out of range ( number of param

这个问题就是太丢人了,我同学一眼看出就说这玩意不就是你插入语句有四个参数你给了五个嘛,后来一检查确实是多写一个重复的属性参数,哎!引以为戒

2020-06-10 22:37:07 820

原创 关于form表单中无法提交的问题

这个其实也很简单吧,就是粗心了,form的action和method都很正确,但是问题是出在提交那,也就是提交按钮的设置,一种type是summit,一种是button本身,我刚开始就是button死活提交不了,后来突然想起来summit和button的区别,summit是有自动提交的操作,button就是单纯的一种,当然summit也属于button的一种,对于这两者的区别有不懂的可以去查查,反正我印象里的区别的就是这个,button就是一个普通人,summit就是一个天才这种类似的解读区别~~~..

2020-06-10 21:47:26 1915

原创 关于添加一个按钮并点击按钮进行页面跳转

  不知道今天是不是脑子有些混,平时都可以想到的方法竟然忘了,关于页面的一个跳转不就是一个再按钮上加一个onclick()的方法,然后再其中用window.location.href="/*.jsp这样的方式嘛,真是脑子蒙了"...

2020-06-10 21:18:41 1130

原创 关于在js中获得有null值的数组如何将其中的null删掉

  简而言之就是在js中获得一个有null值的数组,往servlet中放准备往数据库中加,但是有null的时候一直报错,报前端的什么500还是的么的,总之就是最烦那个错,记录一下如何消除其中的nulllet filterdan = danxuanans.filter(s=> $.trim(s).length>0);  采用的是filter的方法过滤掉其中元素大小小于等于0的元素,get it。补充:.trim()函数用于去除字符串两端的空白字符。注意:.trim() 函数用于去除字符串

2020-06-08 14:41:55 840

原创 关于a标签中传参的问题

  a标签的传参一般就是放在url中,这种有点不安全,但是一般传过去的也不是什么特别重要的东西,当然用ajax也可以传数据,就是跳转有点尴尬。所以我在这里碰到一个很简单的问题但是忽略了,那就是传的时候如果是个字符串是不用打双引号的,打了的话过去接受的就是带有双引号的一个值,和字符串是无法匹配的。<a href="${pageContext.request.contextPath}/editSurvey?surveyId=${surveyInfo.id}&method=xiugai">

2020-06-07 21:27:12 1004

空空如也

空空如也

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

TA关注的人

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