MyBatis 入门教程之三
大纲
- MyBatis 入门教程之一
- MyBatis 入门教程之二
- MyBatis 入门教程之三
- MyBatis 入门教程之四
- MyBatis 入门教程之五
- MyBatis 入门教程之六
- MyBatis 入门教程之七
- MyBatis 入门教程之八
SQL 映射文件
MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。SQL 映射文件只有很少的几个顶级标签(按照应被定义的顺序列出):
cache– 该命名空间的缓存配置cache-ref– 引用其它命名空间的缓存配置resultMap– 描述如何从数据库结果集中加载对象,是最复杂也是最强大的标签parameterMap– 老式风格的参数映射,此标签已被废弃,并可能在将来被移除,请使用行内参数映射sql– 可被其它语句引用的可重用语句块insert– 映射插入语句update– 映射更新语句delete– 映射删除语句select– 映射查询语句
HaProxy 与 Keepalived 实现双机热备高可用
MyBatis 入门教程之二
大纲
- MyBatis 入门教程之一
- MyBatis 入门教程之二
- MyBatis 入门教程之三
- MyBatis 入门教程之四
- MyBatis 入门教程之五
- MyBatis 入门教程之六
- MyBatis 入门教程之七
- MyBatis 入门教程之八
前言
本节所需的案例代码,可以直接从 GitHub 下载对应章节 mybatis-lesson-3。
MyBatis 全局配置文件
MyBatis 默认的全局配置文件是 mybatis-config.xml,且 XML 配置文件里的标签是有顺序的,由前到后依次是 properties, settings, typeAliases, typeHandlers, objectFactory, objectWrapperFactory, reflectorFactory, plugins, environments, databaseIdProvider, mappers。
属性(properties)
在企业级开发中,往往会将数据库的连接信息写到单独的配置文件中,这样日后方便统一管理。MyBatis 为此提供了 properties 标签,用于读取外部的的 Properties 配置文件,读取到的属性值可以在整个 MyBatis 配置文件中用来替换需要动态配置的属性值。
- config.properties
1 | dataSource.user=root |
Java 虚拟机入门教程之二 JVM 垃圾收集
大纲
- Java 虚拟机入门教程之一 JVM 内存结构
- Java 虚拟机入门教程之二 JVM 垃圾收集
- Java 虚拟机入门教程之三 JVM 参数调优
- Java 虚拟机入门教程之四 JVM 四种引用
- Java 虚拟机入门教程之五 JVM 性能优化
- Java 虚拟机入门教程之六 JVM 类加载机制
JVM 的垃圾收集机制
确定对象是否可以回收
在 Java 中,如何确定一个对象是否可以回收呢?常用的算法有两种:引用计数算法、可达性分析算法。
引用计数算法
引用计数算法(Reference Counting)是通过判断对象的引用数量来决定对象是否可以被回收。它的思路是给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加 1;当引用失效时,计数器值就减 1;任何时刻计数器为 0 的对象就是不可能再被使用的。大部分场景下,这个算法都是不错,效率也比较高;但是 Java 虚拟机里面没有选用引用计数算法来管理内存,其中最主要的原因是它很难解决对象之间相互循环引用的问题;而且对对象赋值时均要维护引用计数器,同时计数器本身也有一定的消耗。
Spring 之 AOP 的基础使用
Linux 生产环境搭建 Zookeeper 集群
大纲
- Docker 搭建 ZooKeeper 集群
- Docker 安装 ZooKeeper 单机实例
- Linux 安装 ZooKeeper 单机实例
- Linux 单机搭建 Zookeeper 集群
- Linux 生产环境搭建 Zookeeper 集群
前言
本文适用于在 Centos/Debian/Ubuntu 等 Linux 发行版系统上,使用多台物理机器搭建 Zookeeper 集群。
Zookeeper 简介
Zookeeper 是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。Hadoop、Storm、消息中间件、RPC 服务框架、分布式数据库同步系统,这些都是 Zookeeper 的应用场景。
Zookeeper 集群简介
在 Linux 生产环境上搭建 Zookeeper 集群,至少需要三个节点(服务器)。
角色划分
Zookeeper 集群有三种角色划分,分别是 leader、follower、observer:
领导者(leader):负责进行投票的发起和决议,更新系统状态。跟随者(follower):用于接收客户端请求,并向客户端返回结果,以及在选举过程中参与投票观察者(observer):可以接收客户端连接,将写请求转发给leader节点,但是不参与投票过程,只同步leader的状态,通常用作对查询操作做负载。
Java 虚拟机入门教程之一 JVM 内存结构
大纲
- Java 虚拟机入门教程之一 JVM 内存结构
- Java 虚拟机入门教程之二 JVM 垃圾收集
- Java 虚拟机入门教程之三 JVM 参数调优
- Java 虚拟机入门教程之四 JVM 四种引用
- Java 虚拟机入门教程之五 JVM 性能优化
- Java 虚拟机入门教程之六 JVM 类加载机制
JVM 的内存结构
JVM 内存结构主要有三大块:栈、堆内存、方法区。堆内存是 JVM 中最大的一块,由新生代和老年代组成,不包括永久代(方法区);而新生代内存又被分成 Eden 空间、From Survivor 空间、To Survivor 空间,默认情况下新生代按照 8:1:1 的比例来分配。方法区存储类信息、静态变量、常量、常量池等数据,是线程共享的区域,为了与 Java 堆区分,方法区还有一个别名 Non-Heap (非堆)。栈又分为 Java 虚拟机栈和本地方法栈,主要用于方法的执行。
MyBatis 入门教程之一
大纲
- MyBatis 入门教程之一
- MyBatis 入门教程之二
- MyBatis 入门教程之三
- MyBatis 入门教程之四
- MyBatis 入门教程之五
- MyBatis 入门教程之六
- MyBatis 入门教程之七
- MyBatis 入门教程之八
前言
MyBatis 简介
MyBatis 是支持定制化 SQL、存储过程以及高级映射的持久层框架(ORM)。MyBatis 可以使用简单的 XML 或注解用于配置和映射数据表,将 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据表中的记录。
