自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (5)
  • 收藏
  • 关注

原创 spring 事务管理篇(十二)月半小夜曲

事务管理1.认识事务本身事务:以可控的方式对数据资源进行访问的一组操作。2.事务的ACID属性原子性(Atomicity):事务所包含的全部操作是一个不可分割的整体,这些操作要么全部提交成功,要么只要有其中一个操作失败,就全部失败。一致性(Consistency):事务所包含的操作不能违反数据资源的一致性检查。隔离性(Isolation):主要规定各个事务之间互相影响的程度。隔离性概念主要面向对数据资源的并发访问,并兼顾影响事务的一致性。持久性(Durability):一旦事务操作成功提交,对

2020-11-06 11:08:22 115

原创 spring AOP 篇(十一)AOP的实现方式续

AOP的实现方式第二种:自定义类来实现AOP首先我们自己写一个切入类public class DiyPointcut { public void before(){ System.out.println("---------方法执行前---------"); } public void after(){ System.out.println("---------方法执行后---------"); } }在spring中配

2020-11-03 21:30:53 162 1

原创 spring AOP篇(十)AOP的实现方式

AOP的实现方式在实现之前我们需要导入AOP的织入包<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.4</ve

2020-11-03 12:05:44 148 2

原创 spring AOP篇(九)代理模式续

动态代理动态代理和静态代理的角色一样。动态代理的代理类是动态生成的,不是我们直接写好的。1.动态代理可以分为?1.1基于接口的动态代理其中最经典的:JDK动态代理1.2基于类的动态代理其中最经典的:CGLIB动态代理除了以上这些现在使用较多的还有:java字节码实现:javasist需要了解两个类:Proxy(代理类) 、InvocationHandler(调用处理程序)2.InvocationHandlerInvocationHandler接口是proxy代理实例的调用处理程序实现的

2020-11-02 23:02:39 95

原创 spring AOP篇(八)代理模式

