原创 MyBatis 示例-動態 SQL

MyBatis 的動態 SQL 包括以下幾種元素:   詳細的使用參考官網文檔:http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html 本章內容簡單描述這些動態 SQL 在使用的過程中

原创 MySQL 觸發器的使用

MySQL 基礎篇 三範式 MySQL 軍規 MySQL 配置 MySQL 用戶管理和權限設置 MySQL 常用函數介紹 MySQL 字段類型介紹 MySQL 多列排序 MySQL 行轉列 列轉行 MySQL NULL 使用帶來的坑 M

原创 三範式

MySQL 基礎篇 三範式 MySQL 軍規 MySQL 配置 MySQL 用戶管理和權限設置 MySQL 常用函數介紹 MySQL 字段類型介紹 MySQL 多列排序 MySQL 行轉列 列轉行 MySQL NULL 使用帶來的坑 M

原创 MySQL InnoDB 鎖

MySQL 原理篇 MySQL 索引機制 MySQL 體系結構及存儲引擎 MySQL 語句執行過程詳解 MySQL 執行計劃詳解 MySQL InnoDB 緩衝池 MySQL InnoDB 事務 MySQL InnoDB 鎖 MySQL

原创 MyBatis 示例-傳遞多個參數

映射器的主要元素: 本章介紹 select 元素中傳遞多個參數的處理方式。 測試類:com.yjw.demo.MulParametersTest 使用 Map 傳遞參數(不建議使用) 使用 MyBatis 提供的 Map 接口作爲參數

原创 MyBatis 源碼篇-日誌模塊2

上一章的案例,配置日誌級別爲 debug,執行一個簡單的查詢操作,會將 JDBC 操作打印出來。本章通過 MyBatis 日誌部分源碼分析它是如何實現日誌打印的。 在 MyBatis 的日誌模塊中有一個 jdbc package,pac

原创 MySQL InnoDB 事務

MySQL 原理篇 MySQL 索引機制 MySQL 體系結構及存儲引擎 MySQL 語句執行過程詳解 MySQL 執行計劃詳解 MySQL InnoDB 緩衝池 MySQL InnoDB 事務 MySQL InnoDB 鎖 MySQL

原创 MySQL 多列排序

MySQL 基礎篇 三範式 MySQL 軍規 MySQL 配置 MySQL 用戶管理和權限設置 MySQL 常用函數介紹 MySQL 字段類型介紹 MySQL 多列排序 MySQL 行轉列 列轉行 MySQL NULL 使用帶來的坑 M

原创 MySQL 行轉列 列轉行

轉載:《mysql 行轉列 列轉行》 行轉列 準備數據: CREATE TABLE tb_score( id INT(11) NOT NULL auto_increment, userid VARCHAR(20) NO

原创 MyBatis 源碼篇-Transaction

本章簡單介紹一下 MyBatis 的事務模塊,這塊內容比較簡單,主要爲後面介紹 mybatis-spring-1.**.jar(MyBatis 與 Spring 集成)中的事務模塊做準備。 類圖結構 MyBatis 事務模塊

原创 MySQL InnoDB 實現高併發原理

MySQL 原理篇 MySQL 索引機制 MySQL 體系結構及存儲引擎 MySQL 語句執行過程詳解 MySQL 執行計劃詳解 MySQL InnoDB 緩衝池 MySQL InnoDB 事務 MySQL InnoDB 鎖 MySQL

原创 MySQL 軍規

MySQL 基礎篇 三範式 MySQL 軍規 MySQL 配置 MySQL 用戶管理和權限設置 MySQL 常用函數介紹 MySQL 字段類型介紹 MySQL 多列排序 MySQL 行轉列 列轉行 MySQL NULL 使用帶來的坑 M

原创 MyBatis 源碼篇-整體架構

MyBatis 的整體架構分爲三層, 分別是基礎支持層、核心處理層和接口層,如下圖所示。     基礎支持層 反射模塊 該模塊對 Java 原生的反射進行了良好的封裝,提供了更加簡潔易用的 API ,方便上層使調用,並且對反射操

原创 MyBatis 源碼篇-資源加載

本章主要描述 MyBatis 資源加載模塊中的 ClassLoaderWrapper 類和 Java 加載配置文件的三種方式。 ClassLoaderWrapper 上一章的案例,使用 org.apache.ibatis.io.Reso

原创 MyBatis 源碼篇-插件模塊

本章主要描述 MyBatis 插件模塊的原理,從以下兩點出發: MyBatis 是如何加載插件配置的? MyBatis 是如何實現用戶使用自定義攔截器對 SQL 語句執行過程中的某一點進行攔截的? 示例準備 首先準備兩個攔截器示例,代碼