MyBatis

SpringBoot 2.X整合Mybatis

ε祈祈猫儿з 提交于 2020-04-18 04:35:38
1、创建工程环境 勾选Web、Mybatis、MySQL,如下 依赖如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency> 创建完成之后注意,MyBatis依赖的命名和其他库的命名不太一样,是的这个整合jar包并不是springboot自己的,这表示该starter是由第三方提供的,就像 Druid 数据源一样,也是第三方的。 方便阅读,先贴出下面操作编写的类位置信息,如下图: 2、配置数据库连接信息 这里使用yml方式 spring: datasource:

Java零基础个人学习路线总结

耗尽温柔 提交于 2020-04-18 02:45:55
之前学习Java的时候走过一些弯路,一直想写一篇文章来总结下自己对自学Java的认识。趁着这次开通专栏的机会整理一篇文章,既可以巩固所学,也可以为后来境遇相同的人做个参考。 首先提出几个问题 Java能用来干什么 Java学的是什么 Java能用来干什么 很多初学者一开始根本就没弄明白Java的应用领域。小时候我对计算机的主要想法其实是学习网络安全成为黑客大牛,后来在大学期间不知不觉的进入了Java领域。 在目前的软件开发市场,Java主要用于服务器端的开发(虽然Java还提供了开发手机应用和电脑桌面应用,但早已不成为主流了),服务器即是处理你对软件的操作并响应结果。这里说的软件主要有网站、手机app、电脑桌面应用等,通常将软件称为客户端。 下面用一张图表示主流Java程序的体系架构 Java学的是什么 根据上面说的体系架构,学习Java同时还要涉及其他技术。这里以javaEE来说,主要有三大模块。 web前端 Java 数据库 一些坑 相信很多人在打算自学Java的时候,并没有去仔细了解Java的应用方向,更没有去研究过Java的知识体系。懵懵懂懂上路,兜兜转转,不得要害,甚是痛苦! 当我们零基础打算自学Java的时候,很多人第一反应是去百度自学Java,或者去知乎搜自学Java,找个高票答案,听信一些所谓大佬的话买一堆书籍如:《Java核心技术卷》、《Java编程思想》、

互联网轻量级框架SSM-查缺补漏第七天(MyBatis的解析和运行原理)

守給你的承諾、 提交于 2020-04-18 02:27:31
第七章MyBatis的解析和运行原理   SqlSessionFactory是MyBatis的核心类之一,其最重要的功能就是提供创建MyBatis的核心借口SqlSession,所以要先创建SqlSessionFactory,为此要提供配置文件和相关的参数。MyBatis是一个复杂的系统,它采用了Builder模式去创建SqlSessionFactory,在实际上可以通过SqlSessionFactoryBuilder去创建,分为两步:    SqlSessionFactory = new SqlSessionFactoryBuider().build(inputStream); 第一步 通过org.apache.ibatis.builder.xml.XMLConfigBuilder解析配置XML文件,读取所有配置参数,并将读取的内容装入org.apache.ibatis.session.Configuration类对象中。而Configuration采用的事单例模式, 几乎所有的MyBatis配置内容都会存放在这个单例对象中 ,以便后续将这些内容读出。 第二步 使用Configuration对象创建SqlSessionFactory,MyBatis中SqlSessionFactory是一个接口,而不是一个实现类,为此MyBatis提供一个默认的实现类org.apache

RocketMQ 主从同步若干问题答疑

