自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (1)
  • 收藏
  • 关注

原创 老司机学习MyBatis之运行原理SQLSessionFactory获取openSession对象

一、前言在前面一节,我们分析了SQLSessionFactory的初始化的整个过程,接下来这一节我们将通过查看源码看看SQLSessionFactory获得openSession的整个流程。二、案例继续Debug,在34行处打上断点F5下一步,进入DefaultSqlSessionFactory的openSession方法该方法中configuration.getDef...

2019-08-28 22:46:12 3822

转载 JAVA面试题 线程的生命周期包括哪几个阶段?

面试官:您知道线程的生命周期包括哪几个阶段?应聘者:线程的生命周期包含5个阶段,包括:新建、就绪、运行、阻塞、销毁。新建:就是刚使用new方法,new出来的线程; 就绪:就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行; 运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能; 阻塞:...

2019-07-23 07:13:29 795

原创 JAVA面试题 StringBuffer和StringBuilder的区别,从源码角度分析?

面试官Q1:请问StringBuffer和StringBuilder有什么区别?这是一个老生常谈的话题,笔者前几年每次面试都会被问到,作为基础面试题,被问到的概率百分之八九十。下面我们从面试需要答到的几个知识点来总结一下两者的区别有哪些?继承关系? 如何实现的扩容? 线程安全性?继承关系从源码上看看类StringBuffer和StringBuilder的继承结构:从结构...

2019-07-21 23:05:20 561

原创 SpringMVC教程之如何使用POJO作为参数

一、前言前面我们学习了@RequestParam注解,可以获得请求的参数,但是如果前台传来的是一个表单,表单中有很多参数,那么这个时候使用@RequestParam注解一个一个去映射的话,方法中就会有N多个注解在里面,显然这种方式获取参数是不可取的。这个时候我们可以使用一个Java对象来获得请求参数。Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性...

2019-07-14 07:55:38 460

原创 Java面试题之数据库三范式是什么?

什么是范式?简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式?第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在...

2018-12-22 23:49:34 837

原创 SpringMVC教程之自定义拦截器

一、前言SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterceptor 接口的类,比如Spri...

2018-12-22 12:04:24 421

转载 2019 Java面试题

马上又是一个金九银十的招聘旺季,小编在这里给大家整理了一套各大互联网公司面试都喜欢问的一些问题或者一些出场率很高的面试题,给在校招或者社招路上的你一臂之力。首先我们需要明白一个事实,招聘的一个很关键的因素是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过程,也是一个将心比心去沟通的过程。 就像我们有的人感觉自己很牛逼,但是拿不到offer,而其他的人菜的一笔,却可...

2018-08-26 23:24:18 4071 4

原创 SpringMVC基础篇之HelloWorld

一、准备Eclipse:Luna Service Release 1 (4.4.1)Tomcat插件:tomcat7-maven-pluginJDK:1.7.0_79spring-webmvc:4.1.3.RELEASE二、步骤搭建Maven工程如下:POM文件依赖配置:<project xmlns="http://maven.apache.org/PO...

2018-08-23 22:40:33 223

原创 MyBatis运行原理SQLSessionFactory的初始化

一、前言在前面的章节中,我们简单的介绍了一下MyBatis是如何配置使用的,为了更深切的体会到MyBatis的精髓,这一节我们将通过代码简单的看一看MyBatis的源码,分析一下MyBatis的执行流程二、案例修改MyBatisTest文件在32行处,打上断点,运行,方法进入,读取全局配置文件,通过文件流的形式进入文件流的源码就不看了,直接到new SqlSession...

2018-07-23 07:01:50 2008

原创 MyBatis插件开发原理

一、前言MyBatis采用责任链模式,通过动态代理组织多个插件(拦截器),通过这些插件可以改变MyBatis的默认行为(诸如SQL重写之类的),由于插件会深入到MyBatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。MyBatis在四大对象的创建过程中,都会有插件进行介入。插件可以利用动态代理机制一层层的包装目标对象,而实现目标对象在执行目标方法之前进行拦截的...

2018-07-20 07:03:38 2932

原创 老司机学习MyBatis之逆向工程MGB的简单使用

一、前言MyBatis Generator简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询,这样能够大大减少我们平时开发的工作量。但是表连接、存储过程等这些复杂sql的定义需要我们手工编写,下面我们将简单介绍一下如何逆向生成代码。二、案例①为了生成逆向工程,我们需要导...

2018-07-19 07:16:59 1690

原创 老司机学习MyBatis之整合ehcache缓存框架

一、前言MyBatis为我们提供了Cache接口,也提供了一些实现类,进入Cache接口源码,可以看到缓存对于MyBatis来说就是一个Map,比较简陋。但是大家都知道MyBatis是一个专注于持久层框架,与数据库打交道MyBatis是很专业的,但是对于缓存它就略显不足,即便如此MyBatis却提供了Cache接口的标准规范,谁做缓存专业,谁就来实现它,提供了很好的扩展性。本节我们将介绍了一下...

