自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis学习笔记 

Mybatis学习笔记项目搭建 建立普通maven项目,pom.xml如下 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.o.

2021-03-12 12:10:21 175 1

原创 springboot+maven-多模块

springboot+maven-多模块项目搭建项目搭建1.建立springboot父工程2.父工程的type必须选择Maven Pom,项目目录不存在src目录,只有pom.xml3.父工程的依赖可以在后期使用DependensManager进行统一管理4.一路next,查看项目结构5.父工程右键,新增子模块moudle6.选择普通maven项目7.继续新建子模块,步骤同上8.检查父项目pom.xml文件父工程的标签为pom父工程存在包含了所有的子工程,方便统一打包

2021-03-11 10:20:03 591

原创 Apache shiro 安全框架入门学习

文章目录前言一、什么是Apache Shiro?二、核心概念介绍及架构1.整体框架图2.核心概念3.整体功能三、功能详解总结前言此文章为自己学习Shiro框架做学习笔记之用,从shiro涉及到的几个概念的讲解,到简单的单元测试,最后实现权限框架的搭建及测试一、什么是Apache Shiro?Apache Shiro 是ASF旗下的一款开源软件,它是一个功能强大且易于使用的Java安全框架。Shiro将目标集中于Shiro开发团队所称的“四大安全基石”-认.

2020-09-20 21:20:53 393 1

原创 Mysql是如何用每个隔离级别去解决对应的问题?

1.Mysql的innodb引擎,数据库表会自动增加三个字段(记录当前事务的版本号,记录删除时事务版本号,记录回滚指针地址)数据库用共享锁和排它锁去解决脏读,用MVCC(多并发版本控制)不可重复读,用行锁+间隙锁=next-key锁去解决幻读...

2020-07-31 14:41:29 512

转载 MySQL InnoDB MVCC 能否完全解决幻读?

幻读是指多事务并发中一个事务读到了另一个事务insert的记录。在REPEATABLE READ隔离级别下,假设事务T1执行后,事务T2开始执行,并新增一条记录,然后事务T2提交,这时在事务T1中执行select是看不到事务T2新增的这条记录的。因为在事务T1生成readview的时刻,事务T2属于未来事务,所以是看不到事务T2新增的这条记录的。假设有如下场景:# 表结构如下CREATE TABLE hero ( number INT, name VARCHAR(100),

2020-07-31 13:59:24 428 1

转载 MySQL 共享锁 (lock in share mode),排他锁 (for update)

共享锁 (lock in share mode)简介允许不同事务之前共享加锁读取,但不允许其它事务修改或者加入排他锁如果有修改必须等待一个事务提交完成,才可以执行,容易出现死锁共享锁事务之间的读取session1:start transaction;select * from test where id = 1 lock in share mode;session2:start transaction;select * from test where id = 1 lock in

2020-07-31 09:32:57 1517

转载 数字计算之尾差处理

一般来说产生误差主要是因为四舍五入,而金额和单价、数量的小数位数都是有限的。为了避免小数点误差,要注意以下几点,否则经常会导致可能出库时数量出完了,但是金额还不为零的情况出现(不过这种情况很难避免,可以允许用户做调整,做一些特殊的出入库单,即允许只有金额、没有数量的出入库单,其实这种单据常用的,这是别话)注意几个算法:1、多用加法、少用乘法。例如订单上可能有这么几个字段:数量、单价、含税单价、税率、金额、税额、价税合计。关系如下:数量×单价=金额数量×含税单价=价税合计;数量×单价×税率=税

2020-07-30 10:27:46 9211

转载 Innodb中的事务隔离级别实现原理

前言:我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。#一次封锁or两段锁?因为有大量的并发访问,为了预防死锁,一般应用中推荐使用一次封锁法,就是在方法的开始阶段,已经预先知道会.

2020-07-30 09:55:09 284

转载 《MySQL重要知识点及面试总结》

前言:这篇花文章是我花了几天时间对之前总结的MySQL知识点做了完善后的产物,这篇文章可以用来回顾MySQL基础知识以及备战MySQL常见面试问题。什么是MySQL?MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQ

2020-07-30 09:53:01 302 1

转载 面试官问你:MYSQL事务和隔离级别,该如何回答

一、事务事务是由一组SQL语句组成的逻辑处理单元,是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。事务具有以下4个属性,通常简称为事务的ACID属性:原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败。回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。一致性(Consistent)

2020-07-30 09:49:45 167

原创 Servlet服务器和java Web的相关操作

Servlet是一个编写服务器时必须使用到的接口,当我们实现这个类的时候,我们看到了,他会让我们重写五个方法一.init()此方法是用来初始化相关的操作.再次方法是传递参数的位置我们可以看到,他提供了一个config给我们.这个config有四个作用在eclipse上面建立web项目之后.我们先要在web.xml文件里面配置我们的服务器,在原本的文件里面插入以上