代理模式(AOP的底层实现)1.为什么要学习代理模式?代理模式是AOP的底层。2.代理模式可以分为?静态代理动态代理3.什么是代理模式?怎么理解?在软件系统中,代理机制的实现有现成的设计模式支持,就叫代理模式。通常有四种角色。抽象角色:一般会使用接口或抽象类解决。真实角色:被代理的角色。代理角色:代理真实角色的角色,一般会做一些附属操作。客户角色:访问代理对象的人。4.代码步骤4.1接口public interface Rent { public void Rent()

2020-11-02 17:09:33 145 1

原创 spring篇(七)车迟国斗法

IOC创建对象的方式1.使用无参构造方法创建对象,默认的!!package com.ni.pojo;public class User { private String name; public void User(){ System.out.println("User的无参构造"); } public String getName() { return name; } public void setName(Str

2020-11-02 11:07:50 201 1

原创 MyBatis篇(九)动态SQL

动态SQL什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.动态 SQL 是 MyBatis 的强大特性之一。官网描述:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用

2020-11-29 22:39:09 98

原创 MyBatis篇(八)缓存

缓存(Cache )1.什么是缓存?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能使用缓存?经常查询并且不经常改变的数据。Mybatis缓存MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。1.MyBatis系统

2020-11-29 14:58:55 95

原创 MyBatis篇(七)一对多和多对一处理

一对多和多对一处理多对一的处理多对一的理解:多个学生对应一个老师如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!数据库设计CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO teacher(`id`, `name`)

2020-11-27 20:33:10 143

原创 idea报错:MyBatis Invalid bound statement (not found): com.xx.xx.StudentMapper.getStudents

MyBatis: Invalid bound statement (not found): com.xx.xx.StudentMapper.getStudents出现这种情况一般是你的核心配置文件中的,接口调用出了错,在你的mbatis-config.xml中:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//E

2020-11-27 15:52:08 966 2

原创 MyBatis篇(六)使用注解开发

使用注解开发mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的。而到MyBatis 3提供了新的基于注解的配置。不幸的是,Java 注解的的表达力和灵活性十分有限。最强大的 MyBatis 映射并不能用注解来构建sql 类型主要分成 :@select ()@update ()@Insert ()@delete ()注意:利用注解开发就不需要mapper.xml映射文件了 .1、我们在我们的接口中添加注解 @Select("select id,na

2020-11-26 20:58:45 135 1

原创 MyBatis篇(五)ResultMap、日志、分页

ResultMap 解决属性名和字段名不一致说白了就是数据库的字段名与Java中的实体类设计不一致导致的问题接口://根据用户ID查询用户 User getUserByid(int id);配置: <select id="getUserByid" resultType="com.ni.pojo.User" parameterType="int"> select*from mybatis.user where id=#{id} </selec

2020-11-25 21:55:55 143

原创 JDBC“是个啥”

JDBC1.JDBC是啥?Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。2.创建一个JDBC程序创建数据库,并导入数据CREATE DATABASE `jdbc_study`USE `jdbc_study`CREATE TABLE`users`(

2020-11-24 22:27:08 112

原创 MyBatis(四)配置解析

MyBatis配置解析1.核心配置文件mybatis-config.xml 系统核心配置文件MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。能配置的内容如下:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置) environment(

2020-11-24 22:17:08 108

原创 MyBatis篇( 三)增、删、改、查、Map、模糊查询

增、删、改、查1.根据用户ID查询用户1.1接口中编写查询方法//根据用户ID查询一个用户 User getUserByid(int id);1.2在Mapper.xml中配置sql语句 <!--根据用户ID查询用户信息--> <select id="getUserByid" resultType="com.ni.pojo.User" parameterType="int"> select*from mybatis.user where i

2020-11-24 13:06:54 205

原创 javaBasics篇(九)异常

异常1.什么是异常?指当程序出现错误后,程序如何处理。程序错误分为三种:1.编译错误;2.运行时错误;3.逻辑错误。(1)编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这个也是大家在刚接触编程语言最常遇到的问题。(2)运行时错误是因为程序在执行时,运行环境发现了不能执行的操作。(3)逻辑错误是因为程序没有按照预期的逻辑顺序执行。异常也就是指程序运行时发生错误,而异常处理就是对这些错误进行处理和控制。2.异常的结构有两个重要的子类:Exception(

2020-11-24 00:07:22 92 1

原创 Mybatis篇(二)“第一个Mybatis程序”

第一个Mybatis程序思路:搭建环境—>导入Mybatis---->编写代码----->测试1.搭建环境1.1搭建数据库CREATE DATABASE ` mybatis`;USE `mybatis`;CREATE TABLE `user`( `ID` INT NOT NULL PRIMARY KEY, `name` VARCHAR(30)DEFAULT NULL, `pwd` VARCHAR(30)DEFAULT NULL)ENGINE=INNODB DE

2020-11-23 20:02:02 89

原创 关于IDEA链接mysql数据库,测试连接失败, serverTimezone(服务器时区) 报错的解决办法

关于IDEA链接mysql数据库1.首先新建一个maven项目,到maven仓库里找到所需要的导入的mysql驱动包,导入maven依赖maven仓库地址:https://mvnrepository.com/search?q=mysql+coenector这里我直接拿过来5.1.47版本的驱动:<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <

2020-11-23 13:43:51 1244 1

原创 javaBasics篇(八)抽象类、接口、

抽象类、接口、异常、1.instanceof关键字用法:result = object instanceof class作用:用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。2.static关键字用来修饰方法、变量使其变为静态方法、静态变量、静态代码块。而静态方法在调用的时候可以直接通过类名.方法名调用,不需要进行对象实例化,再去调。静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次

2020-11-21 17:09:51 78

原创 javaBasics篇(七)面向对象编程

面向对象编程一、方法//格式: /* 修饰符 返回值类型 方法名(参数){ 方法体; return 返回值}注意:方法的返回值类型为void时,方法可以不用返回具体的值。方法可以分为:(1)静态方法 用static关键字修饰的。静态方法调用时,直接通过类名.方法名调用(2)非静态方法 没有用static修饰的方法。非静态方法调用时则需要实例化对象,然后通过对象来调用这个方法(其实就是new一个对象)public class dem

2020-11-21 12:37:38 97

原创 “冒泡排序”之“小菜一碟”

“冒泡排序”原理:比较两个相邻的元素,将值大的元素交换至右端。其实就是简单地从左向右,相邻的两个数进行比较,谁大就向后移,然后接着比较以此类推,一直到所有元素排完为止。代码演示:import java.util.Arrays;public class arryDemo03 { public static void main(String[] args) { int [] a ={5,9,8,2,4,7,3,1}; //调用完我们自己的方法后,返回一个排

2020-11-20 16:58:00 84

原创 javaBasics篇(六)数组

数组数组:相同类型的有序集合,通过元素下标来访问。定义:(1)数组类型[ ]参数名(2)数组类型 参数名 [ ]int [] num;int num [];public class array { public static void main(String[] args) { /* int [] nums; //声明一个数组 nums = new int[10]; 创建一个数组*/ int[]nums = new int[11]

2020-11-20 13:00:00 195 2

原创 MySQL篇(十二)事务、索引

事务1.概念事务:以可控制的方式对数据资源进行访问的一组操作。2.事务的ACID属性2.1、原子性要么成功,要么失败。2.2、一致性事务前后的数据完整性要保持一致。2.3、持续性–事务提交事务一旦提交不可逆,被持久化到数据库。“生米煮成熟饭”2.4隔离性多个用户访问数据库时,数据库为每一个用户开启单独的事务,不能被其他事务的操作干扰。隔离所导致的一些问题(1)脏读所谓脏读,就是指事务A读到了事务B还没有提交的数据,比如银行取钱,事务A开启事务,此时切换到事务B,事务B开启事务–&

2020-11-17 18:05:54 117

原创 MySQL篇(十一)MySQL函数、MD5加密

常用函数(不常用)--数学运算select abs(-3) -- 返回绝对值select ceiling(3.3) -- 向上取整select floor(3.3) -- 向下取整select rand() -- 返回0~1之间的随机数select sign() -- 判断数的符号 0为0 负数为-1 整数为1--字符串select char_length(‘字符串’) -- 返回字符串长度select concat(‘w’,‘ang’) -- 拼接字符串select lower(‘AB

2020-11-16 22:54:03 1194

原创 MySQL篇(十)子查询、嵌套查询

子查询、嵌套查询1.子查询本质:where条件语句中,又嵌套了查询语句。前期数据库---查询分数大于80分同学的姓名、id、所在的年级、年级排名、班主任、学校-----升序排列--方法一:SELECT stu.`id`,`name`,`grade`,`age rank`,`Homeroom teacher`FROM`students`AS stuINNER JOIN`teacher`AS tON stu.`id`=t.`id`INNER JOIN `school`AS sON

2020-11-16 12:59:31 465

原创 MySQL篇(九)自连接、排序、分页

自连接自己的表和自己的表连接,核心:一张表拆为两张一模一样的表首先建表填入数据CREATE TABLE `cate`(`categoryid`INT (10) UNSIGNED NOT NULL COMMENT'主题id', `pid`INT(10)NOT NULL COMMENT'父id', `categroyName`VARCHAR (40)NOT NULL COMMENT'主题名', PRIMARY KEY(`categoryid`) )ENGINE INNODB AUTO_INCRE

2020-11-15 22:25:55 148

原创 MySQL篇(八)DQL语言(重点)

联表查询JoinON首先复习以前的知识创建表,添加数据CREATE TABLE `students`(`id`INT(40) NOT NULL AUTO_INCREMENT COMMENT'学号',`name`VARCHAR(30)NOT NULL COMMENT'姓名',`grade`VARCHAR(30)NOT NULL COMMENT'年级',`result`INT(30)NOT NULL COMMENT'成绩',`age rank`INT (40)NOT NULL COMMENT'年

2020-11-15 13:13:04 125

原创 两数之和

题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。//第一种解法: public static void main(String[] args) { int[]nums={2,7,11,15}; int target=9; int n = nums.length; for (int x=

2020-11-15 00:06:15 109

原创 MySQL篇(七)DQL语言

DQL语言1.简单的查询1.1查询某一张表(整个一张表)--语法select*from `表名`SELECT*FROM`grade`1.2查询某张表的指定字段--语法select`要查询的字段名`,`要查询的字段名`from`表名`SELECT`id`,`name`,`sex`FROM`salary`1.3查询后起别名--语法select`要查询的字段`AS'新名字'from`表`SELECT`name` AS '名字',`sex`AS'性别',`address`

2020-11-14 23:12:50 60

原创 MySQL篇(六)DML语言

外键方式一:创建表的时候,增加约束CREATE TABLE`grade`(`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT'年级ID',`gradename`VARCHAR(40)NOT NULL COMMENT'年级name',PRIMARY KEY(`gradeid`))ENGINE INNODB DEFAULT CHARSET utf8CREATE TABLE `student`( `id` INT(4) NOT NULL AU

2020-11-13 22:33:27 103

原创 MySQL篇(五)数据表的相关操作

数据表的类型MySQL的数据表的类型 : MyISAM , InnoDB , HEAP , BOB , CSV等…常见的 MyISAM 与 InnoDB 类型:经验 ( 适用场合 ) :适用 MyISAM : 节约空间及相应速度适用 InnoDB : 安全性 , 事务处理及多用户操作数据表数据表的存储位置MySQL数据表以文件方式存放在磁盘中包括表文件 , 数据文件 , 以及数据库的选项文件位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名

2020-11-13 16:59:33 96

原创 MySQL篇(四)数据库的列类型

数据库的列类型数值类型字符串日期和时间null值理解为 “没有值” 或 “未知值”不要用NULL进行算术运算 , 结果仍为NULL数据字段属性UnSigned无符号的声明该数据列不允许负数 .ZEROFILL0填充的不足位数的用0来填充 , 如int(3),5则为005Auto_InCrement自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)通常用于设置主键 , 且为整数类型可定义起始值和步长当前表设置步长(AUTO_INCREMENT=10

2020-11-13 11:14:56 1433

原创 MySQL篇(三)操作数据库

操作数据库操作数据库>操作数据库中的表>操作数据库表中的数据1操作数据库1.1创建数据库CREATE DATABASE west[IF NOT EXISTS]表示如果它不存在CREATE DATABASE IF NOT EXISTS west1.2删除数据库DROP DATABASE helloDROP DATABASE west1.3使用数据库USE school---tab健上面,如果你的表名或者字段名是特殊的字符就用` `SELECT `user`

2020-11-12 22:47:52 72

原创 MySQL篇(二)“玩转数据库”

“玩转数据库”前面下载了SQLyang这个软件,现在一起玩玩!1.新建数据库基字符集 默认:utf8数据库排序规则也是默认CREATE DATABASE `school`CHARACTER SET utf8 COLLATE utf8_general_ci; 2.新建表(表中类型选默认的)3.查看表,添加记录INSERT INTO `school`.`one piece` (`name`, `order for arrest`, `age`, `gender`) VALUES ('

2020-11-12 21:25:11 176

原创 用IDEA连接数据库

用IDEA连接数据库首先在你的idea必须有Database插件或者Database Navigator我用的是社区版的idea只有Database Navigator,不过都一样安装好重启激活然后找到DB Navigator---->DB Browser---->"+"----->mysql出现上面应该是未配置连接驱动包驱动下载官网:http://dev.mysql.com/downloads/connector/.根据自己的需要选择驱动jar包,如果是jav

2020-11-11 23:35:16 408 1

原创 javaBasics篇(五)控制执行流程

控制执行流程1.if-else语句格式:if(表达式){ 若干语句 }else(表达式){ 若干语句 }public class IfElse { public static void main(String[] args) { double math = 95.23; double English = 88.0; int Chinese = 97; double average

2020-11-10 22:21:57 870 1

原创 MySQL篇(一)安装配置MySQL

安装配置MySQL官网下载地址:https://www.csdn.net/.安装步骤:1、下载后得到zip压缩包.2、解压到自己想要安装到的目录,本人解压到的是mysql-5.7.193、添加环境变量:我的电脑->属性->高级->环境变量注意:安装的时候一定要尽量避免安装到中文的文件夹里,这样会有可能导致后面面配置的时候不成功。一定要注意!!!此电脑右键—>属性---->高级系统设置—>环境变量选择PATH,在其后面添加: 你的mysql 安装文件下面

2020-11-09 23:00:37 73

原创 Mybatis篇(一)“死.狮子歌歌”

Mybatis1.了解MybatisMybatis是支持定制化 SQL、存储过程以及高级映射的优秀的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software

2020-11-09 16:02:59 132

原创 java刷题整合篇(一)

1.类加载的过程以下程序执行的结果是:class X{ Y y=new Y(); public X(){ System.out.print("X"); }}class Y{ public Y(){ System.out.print("Y"); }}public class Z extends X{ Y y=new Y(); public Z(){ System.out.print("Z");

2020-11-09 10:51:54 805

原创 javaBasics篇(四)操作符

操作符算术运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。表格中的实例假设整数变量A的值为10,变量B的值为20:public class Test { public static void main(String[] args) { int a = 10; int b = 20; int c = 25; int d = 25; System.out.println("a + b = " + (

2020-11-08 10:15:34 99

图书管理系统 +SSM

图书管理系统,可以简单的进行增删改查书籍,以及搜索功能

2020-12-22

index.html

Lenovo商城网页制作,是仿照Lenovo官网制作的,可以在idea上直接使用,欢迎小哥哥小姐姐,学习交流。

2020-12-07

enter.html

登录页面实现,使用HTML写的Lenovo的会员注册页面,超级简单,下载后idea就可以用,可以打开

2020-12-07

Lenovo商城 仿照官网写的网页

用HTML5+CSS3+js写的关于Lenovo商城的网页,实现了点击登录,会员注册等,除此之外,实现在线服务界面,下载APP等

2020-12-07

java 基础篇.docx

自学java总结出来的第一部分知识点,从继承多态到JVM都有详细的介绍,以及里面还有我自己的学习心得,希望对于和我一样自学的小哥哥小姐姐有所帮助。

2020-10-22

空空如也

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

TA关注的人

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