2018-07-16 20:28:27 419

原创 老司机学习MyBatis之一级、二级缓存的相关设置详解

一、前言前面两个章节,我们简单的介绍了一级缓存和二级缓存,并对它们的使用有了初步的了解,下面我们将从以下几个配置深入的了解一下几个常用的配置对一二级缓存的影响。二、案例①全局setting的cacheEnable这个配置我们在使用二级缓存的时候有用到,如果配置成false,二级缓存会失效,那么对一级缓存有影响吗?修改测试方法测试结果:控制台打印了一条SQL语句,第二...

2018-07-16 20:24:45 416

原创 史上最简单的SpringBoot教程之浅析热部署

一、前言在我们编写代码的时候,您会发现我们只是把返回的信息改变了或者增加了一个方法,就需要重新启动服务,如果以这种方式编码,我们平时开发就会非常头疼,那么如何解决热部署问题呢?这里Spring boot给出了一个解决方案,就是使用springloaded。二、准备开发环境:1.7.0_79开发工具:Eclipse项目管理工具:Maven3操作系统:Windows8Spring boot版本:1.4...

2018-07-10 07:23:29 498

原创 史上最简单的SpringBoot教程之如何使用FastJson解析JSON数据

一、准备开发环境:1.7.0_79开发工具:Eclipse项目管理工具:Maven3操作系统:Windows8Spring boot版本:1.4.1.RELEASE二、案例跟前面工程一样,搭建一个Maven工程SpringBootFastJsonPOM文件中导入相关依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="...

2018-07-09 07:27:30 1778

原创 史上最简单的SpringBoot教程之如何返回JSON

一、准备开发环境:1.7.0_79开发工具:Eclipse项目管理工具:Maven3操作系统:Windows8Spring boot版本:1.4.1.RELEASE二、案例搭建一个Maven工程SpringBootJsonPOM文件中导入相关依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w...

2018-07-09 07:23:20 1552

原创 史上最简单的SpringBoot教程之如何打印HelloWorld

一、前言Spring boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring boot包含的特性:♦创建独立的Spring应用程序♦嵌入Tomcat,无需部署war文件♦简化Maven配置♦自动配置Spring♦提供生产就绪功能,如指标,健康检查和外部配置♦开...

2018-07-09 07:16:26 2475

原创 菜鸟学习IntelliJ IDEA之代码格式化与Eclipse保持风格一致

一、前言相信很多用惯了Eclipse开发工具的童鞋,再来使用IntelliJ IDEA开发时,有点不太适应IntelliJ IDEA的代码风格或是快捷键的使用方式。本文简单的介绍一下如何保持Eclipse代码风格跟IntelliJ IDEA一样,如何解决这个问题呢?IntelliJ IDEA有对应的格式化插件,可以复用定义好的Eclipse的code style文件。二、步骤安装插件有...

2018-07-07 10:49:59 22986 5

原创 菜鸟学习IntelliJ IDEA之如何从SVN服务器check源码

一、准备参照前一章节《IntelliJ IDEA教程之如何提交代码到SVN服务器》,我们已经通过IntelliJ IDEA将工程提交到SVN服务器了,现在我们就要解决如何从SVN服务器检出代码到本地运行。二、步骤MyIdeaWorkspace新建一个工作区MyIdeaWorkspace,如下图点击VCS ->Checkout from Version Control ->Subvers...

2018-07-07 10:38:07 1741

原创 菜鸟学习IntelliJ IDEA之Maven工程多模块继承和聚合创建(详解)

一、前言IntelliJ IDEA开发环境搭建:具体参考《IntelliJ IDEA教程之如何配置Maven》Maven环境搭建:具体参考《Windows下Maven安装以及配置》主要模拟企业开发是如何搭建Maven工程的,以Spring+SpringMVC+MyBatis为框架搭建,搭建环境Windows8系统,使用IntelliJ IDEA搭建Maven工程或者项目。二、步骤...

2018-07-07 07:22:58 3590 1

原创 菜鸟学习IntelliJ IDEA之如何提交代码到SVN服务器

一、准备参照《IntelliJ IDEA教程之如何配置SVN》这篇文章配置SVN插件。提交代码到SVN之前,记得要先创建版本库,请参照《SVN如何建立版本库》这篇文章创建版本库。二、步骤查看SVN资源库,如下图:弹出一个svn的窗口,在左边有加号可以添加一个svn的库点击"+"号,添加SVN资源库,URL地址输入您创建的版本库地址,我们这里输入:https://Le...

2018-07-06 07:04:44 9377

原创 SVN如何建立版本库