2017-10-26 18:13:14 288

原创 Java读取XML文件的方式

XML的作用和HTML一样,都是写网页的语言,但是后来在实际使用中,人们发现xml更适合作为配置文件存在,到现在人们就把他当做配置文件来使用.不过XML只有一个根标签, 对于学习JAVA来说,学习XML主要是学习如何读取XML 文件,还有如何更改文件中的数据.如何把他写入硬盘中去.下面就来讲解读取XML文件的几种方式.1,DOM4J法 我人为这种方法是比较古老,而且笨的办法,其中的元素不能快速的

2017-10-17 18:43:52 573

原创 数据库连接的学习笔记

一,数据库连接的学习我们要学习他们的连接方式,(JDBC,DBCP,DButil,),这三种的连接方式大同小异,调用方法不同.1,JDBCJDBC的全英文是JAVA DATABASE CONNECTION,代码第一步:创建项目工程,创建包和JAVA文件,键入main()方法再项目下面创建一个lib的文件夹再把JDBC 的JAR包导入到里面去, builde path----

2017-10-16 17:02:04 211

原创 MySQl学习笔记

一.MySql数据库mysql数据库是小型的数据库,用于开发一般的网页和小型的个人软件,不做大型的企业及开发,由于mysql是开源的,所以比较适合初学者使用,简单易学,可以利用黑窗口和图形界面化工具进行编写,本篇文章只介绍图形界面化工具进行编译.语句都是一样的.在黑窗口中登录输入-u用户名 -p密码1.Mysql 中创建数据库时输入代码:create database 数据库名;2.删

2017-10-05 21:14:17 599

原创 JDBC学习笔记

一.数据库链接JDBC 的意思就是JAVA Datebase Conneection  的缩写 ,是链接数据库和java 的一种方式.实质是SUN公司写的一系列接口,供各个数据库厂商去实现.1.准备工作在进行数据库链接之前要把sun公司写好的jar包复制到项目中,并且要鼠标右键点击add to path builder 变成小奶瓶方可使用.2.加载数据库链接键盘输入代码:C

2017-10-05 20:53:09 353

原创 类的转换

1.String转换成StringBuffer的时候,只需定义一个空的字符串StringBuffer SB="";然后利用StringBuffer里面的append()方法,让一个StringBuffer类型的数据拼接一个String类型的数据就变成了StringBuffer类型的数据.String s="liming";StringBuffer sb="";StringBuffer

2017-07-29 20:22:17 174

原创 排序

