- 博客(57)
- 收藏
- 关注
原创 根据字段查询表名
字段名查询表名数据库表information_schema.columns的信息;select * from information_schema.columns where table_name='user';查询结果:小结:这里可以看到表所对应的所有字段名和所属数据库。根据字段名查询表名;select * from information_schema.columns where column_name='name';查询结果小结:这里可以看到字段名对应的所有表;.
2021-11-14 18:07:14
4102
原创 case when then end多参数判断 min函数判断 case when 作为查询条件 mysql
min函数判断和case when多参数判断,使用的是mysql数据库建表语句create table user( id int not null auto_increment primary key, name varchar(30) comment'用户名', pwd varchar(30) comment'密码') engine=innodb default charset=utf8mb4 comment='测试表';insert into user values('
2021-11-14 16:46:50
2538
原创 Mybatis中的#和$的区别
Mybatis中的#和$的区别在Mybatis的mapper中,参数传递有2种方式,一种是#{}另一种是${},两者有很大区别;#{}实现的是sql语句的预处理参数,之后执行sql中用?号代替,使用时不需要关注数据类型,Mybatis自动实现数据类型的转换。并且可以防止sql注入。${}实现是sql语句的直接拼接,不过数据类型转换,需要自行判断数据类型。不能防止sql注入。有些情况必须使用${},举个例子;在分表存储的情况下,我们从那张表查询是不确定的,也就是说sql语句不能写死,表名是动态的,查询
2021-10-22 19:11:09
266
原创 sql优化
sql优化1.通过索引优化,索引分为聚焦索引和非聚焦索引,聚焦索引:例如图书馆把书,建立一个字母开头的目录,a开头的书在第一排,b开头的书在第二排,这个就是聚焦索引;非聚焦索引:可是很多人借书找某某作者的,不知道书名怎么办?图书管理员在写一个目录,某某作者的书分别在第几排,第几排,这就是一个非聚集索引。...
2021-10-22 19:09:21
153
原创 ArrayList和LinkList的区别
ArrayList和LinkList的区别ArrayList和LinkList是List接口的两种不同实现;并且都是线程不安全。ArrayList是基于动态数组的数据结构,LinkList是基于双向链表的数据结构;对于随机访问get和set时,ArrayList效率更高;添加和删除,一般大家都会认为LinkList要比ArrayList快,因为ArrayList要移动数据;...
2021-10-22 19:07:36
228
原创 Spring-mybatis声明式事务transaction
事务的回顾事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎!事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。 事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。事务四个属性ACID原子性(atomicity) 事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用。一致性 一旦所有事务动作完成,事务就要被提交。数据和资源处于一种满足业务规则的一致性状态中隔离性 可能
2021-09-27 17:38:35
378
原创 spring-mybatis整合方式两种
Spring和mybatis整合方式一什么是 MyBatis-Spring?MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。知识基础在开始使用 MyBatis-Spring 之前,你需要先熟悉 Spring 和 MyBatis 这两个框架和有关它们的术语。这 很重要MyBatis-Spring 需要以下版本:如果使用 Maven 作为构建工具,仅需要在 pom.xml 中加入以下代码即可:<dependency> <gr
2021-09-26 18:49:38
227
原创 mybatis 整合--回顾
mybatis-回顾(学习完Spring)相关jar包的导入<?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.org/POM/4.0
2021-09-25 18:56:17
91
原创 Spring5 AOP第三种实现方式(注解实现方式)
AOP的注解实现方式接口和实现类public interface UserService { public void add(); public void delete(); public void update(); public void query();}package com.kuang.service;public class UserServiceImpl implements UserService{ @Override pub
2021-09-25 16:15:32
220
原创 Spring5 AOP第二种实现方式(自定义类)
AOP的第二种实现方式(主要是切面定义)接口和实现类public interface UserService { public void add(); public void delete(); public void update(); public void query();}package com.kuang.service;public class UserServiceImpl implements UserService{ @Overri
2021-09-25 15:18:52
107
原创 Spring5 AOP实现方式一
AOP实现方式一:aop概念:面向切面编程,通过预编译方式和运行期动态代理实现 程序功能的统一维护的一种技术。标题AOP在Spring中的作用提供声明式事务;允许用户自定义切面横切关注点:跨越应用程序多个模块的方法或功能。即是,与我们业务逻辑无关的,但是我们需要 关注的部分,就是横切关注点。如日志 , 安全 , 缓存 , 事务等等 …切面(ASPECT):横切关注点 被模块化 的特殊对象。即,它是一个类。通知(Advice):切面必须要完成的工作。即,它是类中的一个方法。目标(Target)
2021-09-25 14:56:38
169
原创 Spring 静态代理
静态代理(为了学习AOP)为什么要学习代理模式,因为AOP的底层机制就是动态代理!代理模式:静态代理动态代理学习aop之前 , 我们要先了解一下代理模式!静态代理角色分析抽象角色 : 一般使用接口或者抽象类来实现真实角色 : 被代理的角色代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .客户 : 使用代理角色来进行一些操作 .代码实现1. 抽象角色–共同的抽象业务//出租房子public interface Rent { public
2021-09-16 19:25:05
140
原创 Spring ioc Java配置类
##使用 java的方式配置Spring1. 说明JavaConfig 原来是 Spring 的一个子项目,它通过 Java 类的方式提供 Bean 的定义信息,在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能 。2. 实体类//@Component,表示这个类被Spring接管了,注册到了容器中@Componentpublic class User { private String name; public String getNa
2021-09-16 17:29:06
351
原创 spring使用注解开发
使用注解开发1. 说明在spring4之后,想要使用注解形式,必须得要引入aop的包;在配置文件当中,还得要引入一个context约束。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:con
2021-09-16 15:20:54
94
原创 Spring 使用注解注入对象
用注解的方式注入属性jdk1.5开始支持注解,spring2.5开始支持注解。1.在spring配置文件中引入context文件头xmlns:context="http://www.springframework.org/schema/context"http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd2.开始属性注解
2021-09-11 18:29:16
935
原创 spring Bean的自动装配
Bean的自动装配1. 测试环境搭建新建一个项目。新建二个实体类,Cat和Dog都有一个叫的方法package com.kuang.pojo;public class Cat { public void shout() { System.out.println("miaomiao!!!!"); }}package com.kuang.pojo;public class Dog { public void shout() { S
2021-09-11 16:22:01
98
原创 Spring Bean的作用域
Bean的作用域在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象 .1. 单例模式(Singleton),spring默认的机制,单线程使用,需要重点掌握。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns
2021-09-10 01:20:29
98
原创 spring依赖注入
三种依赖注入Spring注解依赖注入的三种方式的优缺点以及优先选择这篇博文能够说明三种依赖注入的特点。下面是对set注入和拓展注入的详细说明:1.set注入(重点)pojo包:Student.javapackage com.kuang.pojo;import java.util.*;public class Student { private String name; private Address address; private String[] books
2021-09-10 00:50:58
162
原创 Spring的简单配置
Spring配置application.xml文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/sc
2021-09-09 17:22:05
101
原创 spring IoC创建对象方式
IoC创建对象的方式1. 通过无参构造方法来创建1.User.javapackage com.kuang.pojo;public class User { private String name; public User() { System.out.println("无参数构造"); } public String getName() { return name; } public void setName(S
2021-09-09 17:02:21
85
原创 第一个Spring程序
Spring小测试导入jar包注 : spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 . <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <ve
2021-09-09 15:55:08
78
原创 spring 控制反转IoC
IoC 控制反转控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。常用的方法有“依赖注入”,“依赖查找”。分析实现先写一个Dao接口public interface UserDao { void getUser();}再去写Dao的实现类public class UserDaoImpl implements UserDao{ @Override public void get
2021-09-09 14:49:26
80
原创 Spring概述 、Spring历史、Spring公司
Spring概述1. Spring简介:1. Rod Jahnson澳大利亚人,在悉尼大学不仅获得了计算机硕士学位,同时还获得了音乐博士学位。2. 2001年,Rod Jahnson写下第一行Spring代码。3. 2002年,Rod Jahnson出版了Spring的书籍《Expert One-on-One J2EE Design and Development》,Spring框架雏形。4.2004年,Spring框架以interface21框架为基础,发布1.0版本。同时出版了书籍《Exper
2021-09-06 19:03:18
2659
原创 MyBatis 二级缓存
MyBatis 二级缓存二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存基于namespace级别的缓存,一个名称空间,对应一个二级缓存;工作机制1.一个会话查询一条数据,这个数据就会被放在当前会话的一级缓存中;2.如果当前会话关闭了,这个会话对应的一级缓存就没了;但是我们想要的是,会话关闭了,一 级缓存中的数据被保存到二级缓存中;3.新的会话查询信息,就可以从二级缓存中获取内容;4.不同的mapper查出的数据会放在自己对应的缓存(map)中;二级缓存的使用官方文档1
2021-09-05 16:45:21
110
原创 MyBatis一级缓存
MyBatis缓存缓存简介什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库 数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。什么样的数据能使用缓存?经常查询并且不经常改变的数据。MyBatis缓存MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极
2021-09-05 16:25:33
230
原创 Mac idea java 代码的前进后退 代码的撤销和前进快捷键
Mac idea Java编写代码撤销前进撤退:commond+z前进:commond+shift+z
2021-09-05 15:13:11
2141
原创 MyBatis 动态sql
环境搭建、if语句、where、Set、choose语句什么是动态sql:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句。if语句、where、Set、choose语句的特点if语句:如果符合if中test的条件,则条件成立。where语句:标签,智能的处理“where 和and”。choose语句:只选择其中的一个条件,查询条件有一个满足即可。Set语句:set的意义和where类似,set是为了智能去除“,”。新建数据库表:bloguse mybatis;
2021-09-02 18:40:09
81
原创 MyBatis 一对多的处理
MyBatis一对多的处理一对多的理解:一个老师拥有多个学生如果从老师这边说,就是一对多的关系,即从一个老师下面有一群学生(集合)!按结果嵌套处理和按查询嵌套处理TeacherMapper接口编写方法public interface TeacherMapper { //test Teacher getTest(); //获取指定老师,及老师对应的所有学生 Teacher getTeacher(int id); Teacher getTeach
2021-09-02 15:13:18
115
原创 MyBatis 多对一的处理
MyBatis 多对一的处理多对一的理解:多个学生对应一个老师如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!1.数据库设计use 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
2021-09-02 09:47:10
135
原创 MyBatis #与$的区别
MyBatis中使用 #与$的获取参数的区别#{} 的作用主要是替换预编译语句(PrepareStatement)中的占位符? 【推荐使用】INSERTINTOuser(name)VALUES(#{name});INSERTINTOuser(name)VALUES(?);${} 的作用是直接进行字符串替换INSERTINTOuser(name)VALUES('${name}'); INSERTINTOuser(name)VALUES('kuangshen');...
2021-09-01 15:52:31
72
原创 MyBatis 使用注解实现CRUD(增删改查)
注解增删改查测试时实现自动提交,改造MyBatisUtils工具类的getSession()方法注意点:@Param@Param注解用于给方法参数起一个名字。以下是总结的使用原则:在方法只接受一个参数的情况下,可以不使用@Param。在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。如果参数是 JavaBean , 则不能使用@Param。不使用@Param注解时,参数只能有一个,并且是Javabean。MyBatisUtils.java //我们可以从中获得
2021-09-01 15:48:25
136
原创 MyBatis详细的执行流程
MyBatis详细的执行流程Resources加载全局配置文件----->实例化SqlSessionFactoryBuilder构建器----->由XMLConfigBuilder解析配置文件流----->把配置文件信息存放在Configuration中----->实例化SqlSessionFactory实现类DefaultSqlSessionFactory----->由TransactionFactory创建一个Transaction事务对象----->创建
2021-09-01 14:18:10
95
原创 MyBatis RowBounds实现分页
RowBounds实现分页前言:这是面向对象的实现分页,符合java的编程习惯,这种方法不推荐使用。Mapper.xml配置文件 <!--方式2:分页查询--> <select id="getUserByRowBounds" resultType="com.kuang.pojo.User"> select * from mybatis.user </select>Mapper接口 //RowBounds实现分页查
2021-09-01 10:47:42
313
原创 Java MyBatis limit分页
limit实现分页思考:为什么需要实现分页在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查 询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就是每次处理小部分数据,这样对 数据库压力就在可控范围内。使用Limit实现分页#语法SELECT * FROM table LIMIT stratIndex,pageSizeSELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 #为了检索从某一个偏移量到记录集
2021-09-01 10:00:16
612
转载 MyBatis日志工厂:STDOUT_LOGGING(标准日志)和LOG4J的应用
日志工厂转载:mybatis日志之标准日志STDOUT_LOGGING与log4j简单使用
2021-08-31 18:12:06
304
原创 MyBatis ResultMap 属性名和字段名不一致时的解决办法
MyBatis ResultMap问题:属性名和字段名不一致解决方法:通过ResultMap进行映射Java中的实体类User.javapublic class User { private int id;//id private String name;//姓名 private String password;//密码}UserMapper.xml配置文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTY
2021-08-31 16:53:11
136
原创 MyBatis的配置解析
MyBatis的元素、优化、别名、设置和映射元素和优化:可以在代码中体现mybatis-config.xml配置文件<?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"><!--confi
2021-08-31 15:38:38
119
原创 Mac idea 代码自动补全快捷键 introduce local variable(引入局部变量)
Mac idea 变量的自动补全自动补全前代码:MyBatisUtils.getSqlSession();自动补全后代码:SqlSession session = MyBatisUtils.getSqlSession();Intelli IDEA–Preferences点击,如下图然后选择Keymap,在搜索框中输入introduce,选择introduce Variable项,点击这个选项输入快捷键...
2021-08-30 19:18:46
3474
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人