一、前言如果还没有安装SVN服务器,请查阅《windows8下搭建svn服务器(图文教程)》这篇文章进行安装。二、步骤打开VisualSVN管理界面设置放置工程代码的位置Respositories右键 -> 新建 -> Respository…,如图:点击下一步(N)输入根目录名QueenWeb,点击下一步(N)选择Singl...

2018-07-05 06:57:11 5418

原创 菜鸟学习IntelliJ IDEA之如何配置SVN

一、前言大家如果用过MyEclipse或者Eclipse都应该知道是如何配置SVN插件,有两种方式:①在线联网式 ②插件式安装,如果您不知道想要了解如何安装,可以参考《windows下搭建svn服务器(图文教程)》这篇文章。这一节我们将介绍IDEA是如何配置SVN的。其实IDEA已经为我们集成了很多插件像SVN,CVS,Maven,Git等,我们要做的就是如何配置。二、步骤前往http://sub...

2018-07-04 21:32:47 1638

原创 windows8下搭建svn服务器(图文教程)

一、前言VisualSVN Server Manager是一款Windows下免费的SVN服务器图形化管理工具(工程目录创建(truck\tags\branches)、Group管理、User管理、权限分配),使得配置SVN仓库异常简单,无需注册一个随系统启动的服务脚本。那为什么要用VisualSVN Server,而不用Subversion?如果直接使用Subversion,那么在Windows...

2018-07-04 07:32:30 1243

原创 菜鸟学习IntelliJ IDEA之如何设置JVM运行参数

一、前言这里介绍设置IntelliJ IDEA 的JVM运行参数的方式,针对的是IntelliJ IDEA2017版本的。Edit Configurations->Maven->Runner设置以下参数-server -XX:PermSize=128M -XX:MaxPermSize=256m,可根据实际情况进行调整。二、步骤点击Edit Configurations...

2018-06-27 06:20:28 8909 2

原创 菜鸟学习IntelliJ IDEA之如何设置文件默认编码格式

一、前言这里介绍两种设置IntelliJ IDEA 的文件编码的方式,针对的是IntelliJ IDEA2017版本的File ->Settings ->Editor ->File Encodings 这种方式修改的文件编码方式只对当前 project 起作用,每次新建了一个工程后还需要重新设置编码方式。File ->Other Settings ->Default ...

2018-06-27 06:17:24 4725

原创 菜鸟学习IntelliJ IDEA之如何解决读取properties文件乱码问题

一、前言我们先看一下properties乱码的现象,读取db.properties文件里面的key,对应的value是中文,但是读取出来之后是乱码的,如下图所示:那我们如何解决这种问题呢?二、步骤点击File ->Settings ->Editor ->File Encodings,将下图框框中都选中改为UTF-8再次执行,读取properties文件没有乱码...

2018-06-26 06:57:48 3676 2

原创 菜鸟学习IntelliJ IDEA之如何调整菜单栏字体大小

一、前言这一节,我们介绍一下IntelliJ IDEA如何调整菜单栏字体大小,是菜单栏字体哟,如下图:二、步骤点击File->Settings或者使用快捷键Ctrl+Alt+S进入以下界面点击上图Appearance,查看右边区域找到Override default fonts by (not recommended);勾选前面的框,下面的一行(Name和Size)被点亮,Name中调整字体...

2018-06-25 07:38:37 4008

原创 菜鸟学习IntelliJ IDEA之如何设置编辑或控制台字体大小

一、前言有时候在使用Intellj IDEA的时候,看屏幕的代码很费力,那么我们就要调整下显示的字体大小,Intellj IDEA安装成功之后默认字体是很小的,我们就需要调整一下字体大小和颜色。二、步骤点击File->Settings或者使用快捷键Ctrl+Alt+S进入以下界面如下图,进行相关设置注意:这里设置的是编辑区域的字体如下图,进行控制台区域的字体相关设置,跟上面一样的操作注意:I...

2018-06-24 21:23:36 2349

原创 老司机学习MyBatis之二级缓存的使用

一、前言二级缓存是Application应用级别的缓存,它的是生命周期很长,跟Application的声明周期一样,也就是说它的作用范围是整个Application应用。二级缓存也叫做全局缓存,基于namespace级别的缓存,一个namespace对应一个二级缓存。①MyBatis将Application级别的二级缓存细分到Mapper级别,即对于每一个Mapper.xml,如果在其中使用了&l...

2018-06-24 21:20:57 351

原创 老司机学习MyBatis之一级缓存原理以及失效情况

一、前言MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存:一级缓存是Session会话级别的缓存,位于表示一次数据库会话的SqlSession对象之中,又被称之为本地缓存。一级缓存是MyBatis内部实现的一个特性,用户不能配置,默认情况下自动支持的缓存,用户没有定制它的权利(不过这也不是绝对的,可以通过开发插件对它进行修改);每当我们使用MyBatis开启一次和数据库的会话,MyB...