自作多情 提交于 2020-04-18 02:09:59
温馨提示:建议参考代码RocketMQ4.4版本,4.5版本引入了多副本机制,实现了主从自动切换,本文并不关心主从切换功能。 @ TOC 1、初识主从同步 主从同步基本实现过程如下图所示: RocketMQ 的主从同步机制如下: A. 首先启动Master并在指定端口监听; B. 客户端启动,主动连接Master,建立TCP连接; C. 客户端以每隔5s的间隔时间向服务端拉取消息,如果是第一次拉取的话,先获取本地commitlog文件中最大的偏移量,以该偏移量向服务端拉取消息; D. 服务端解析请求,并返回一批数据给客户端; E. 客户端收到一批消息后,将消息写入本地commitlog文件中,然后向Master汇报拉取进度,并更新下一次待拉取偏移量; F. 然后重复第3步; RocketMQ主从同步一个重要的特征:主从同步不具备主从切换功能,即当主节点宕机后,从不会接管消息发送,但可以提供消息读取。 温馨提示:本文并不会详细分析RocketMQ主从同步的实现细节,如大家对其感兴趣,可以查阅笔者所著的《RocketMQ技术内幕》或查看笔者博文: https://blog.csdn.net/prestigeding/article/details/79600792 2、提出问题 主,从服务器都在运行过程中,消息消费者是从主拉取消息还是从从拉取? RocketMQ主从同步架构中

MyBatis 核心配置综述之 ParameterHandler