1。冒泡排序:特点是相邻的两个进行对比排序,1和2排序完了2和3,第一次排序完之后最后一个就是最大值,依次进行,总共有length-1次排序,最后一次排序的特点是第一个和第二个作比较public static void bubbleSort(int[] arr){  for(int x = 0 ; x    for(int y = 0 ; y    if(arr[y]>arr[y+

2017-07-27 21:58:43 143

原创 Bigdecimal

Bigdecimal是一个类,该类用于解决数值计算的精确度问题在JAVA中,0.001+0.009不等于0.01而等于无限接近于0.01的一个数。所以就要用到这个类,在BigDecimal中加法是a1.add(a2);减法是a1.substract(a2);乘法是a1.multiply(a2);除法是a1.divide(a2);首先要定义一个量BigDecimal a1=new B

2017-07-27 21:58:10 370

原创 Calendar

Calendar的意思是日历一。字段摘要DATE,YEAR,MONTH等等二。1.Calendar()           构造一个带有默认时区和语言环境的 Calendar。2.abstract void  add(int field, int amount)           根据日历的规则,为给定的日历字段添加或减去指定的时间量。此处的int field 要

2017-07-27 21:57:37 225

原创 StringBuffer

StringBuffer    线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。Stri

2017-07-27 21:57:06 149

原创 Scanner笔记

1.在Scanner 中要先接收一个字符串类型的数据然后再接收一个int型的数据要不然会出现漏掉第二个数据.实例如下:Scanner sc=new Scanner(System.in); int b=sc.nextInt(); String a=sc.nextLine(); System.out.println("a:"+a+"b:"+b); 此时显示不了第二个数.若要改进

2017-07-22 21:27:20 220

原创 String类

一,String 的成员方法1.String 中的equals方法比较两个字符串知否相等(比较的是内容)==号比较的是地址值.两个不一样.String a="helloworld"     String b="hello"  String c="world"  a==c+b(false)  a equals(c+b) true  "helloworld"=="hello"+"w

2017-07-22 21:26:48 138

原创 抽象类及接口

1.抽象类特点抽象类和抽象方法必须用abstract关键字修饰格式abstract class 类名 {}public abstract void eat();抽象类不一定有抽象方法,有抽象方法的类一定是抽象类抽象类不能实例化那么,抽象类如何实例化呢?按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。抽象类的子类要么是抽象类:没有意义!

2017-07-22 21:26:11 156

原创 多态笔记

1。多态概述某一个事物,在不同时刻表现出来的不同状态。举例:猫可以是猫的类型。猫 m = new 猫();同时猫也是动物的一种,也可以把猫称为动物。动物 d = new 猫();在举一个例子:水在不同时刻的状态多态前提和体现有继承关系 有方法重写 有父类引用指向子类对象2.多态成员访问特点多态案例按照前提写一个多态的案例成员访问特点成员变

2017-07-22 21:25:21 267

原创 构造代码块笔记

在一个类中,如果他的构造方法是无参构造且构造方法被private修饰,那么,就不能直接创建子类对象调用其中的方法。但是如果方法是静态的,那么就可以利用类名调用静态方法package 如何制作文档;//数组操作的一个工具类public class ArrayTool {  //无参的构造方法// public ArrayTool(){//  // }  //把

2017-07-22 21:24:40 177

原创 修饰词的用法

1,finalfinal的用法: *   final可以修类,该类不能继承 *   fianl可以修饰成员方法,该方法不能被重写 *   final可以变量(成员/局部变量),这个时候变量就变成了一个常量!(常用)只能一次赋值。在局部内部类中,内类若要用到成员变量,则内类的成员变量必须要被final修饰,内类要用到成员方法时,内类的成员方法要被static final 修饰。

2017-07-22 21:23:53 1143

原创 匿名内部类笔记

package 内部类;interface English {abstract  void show2();}//利用内部类完成实例化/*class study2{ public void show2(English e){  e.show2();} class English2{  public void show2(){   System.out.p

2017-07-22 21:23:05 181

原创 继承笔记

1.父类的构造方法不能继承,所以每个类中都要写构造方法,快捷键Alt+shift+s+c无参构造,Alt+shift+s+o有参构造。2.如果类中有定义的变量,那么就要给出公共的访问方式get和set,快捷键Alt+shift+s+r3.在继承中父类不能访问子类的成员,所以需要以多态的形式来调用,分为向上型 fu 对象名a=new fu();和向下型(在有向上型的前提下进行强制

2017-07-22 21:22:14 144

原创 带有修饰词的内部类

笔记在类中类中,如果内类是被static修饰的类,这个类中可以有静态方法和非静态方法,那么外类的所有成员都默认带有final static 修饰词,class Outer4{ private int num = 10 ;        private static int num2 = 100;  //成员静态的内部类// 静态的内部类访问的外部类数据,外部累的相应成员

2017-07-17 18:41:53 448

原创 继承和多态

继承(多个类中有共同的属性时,把这些共同的东西放在一个类中)1,在java 中可以单个继承,不能多个同时继承,但是可以多层继承。2,如果父类是被final和private修饰的类时,不能被子类继承。3,在父类中有被final和private 修饰的方法和变量时也不能继承。4,被private修饰的变量需要引入set和get进行赋值继承。5,final的作用是终止,被修饰的变量不

2017-07-15 20:33:36 131

原创 二维数组

二维数组:就是元素为一维数组的一个数组。 二维数组的定义; 格式1:  数据类型[][] 数组名 = new 数据类型[m][n];    m:表示这个二维数组有多少个一维数组。//m是一维数组的个数  n:表示每一个一维数组的元素有多少个。//n是一维数组中元素的个数以下格式也可以表示二维数组   a:数据类型 数组名[][] = new 数据类型[m][

2017-06-21 20:54:53 179

原创 方法和数组

方法方法是完成特定功能的代码块; 一个类里面可以定义多个方法;格式如下修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {   函数体;   return 返回值;    }参数类型 限定调用方法时传入参数的数据类型参数名 是一个变量,接收调用方法时传入的参数如果返回值类型不是void那么函数必须要有一个返回值;return 返回参数;

2017-06-14 18:59:36 154

原创 java基础语法

一.关键字用于定义数据类型的关键字class  interface  byte  short  int  long float  double char boolean  void 用于定义流程控制的关键字else  switch  case  default   while  do  for  break  continue  return用于定义数据类型的关键字ture

2017-06-07 22:05:20 155

原创 DOS的操作要领

一,  快捷打开DOS的方式       1,WIN+R键  2,开始菜单---运行---输入cmd二.  快捷指令及意义       1.cd  文件夹名  (进入文件夹);   2.cd.. 回退到上一文件夹 ;  3.磁盘名:   进入某磁盘       4.md 创建一个文件夹;  5.rd清除一个空文件夹;  6.rd/s清除并询问是否清除;       7.cd\:

2017-06-07 21:01:08 176

原创 成绩分类软件设计

package helloworld;import java.util.Scanner;//调用键盘输入包public class 成绩 //定义一个类{ public static void main(String[] args)      //主函数入口 {  Scanner Sc=new Scanner(System.in );     //输入函数  Syste

2017-06-05 15:09:03 258

空空如也

空空如也

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

TA关注的人

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