2018-06-22 06:58:28 2984 1

原创 菜鸟学习IntelliJ IDEA之如何clean或者install Maven项目

一、前言Eclipse中如果我们想clean或者install工程,我们只需要右键工程,然后找到run->Maven install 或者run->Maven clean就可以了,但是IDEA中我们要怎么去操作呢?二、步骤这里我们介绍两种方式,如何调试出窗口点击菜单栏View->Tool Windows->Maven projects 点击菜单栏Help...

2018-06-21 07:38:50 5867

原创 菜鸟学习IntelliJ IDEA之如何基于Maven创建Web工程

一、前言本文主要是图文详细介绍如何使用IntelliJ IDEA 创建基于Maven构建的Web项目的过程。二、步骤如果是第一次打开软件直接点击 Create New Project ,如果之前已经打开过项目了,需要点击菜单中 File -> New Module … 如下图点击Next点击Next点击Next最后点击Finish,完整的目录结构如下工程创建完了,那我们要怎么运行基于Mave...

2018-06-20 07:35:59 665

原创 菜鸟学习IntelliJ IDEA之如何基于Maven创建Java工程

一、前言如果没有在IDEA中配置Maven环境,请参考《IntelliJ IDEA教程之如何配置Maven》这篇文章进行配置。二、步骤点击File->New->Module...找到Maven的设置地方,如下图点击Next,定义gav点击Next点击Next点击Finish,完整的工程目录结构如下Idea会为我们自动生成App类和一个AppTest测试类,那我们就来试着运行一下至此,我...

2018-06-19 07:03:27 1768

原创 菜鸟学习IntelliJ IDEA之如何配置Maven

一、前言Maven 下载: http://maven.apache.org/download.cgi本文使用的Maven版本:apache-maven-3.2.3.zip本文使用的环境:Windows8二、步骤解压apache-maven-3.2.3.zip,解压的位置自定义,这里笔者解压到了E盘右键"计算机",选择"属性",之后点击"高级系统设置",点击"环境变量",设...

2018-06-18 12:59:13 18131 5

原创 Linux(CentOS7)下Maven3如何安装

一、准备Maven版本:apache-maven-3.3.3-bin.tar.gzLinux安装:请参考《VMware下CentOS6.8及7以上版本安装》,《VMware下安装CentOS7后,无法上网解决方法》这两篇文章安装CentOS7二、步骤创建maven目录,上传maven安装包[root@localhost src]# mkdir -p /usr/local/src/maven #...

2018-06-17 09:12:39 555

原创 菜鸟学习IntelliJ IDEA之如何创建普通的Web工程

一、前言前面一节我们介绍了如何搭建Java工程,这一节我们将介绍如何搭建Web工程。二、步骤大家如果看过前面一个章节,按照步骤搭建过完整的Java工程,就应该知道IntelliJ IDEA里面Project和Module的区别。这里我们重申一遍:Project指的是工作空间,类似Eclipse的workspaceModule指的是项目名称,指的具体创建的项目我们搭建的Project是MyIntel...

2018-06-16 08:00:26 528

原创 菜鸟学习IntelliJ IDEA之如何创建普通的Java工程

一、前言前面两个章节我们分别讲解了Windows和Linux两种不同的环境下InteliJ IDEA是如何安装的,后续几个章节我们将来看看如何通过InteliJ IDEA来创建项目和一些其他技巧性的使用方法,这一节我们将简单介绍一下InteliJ IDEA是如何创建普通的Java工程的。二、步骤首先我们进入InteliJ IDEA的启动界面点击 "Create New Project",弹出以下界...

2018-06-15 07:40:40 2463

原创 老司机学习MyBatis之动态SQL使用foreach在Oracle中批量插入

一、前言前面一节,我们讲解了在MySQL下如何通过foreach批量插入数据,这一节,我们将介绍在Oracle下批量插入数据,也有两种方式。二、案例完整的工程目录结构如下在Oracle下创建数据库表t_emp,并创建序列CREATE TABLE t_emp ( id number(10) NOT NULL, emp_name varchar(50) DEFAULT NULL, emp_...

2018-06-14 21:38:18 3549 1

原创 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入

一、前言当我们使用MyBatis一次性插入多条数据时候也可以使用foreach标签,本文我们将介绍MySQL中使用MyBatis批量插入数据的两种方式。二、案例①第一种方式修改EmpMapper文件,增加batchSave方法/*** 批量插入数据* @param empList*/public void batchSave(List<Emp> empLi...

2018-06-14 07:19:25 11309 2

HeidiSQL连接MySQL工具

HeidiSQL连接MySQL工具,觉得比Navicat好用,需要的可以自行下载

2018-02-07

空空如也

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

TA关注的人

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