元气小坏坏 提交于 2020-04-18 01:26:23
[TOC] MyBatis 四大核心组件我们已经了解到了两种,一个是 Executor ,它是MyBatis 解析SQL请求首先会经过的第一道关卡,它的主要作用在于创建缓存,管理 StatementHandler 的调用,为 StatementHandler 提供 Configuration 环境等。StatementHandler 组件最主要的作用在于创建 Statement 对象与数据库进行交流,还会使用 ParameterHandler 进行参数配置,使用 ResultSetHandler 把查询结果与实体类进行绑定。那么本篇就来了解一下第三个组件 ParameterHandler。 ParameterHandler 简介 ParameterHandler 相比于其他的组件就简单很多了,ParameterHandler 译为参数处理器,负责为 PreparedStatement 的 sql 语句参数动态赋值,这个接口很简单只有两个方法 /** * A parameter handler sets the parameters of the {@code PreparedStatement} * 参数处理器为 PreparedStatement 设置参数 */ public interface ParameterHandler { Object

springboot2之结合mybatis增删改查解析

痴心易碎 提交于 2020-04-18 00:49:01
1. 场景描述 本节结合springboot2、springmvc、mybatis、swagger2等,搭建一个完整的增删改查项目,希望通过这个基础项目,能帮忙朋友快速上手springboot2项目。 2. 解决方案 2.1新建springboot项目 使用idea新建springboot项目( springboot项目快速搭建 ) (1)new project (2)gav设置 2.2 项目整体图及说明 2.2.1 整体图 2.2.2 说明 项目包含4大内容 (1)pom.xml maven项目必备,用于定义项目、获取jar包、打包等。 (2)项目配置文件 有两个,一个是项目内配置文件;一个是用于mybatis-generate生成相关数据库操作文件。 (3)spcrudapplication 项目启动类,springboot项目必备。 (4)springmvc对应类。 包含controller、service、db等相关类。 2.3 详细说明 2.3.1 pom文件 <?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

SpringBoot第十一篇:SpringBoot+MyBatis+Thymelaf实现CRUD

社会主义新天地 提交于 2020-04-18 00:48:27
作者:追梦1819 原文: https://www.cnblogs.com/yanfei1819/p/10936304.html 版权声明:本文为博主原创文章,转载请附上博文链接! <br> 引言   总结前面几章,我们了解了 SpringBoot 的基本用法及其配置,整合各大 ORM 框架,并了解了 Thymelaf 的基本用法。   本章将综合前面的知识,做一个完整Java web 的增删改查的示例。一来是对知识的整合,二来是考虑到很多读者是新手,一个完整的示例可能更加有助于其对 SpringBoot 的理解和掌握。   前面的ORM 框架有多种,本章中选取的是 MyBatis(没有使用 MyBatis 相关插件) ,作者比较喜欢该框架,同时在行业中的应用也很广泛。 <br> 版本信息 JDK:1.8 SpringBoot :2.1.4.RELEASE maven:3.3.9 MyBatis:2.0.1 Thymelaf:2.1.4.RELEASE IDEA:2019.1.1 <br> 准备工作 初始化数据库   本示例中,建立手机表,字段包括:名称、价格、颜色和生产日期。 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; CREATE TABLE `mobile_phone` ( `id` int(11) NOT NULL AUTO

Mybatis-plus 一对多关联查询,附JRebel热加载mapper.xml

只愿长相守 提交于 2020-04-18 00:29:36
1 public class Person extends PersonOthers{} 2 public class PersonOthers{ private List<Map<String,String>> otherList;} 1 public class PersonService { 2 3 @Resource 4 private PersonDao dao; 5 6 public List<Person> selectPlusQuery(QueryPersonDto query, Page<Person> page) { 7 String sql = "SELECT * FROM t_person_info" ; 8 QueryWrapper<Person> qw = new QueryWrapper<> (); 9 if ( null != query) { 10 String keyword = query.getKeyword(); 11 if (StringUtils.isNotBlank(keyword)) qw.like("person_name" , keyword); 12 } 13 return dao.selectPlusQuery(sql, page, qw); 14 } 15 } @Service @Repository public

Java设计模式之《工厂方法模式》及使用场景

五迷三道 提交于 2020-04-18 00:16:12
原创文章,转载请标注出处: Java设计模式之《工厂方法模式》及使用场景 一、概述 工厂,就是生产产品的地方。 在Java设计模式中使用工厂的概念,那就是生成对象的地方了。 本来直接就能创建的对象为何要增加一个工厂类呢? 这就需要了解工厂方法要解决的是什么问题了,如果只有一个类,我们直接new一个对象完事,这是最简单的;但是如果有多个类呢,而且这些类还需要针对不同的情况来创建不同的对象,这时候就需要工厂了,我们可以在工厂中根据条件来创建具体的对象。 这样一来就将调用方和具体的目标类进行了解耦,调用方根本就不知道需要创建那个对象,它只是提出了条件,然后工厂就可以根据给定的条件来决定创建哪一个对象。 二、简单工厂方法模式 要说工厂方法模式,不得不先了解下简单工程方法模式,这个模式并不是23种设计模式中的内容。 所谓简单工厂方法模式,就是为目标类创建一个工厂,当有多个目标实现的时候,在这个工厂内部进行逻辑判断来根据条件创建不同的目标实例。 下面看个例子,我就以桌子为例来写: 桌子接口:Desk /** * 桌子接口 */ public interface Desk { String getType(); } 木质桌子:WoodenDesk /** * 木质桌子 */ public class WoodenDesk implements Desk{ private String type

MyBatis 中 sqlmapconfig核心标签说明以及配置

风格不统一 提交于 2020-04-18 00:06:39
文件介绍 对于 MyBatis 最核心的全局配置文件是 sqlmapConfig.xml 文件,其中包含了数据库的连接配置信息、Mapper 映射文件的加载路径、全局参数、类型别名等。 配置项详解 标签名称 标签作用 configuration 包裹所有配置标签,是整个配置文件的顶级标签。 properties 属性,该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件中的其他配置均可引用此配置中的属性。 setting 全局配置参数,用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使用延迟加载,是否使用错误处理机制等。并且可以设置最大并发请求数量、最大并发事务数量,以及是否启用命令空间等。 typeAliases 类型别名,用来设置一些别名来代替 Java 的长类型声明,如 java.lang.int 变为 int,减少配置编码的冗余。 typeHandlers 类型处理器,将 sql 中返回的数据库类型转换为相应 Java 类型的处理器配置。 objectFactory 对象工厂,实例化目标类的工厂类配置。 plugins 插件,可以通过插件修改 MyBatis 的核心行为,例如对语句执行的某一点进行拦截调用。 environments 环境集合属性对象,数据库环境信息的集合。在一个配置文件中,可以有多种数据库环境集合,这样使 MyBatis