Tagged articles
738 articles
Page 2 of 8
Java Architect Essentials
Java Architect Essentials
Apr 7, 2025 · Backend Development

Advanced MyBatis Dynamic SQL Techniques: foreach, if, choose, trim, selectKey, and SQL Fragments

This article provides a comprehensive guide to MyBatis dynamic SQL tags—including foreach, if, choose, trim, selectKey, and reusable SQL fragments—explaining their attributes, usage patterns, and code examples to help developers write cleaner, more reliable XML mappers and avoid common pitfalls.

Backend DevelopmentDynamic SQLJava
0 likes · 19 min read
Advanced MyBatis Dynamic SQL Techniques: foreach, if, choose, trim, selectKey, and SQL Fragments
Selected Java Interview Questions
Selected Java Interview Questions
Apr 2, 2025 · Backend Development

Implementing Environment-Based Data Isolation in MyBatis with Custom Interceptors and Annotations

This article describes a practical approach to achieve environment-based data isolation in a Java application by adding an 'env' field to tables, using a custom MyBatis interceptor to rewrite SQL, and defining annotations with AOP to control environment filtering, while discussing challenges and refactoring considerations.

Custom InterceptorData IsolationMyBatis
0 likes · 12 min read
Implementing Environment-Based Data Isolation in MyBatis with Custom Interceptors and Annotations
IT Architects Alliance
IT Architects Alliance
Mar 29, 2025 · Information Security

Database Data Masking Techniques: SQL, Java, and MyBatis-Mate Sensitive-Jackson Comparison

The article explains why data masking is essential for protecting sensitive information, then details three implementation methods—SQL, Java (with open‑source plugins), and the MyBatis‑Mate‑Sensitive‑Jackson ORM extension—comparing their principles, code examples, advantages, limitations, performance, suitable scenarios, and cost considerations.

JavaMyBatisSQL
0 likes · 17 min read
Database Data Masking Techniques: SQL, Java, and MyBatis-Mate Sensitive-Jackson Comparison
JD Tech
JD Tech
Mar 24, 2025 · Backend Development

SQL Coloring Plugin for MyBatis: Design, Implementation, and Usage Guide

This article describes a lightweight, non‑intrusive MyBatis plugin that adds identifiable coloring comments to SQL statements—embedding statementId, pFinderId, and optional custom data—to simplify SQL source tracing, improve slow‑SQL analysis, and support SELECT, INSERT, UPDATE, DELETE operations with minimal performance overhead.

BackendJavaMyBatis
0 likes · 12 min read
SQL Coloring Plugin for MyBatis: Design, Implementation, and Usage Guide
Rare Earth Juejin Tech Community
Rare Earth Juejin Tech Community
Mar 12, 2025 · Backend Development

Deep Dive into MyBatis Core Components: Executor, StatementHandler, ParameterHandler, and ResultSetHandler

This article provides a comprehensive, English-language walkthrough of MyBatis's four core components—Executor, StatementHandler, ParameterHandler, and ResultSetHandler—explaining their interfaces, default implementations, key methods, and how they collaborate to translate Java objects into SQL statements and process query results.

ExecutorJavaMyBatis
0 likes · 21 min read
Deep Dive into MyBatis Core Components: Executor, StatementHandler, ParameterHandler, and ResultSetHandler
Code Ape Tech Column
Code Ape Tech Column
Mar 8, 2025 · Information Security

Enterprise Data Desensitization Solutions Using MyBatis and Fastjson

The article explains why data desensitization is essential for enterprises, classifies common masking techniques, and provides concrete implementation guides for database, log, and output level masking in Java applications using MyBatis plugins and Fastjson filters, complete with sample code and configuration.

Backend SecurityJavaMyBatis
0 likes · 12 min read
Enterprise Data Desensitization Solutions Using MyBatis and Fastjson
JD Cloud Developers
JD Cloud Developers
Mar 6, 2025 · Backend Development

How a MyBatis Plugin Can Color‑Mark SQL for Instant Business Traceability

This article examines the challenges of locating and diagnosing SQL statements in large systems and introduces a lightweight, non‑intrusive MyBatis plugin that injects color‑marking metadata into SELECT, INSERT, UPDATE and DELETE queries, enabling rapid business source identification and enhanced debugging.

JavaMyBatisSQL tracing
0 likes · 15 min read
How a MyBatis Plugin Can Color‑Mark SQL for Instant Business Traceability
macrozheng
macrozheng
Mar 4, 2025 · Backend Development

How to Implement Data Isolation in Spring Boot with MyBatis and JSqlParser

This article explains how to achieve data isolation in a Spring Boot application by creating a MyBatis interceptor that uses JSqlParser to parse and modify SQL statements at the prepare stage, covering tool introductions, dependency setup, interceptor code, testing examples, and the reasoning behind intercepting the prepare method.

Data IsolationJSqlParserMyBatis
0 likes · 14 min read
How to Implement Data Isolation in Spring Boot with MyBatis and JSqlParser
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Feb 27, 2025 · Backend Development

How to Log SQL Statements in Spring Boot 3 Using JDBC, JPA, MyBatis & datasource-proxy

This article announces a Spring Boot 3 case collection with 100 permanent examples and then provides a comprehensive guide on recording SQL statements in Spring Boot applications via JDBC, JPA, MyBatis and the datasource‑proxy library, including configuration snippets, code samples and visual output illustrations.

JDBCMyBatisSQL Logging
0 likes · 8 min read
How to Log SQL Statements in Spring Boot 3 Using JDBC, JPA, MyBatis & datasource-proxy
Pan Zhi's Tech Notes
Pan Zhi's Tech Notes
Feb 25, 2025 · Backend Development

Build a Code Generator from Scratch: Boost Development Efficiency 10×

This article walks through creating a fully automated Spring Boot and MyBatis code generator using Freemarker templates, detailing each step from extracting table metadata to generating DAO, service, controller, and entity classes, and shows how a single-table CRUD can be produced in seconds.

Backend DevelopmentCode GenerationFreemarker
0 likes · 25 min read
Build a Code Generator from Scratch: Boost Development Efficiency 10×
Su San Talks Tech
Su San Talks Tech
Feb 14, 2025 · Databases

How to Fix Oracle ORA-000060 Deadlock in Bulk User Updates

The article describes a real‑world Oracle ORA‑000060 deadlock encountered during bulk updates of user records, explains the root cause of unsorted duplicate user_id entries across parallel threads, and outlines practical solutions such as sorting input files and adjusting transaction order, illustrated with MyBatis code and DeepSeek insights.

MyBatisOracledeadlock
0 likes · 5 min read
How to Fix Oracle ORA-000060 Deadlock in Bulk User Updates
IT Services Circle
IT Services Circle
Feb 13, 2025 · Databases

Resolving ORA-000060 Deadlock in Oracle Batch Updates with MyBatis

The article describes a production deadlock (ORA-000060) caused by unsorted, duplicate user_id rows in a file processed in parallel batch updates, shows MyBatis XML code, illustrates conflicting thread execution, and provides practical solutions such as sorting the input and deduplicating records.

Batch UpdateMyBatisOracle
0 likes · 4 min read
Resolving ORA-000060 Deadlock in Oracle Batch Updates with MyBatis
Code Ape Tech Column
Code Ape Tech Column
Feb 10, 2025 · Backend Development

Implementing Data Isolation in Spring Boot with MyBatis Interceptor and JSqlParser

This article explains how to achieve data isolation in a Spring Boot application by using a MyBatis interceptor that leverages JSqlParser to parse and modify SQL statements at the StatementHandler.prepare stage, covering tool introductions, dependency setup, interceptor implementation, testing examples, and the rationale behind intercepting the prepare method.

Data IsolationJSqlParserMyBatis
0 likes · 13 min read
Implementing Data Isolation in Spring Boot with MyBatis Interceptor and JSqlParser
Java Tech Enthusiast
Java Tech Enthusiast
Feb 9, 2025 · Databases

Optimizing Database Insert Operations and Batch Insertion Strategies

The article explains how inserts work in relational databases, why fixed‑size pages and batch transactions dramatically reduce I/O and lock contention, and provides practical MyBatis guidelines—using the foreach tag, ExecutorType.BATCH, and an appropriate batchSize while estimating memory and disk limits to choose an optimal batch size and commit only once.

Batch InsertMyBatismysql
0 likes · 12 min read
Optimizing Database Insert Operations and Batch Insertion Strategies
Java Architecture Stack
Java Architecture Stack
Feb 7, 2025 · Backend Development

Master MyBatis Interview: Advanced Tips, Performance Hacks, and Real-World Code

This article walks senior Java developers through MyBatis fundamentals, core components, result mapping, the trade‑offs between #{} and ${}, dynamic SQL, second‑level caching, batch inserts, plugin creation, thread‑safety concerns, and concrete interview‑question solutions, all illustrated with real code snippets and performance numbers.

Backend DevelopmentInterview PreparationJava
0 likes · 11 min read
Master MyBatis Interview: Advanced Tips, Performance Hacks, and Real-World Code
Selected Java Interview Questions
Selected Java Interview Questions
Feb 5, 2025 · Backend Development

Implementing Data Isolation in Spring Boot with MyBatis Interceptor and JSqlParser

This article demonstrates how to achieve data isolation in a Spring Boot application by creating a MyBatis interceptor that modifies SQL statements using JSqlParser, covering tool introductions, dependency setup, interceptor implementation, testing for SELECT/INSERT/UPDATE/DELETE, and the rationale for intercepting the prepare method.

Data IsolationJSqlParserMyBatis
0 likes · 14 min read
Implementing Data Isolation in Spring Boot with MyBatis Interceptor and JSqlParser
Java Tech Enthusiast
Java Tech Enthusiast
Feb 4, 2025 · Backend Development

Unlock Precise Method Timing with Cool Request’s New Trace Feature

The article introduces Cool Request, an IDEA plugin that now supports a Trace feature for measuring execution time of any method, automatic MyBatis function tracing, customizable duration coloring, and script-based environment manipulation, complete with usage examples and code snippets.

Cool RequestHTTP debuggingIDEA Plugin
0 likes · 6 min read
Unlock Precise Method Timing with Cool Request’s New Trace Feature
macrozheng
macrozheng
Jan 26, 2025 · Backend Development

Which Java Technologies Are Worth Learning in 2024? A Practical Guide

Based on 20 years of Java experience, this article evaluates Java technologies like JSP, Struts, Hibernate, and Servlet against practical use, depth of understanding, and interview relevance, recommending which to drop, which to master, and highlighting alternatives such as Spring MVC and MyBatis.

Backend DevelopmentHibernateJSP
0 likes · 8 min read
Which Java Technologies Are Worth Learning in 2024? A Practical Guide
Architecture Digest
Architecture Digest
Jan 24, 2025 · Backend Development

Why Using 1=1 in SQL Is a Bad Habit and How to Write Cleaner Queries

This article explains why developers often insert the always‑true condition 1=1 in SQL, examines its potential performance and readability drawbacks, and demonstrates cleaner alternatives using MyBatis dynamic tags and Entity Framework to build conditional queries without unnecessary predicates.

Backend DevelopmentDynamic QueryEntity Framework
0 likes · 7 min read
Why Using 1=1 in SQL Is a Bad Habit and How to Write Cleaner Queries
Java Web Project
Java Web Project
Jan 15, 2025 · Backend Development

Why MyBatis foreach Batch Inserts Stall and How to Speed Them Up with ExecutorType.BATCH

The article investigates a MyBatis batch‑insert job that consumes excessive CPU and takes 14 minutes, explains why the foreach‑generated giant INSERT statement is inefficient, and demonstrates how switching to ExecutorType.BATCH or MyBatis dynamic‑SQL batch support reduces the runtime to under two seconds.

Batch InsertExecutorType.BATCHJava
0 likes · 10 min read
Why MyBatis foreach Batch Inserts Stall and How to Speed Them Up with ExecutorType.BATCH
Top Architect
Top Architect
Jan 12, 2025 · Backend Development

Optimizing a High‑Concurrency Interface: Reducing Response Time from 30 s to 0.8 s

This article presents a real‑world case study of a high‑concurrency data‑processing interface whose response time was reduced from 30 seconds to under one second by diagnosing SQL bottlenecks, applying PostgreSQL array aggregation, moving logic to the database, and introducing Caffeine caching, with detailed code examples and performance analysis.

BackendMyBatisPostgreSQL
0 likes · 13 min read
Optimizing a High‑Concurrency Interface: Reducing Response Time from 30 s to 0.8 s
Top Architecture Tech Stack
Top Architecture Tech Stack
Jan 6, 2025 · Backend Development

10 Essential MyBatis Development Tips for Efficient Backend Programming

This article presents ten practical MyBatis techniques—including dynamic SQL, resultMap, foreach, pagination, annotation proxies, second‑level cache, dynamic table names, custom type handlers, logging, and multi‑datasource configuration—to help Java developers write cleaner, safer, and more performant data‑access code.

JavaMyBatisORM
0 likes · 11 min read
10 Essential MyBatis Development Tips for Efficient Backend Programming
Architect
Architect
Dec 23, 2024 · Information Security

How to Implement Enterprise Data Desensitization with MyBatis and Fastjson

This article explains why data desensitization is essential for modern enterprises, compares masking, obfuscation and encryption techniques, and provides step‑by‑step implementations for database, log, and output layers using MyBatis interceptors, Fastjson filters, and Spring MVC configuration.

JavaMyBatisSecurity
0 likes · 13 min read
How to Implement Enterprise Data Desensitization with MyBatis and Fastjson
Architect's Guide
Architect's Guide
Dec 22, 2024 · Backend Development

Cool Request Plugin for IDEA: Tracing, MyBatis Function Tracking, and Custom Timing Features

The article introduces the Cool Request IDEA plugin, explains its tracing capabilities for arbitrary packages, automatic MyBatis function monitoring, customizable timing colors, script-based environment manipulation, and provides a Java code example for handling responses, highlighting its usefulness for backend developers.

BackendIDEAJava
0 likes · 4 min read
Cool Request Plugin for IDEA: Tracing, MyBatis Function Tracking, and Custom Timing Features
Architect
Architect
Dec 15, 2024 · Databases

Efficient MySQL Queries for Millions of Rows: Regular, Stream, and Cursor

When processing massive MySQL result sets, loading all rows into JVM memory can cause OOM and slow performance, so this guide compares three approaches—regular pagination, streaming queries using server-side cursors, and cursor‑based fetchSize control—detailing their implementations, MyBatis configurations, and trade‑offs.

CursorDatabase QueryLarge Data
0 likes · 10 min read
Efficient MySQL Queries for Millions of Rows: Regular, Stream, and Cursor
DaTaobao Tech
DaTaobao Tech
Dec 13, 2024 · Databases

MyBatis Boolean vs Boolean: Unexpected 0 Value and Fix

Because MyBatis reads a primitive boolean field directly when no getter exists, the default false value is bound as 0, causing an unexpected zero in the MySQL tinyint column; changing the field to the Boolean wrapper (initialized to true) or fixing the update logic resolves the issue.

DebuggingJavaMyBatis
0 likes · 9 min read
MyBatis Boolean vs Boolean: Unexpected 0 Value and Fix
Java Tech Enthusiast
Java Tech Enthusiast
Dec 6, 2024 · Backend Development

Migrating MyBatis to MyBatis-Plus: Debugging LocalDateTime Conversion Issues

When migrating an old Java project from MyBatis 3.5.0 to MyBatis‑Plus 3.1.1, a test failed with “Conversion not supported for type java.time.LocalDateTime” because MyBatis 3.5.1 stopped handling Java 8 time types and the existing mysql‑connector‑java 5.1.26 driver lacked support, which was resolved by upgrading the connector to version 5.1.37 or later, highlighting the need for thorough compatibility testing during framework upgrades.

JavaLocalDateTimeMyBatis
0 likes · 7 min read
Migrating MyBatis to MyBatis-Plus: Debugging LocalDateTime Conversion Issues
Java Architect Essentials
Java Architect Essentials
Nov 27, 2024 · Backend Development

New Features of Cool Request Plugin: Trace, MyBatis Tracking, Custom Timing Colors, and Scripting

The article introduces the latest Cool Request IDEA plugin update, detailing its Trace capability for method execution timing, selective MyBatis function monitoring, customizable slow‑method highlighting, and scripting support for headers and JSON parsing, all illustrated with Java code examples.

Cool RequestIDEA PluginJava
0 likes · 5 min read
New Features of Cool Request Plugin: Trace, MyBatis Tracking, Custom Timing Colors, and Scripting
Code Ape Tech Column
Code Ape Tech Column
Nov 19, 2024 · Backend Development

Encapsulating EasyExcel for Simplified Import/Export in Spring Boot Applications

This article demonstrates how to wrap the EasyExcel library in a Spring Boot + MyBatis‑Plus project, providing a unified component that simplifies Excel import and export through concise annotations, reusable service methods, and customizable converters while addressing common pitfalls such as date handling and template support.

BackendExcelImportExportJava
0 likes · 15 min read
Encapsulating EasyExcel for Simplified Import/Export in Spring Boot Applications
Architecture Digest
Architecture Digest
Nov 11, 2024 · Backend Development

Fluent Mybatis Tutorial: Introduction, Features, Comparison with MyBatis/MyBatis Plus, and Practical CRUD Implementation

This article introduces the Fluent Mybatis ORM framework, explains its design advantages, demonstrates how to implement a complex student‑score aggregation query using Fluent Mybatis, native MyBatis and MyBatis‑Plus, and provides end‑to‑end code examples for entity generation, configuration, and CRUD testing.

Code GenerationFluent MyBatisJava
0 likes · 16 min read
Fluent Mybatis Tutorial: Introduction, Features, Comparison with MyBatis/MyBatis Plus, and Practical CRUD Implementation
Architect's Tech Stack
Architect's Tech Stack
Nov 6, 2024 · Backend Development

Optimizing MyBatis Batch Insert Performance with ExecutorType.BATCH and Proper Value Chunking

This article explains why using MyBatis foreach for bulk inserts can cause severe performance degradation, analyzes the underlying cost of large prepared statements, and demonstrates how switching to ExecutorType.BATCH or limiting each INSERT to 20‑50 rows dramatically improves insertion speed.

Batch InsertExecutorType.BATCHJava
0 likes · 8 min read
Optimizing MyBatis Batch Insert Performance with ExecutorType.BATCH and Proper Value Chunking
Architect's Guide
Architect's Guide
Nov 6, 2024 · Databases

MyBatis SQL Viewer Plugin: Features, Installation, and Usage Guide

The MyBatis SQL Viewer plugin transforms MyBatis XML into executable SQL, provides mock parameters, syntax and compliance checks, index analysis, performance testing, data mocking, and comprehensive UI features, enabling developers to validate, benchmark, and manage SQL without restarting the application.

Database ToolsMyBatisPerformance Testing
0 likes · 11 min read
MyBatis SQL Viewer Plugin: Features, Installation, and Usage Guide
Architecture Digest
Architecture Digest
Nov 5, 2024 · Backend Development

Spring Annotation-Based Development and MyBatis Integration Tutorial

This article explains how Spring 3.0's pure annotation mode simplifies bean configuration, demonstrates using @Component, @Scope, @Autowired, @Qualifier, @Value, and @PropertySource for dependency injection and property loading, and shows step‑by‑step integration of MyBatis with Spring, including required dependencies and configuration classes.

BackendConfigurationJava
0 likes · 8 min read
Spring Annotation-Based Development and MyBatis Integration Tutorial
Selected Java Interview Questions
Selected Java Interview Questions
Oct 30, 2024 · Backend Development

Implementing Short URL Redirection with SpringBoot

This article explains the concept of short‑URL redirection, its benefits, and provides a complete SpringBoot implementation—including database schema, entity, DAO, service, controller, and testing code—to convert long links into short, trackable links and handle redirects.

BackendJavaMyBatis
0 likes · 11 min read
Implementing Short URL Redirection with SpringBoot
Rare Earth Juejin Tech Community
Rare Earth Juejin Tech Community
Oct 29, 2024 · Backend Development

Storing Douyin and Baidu Hot Search Data with MySQL, MyBatis Generator, and Java Crawlers

This tutorial explains how to design a MySQL table for hot‑search records, generate Java entity and mapper classes using MyBatis Generator, create unique IDs for each entry, and implement scheduled Java crawlers for Douyin and Baidu hot‑search data that persist the results via Spring‑Boot services.

BackendDatabase designJava
0 likes · 19 min read
Storing Douyin and Baidu Hot Search Data with MySQL, MyBatis Generator, and Java Crawlers
Java Tech Enthusiast
Java Tech Enthusiast
Oct 13, 2024 · Backend Development

Fluent Mybatis Tutorial: Overview, Features, and Practical Code Examples

The article introduces Fluent Mybatis, a compile‑time code‑generating ORM that merges Mybatis‑Plus, Dynamic SQL and JPA features, eliminates XML mappers, offers a fluent, type‑safe Java API, and demonstrates through concise examples how it reduces boilerplate compared with native Mybatis and Mybatis‑Plus.

CRUDCode GenerationFluent MyBatis
0 likes · 13 min read
Fluent Mybatis Tutorial: Overview, Features, and Practical Code Examples
macrozheng
macrozheng
Oct 8, 2024 · Backend Development

Mastering Batch Updates in MyBatis: From foreach to ON DUPLICATE KEY

This article explores four common batch‑update techniques in MyBatis, compares their performance, shows how to configure Druid and Spring Boot to allow multi‑statement execution, and provides practical code examples and configuration tips for reliable large‑scale data updates.

Batch UpdateDruidMyBatis
0 likes · 11 min read
Mastering Batch Updates in MyBatis: From foreach to ON DUPLICATE KEY
Java High-Performance Architecture
Java High-Performance Architecture
Sep 21, 2024 · Backend Development

Master MyBatis-Mate: Advanced Features for Secure, Sharded Java Backends

This article introduces MyBatis‑Mate, an enterprise‑grade MyBatis extension that provides sharding, data auditing, sensitive‑word filtering, field encryption, dictionary binding, dynamic DDL maintenance, data‑scope permissions and performance monitoring, complete with practical code examples and configuration guidance.

JavaMyBatisdata encryption
0 likes · 15 min read
Master MyBatis-Mate: Advanced Features for Secure, Sharded Java Backends
Architecture Digest
Architecture Digest
Aug 29, 2024 · Backend Development

mybatis-mate – Enterprise‑level MyBatis Extension for Sharding, Auditing, Encryption, and Data Permissions

The article introduces mybatis-mate, an enterprise‑grade MyBatis module that supports sharding, multi‑datasource, data auditing, field encryption, sensitive‑data masking, automatic DDL maintenance, performance logging, and fine‑grained data‑scope control, providing code examples and configuration guidelines for Spring Boot projects.

Backend DevelopmentData AuditingJava
0 likes · 15 min read
mybatis-mate – Enterprise‑level MyBatis Extension for Sharding, Auditing, Encryption, and Data Permissions
Sohu Tech Products
Sohu Tech Products
Aug 28, 2024 · Databases

MySQL Data Migration with Double‑Write Using MyBatis Plugin

The article details how the vivo Game Center’s appointment service migrated billions of rows to a dedicated MySQL database with zero‑downtime by implementing a double‑write strategy via a custom MyBatis interceptor that mirrors updates and queries to the new database, handling full and incremental sync, primary‑key consistency, transaction limits, and final cut‑over steps.

Data MigrationMyBatisdatabase
0 likes · 19 min read
MySQL Data Migration with Double‑Write Using MyBatis Plugin
High Availability Architecture
High Availability Architecture
Aug 27, 2024 · Backend Development

Design and Implementation of a Double‑Write Migration Strategy for the Appointment Service Using a MyBatis Plugin

This article details the background, requirements, and evaluation of migration options for the appointment service, explains why a double‑write approach with a custom MyBatis plugin was chosen, and walks through the full‑sync, incremental sync, code refactoring, plugin implementation, switch‑over procedures, and post‑migration validation to achieve reliable data isolation and system stability.

JavaMyBatisdata synchronization
0 likes · 17 min read
Design and Implementation of a Double‑Write Migration Strategy for the Appointment Service Using a MyBatis Plugin
vivo Internet Technology
vivo Internet Technology
Aug 21, 2024 · Databases

MySQL Data Migration with Double‑Write Strategy Using a MyBatis Plugin

The article details a zero‑downtime migration of a high‑traffic reservation service from a shared MySQL instance to an isolated database by employing a double‑write strategy implemented through a custom MyBatis plugin, covering full and incremental sync, consistency verification, traffic shifting, and key lessons on primary‑key handling and asynchronous write side‑effects.

Data MigrationMyBatisSynchronization
0 likes · 19 min read
MySQL Data Migration with Double‑Write Strategy Using a MyBatis Plugin
Java Architect Essentials
Java Architect Essentials
Aug 19, 2024 · Backend Development

Boost MyBatis Development with MyBatis‑SQL‑Viewer: Features, Installation & Usage

This article introduces the MyBatis‑SQL‑Viewer plugin, detailing its capabilities such as converting MyBatis XML to real SQL, mock data generation, SQL compliance and index checks, execution, performance testing, and how to install and use it within IntelliJ IDEA for efficient backend development.

Backend DevelopmentIDE pluginMyBatis
0 likes · 13 min read
Boost MyBatis Development with MyBatis‑SQL‑Viewer: Features, Installation & Usage
Top Architect
Top Architect
Aug 11, 2024 · Backend Development

Efficient Insertion of 300,000 Records Using MyBatis and JDBC

This article demonstrates how to efficiently insert 300,000 rows into a MySQL table by using MyBatis batch operations, JDBC batch processing, and various performance optimizations such as batch size tuning, transaction management, and connection pooling.

Batch InsertJDBCJava
0 likes · 17 min read
Efficient Insertion of 300,000 Records Using MyBatis and JDBC
Lobster Programming
Lobster Programming
Aug 6, 2024 · Backend Development

How to Log MyBatis SQL and Execution Time with Config, Plugins, and p6spy

This guide explains three common ways to output MyBatis SQL statements and their execution times—using simple configuration logging, a custom MyBatis interceptor plugin, and the third‑party p6spy library—along with code examples and practical considerations for development and production environments.

JavaMyBatisPerformance Monitoring
0 likes · 8 min read
How to Log MyBatis SQL and Execution Time with Config, Plugins, and p6spy
Java Architect Essentials
Java Architect Essentials
Aug 5, 2024 · Backend Development

Fast Testing of MyBatis SQL Without Starting Spring

This article explains how to quickly test MyBatis SQL statements by bypassing the Spring container, using a minimal MyBatis configuration, adding support for PageHelper pagination and MyBatis‑Plus plugins, and provides code examples and a plugin recommendation for efficient backend development.

BackendJavaMyBatis
0 likes · 4 min read
Fast Testing of MyBatis SQL Without Starting Spring
Top Architect
Top Architect
Aug 3, 2024 · Backend Development

Optimizing a High‑Concurrency Transaction Statistics Interface from 30 seconds to Sub‑Second Performance

This article presents a real‑world case study of a high‑concurrency data‑processing interface whose response time was reduced from 30 seconds to under one second by diagnosing SQL bottlenecks, refactoring MyBatis code, applying PostgreSQL array aggregation, and introducing a Caffeine cache, while also discussing the limits of relational databases and promoting related AI services.

Backend DevelopmentCaffeineMyBatis
0 likes · 13 min read
Optimizing a High‑Concurrency Transaction Statistics Interface from 30 seconds to Sub‑Second Performance
Java Tech Enthusiast
Java Tech Enthusiast
Aug 2, 2024 · Backend Development

How Cool Request’s New Trace Feature Lets You Measure Any Method’s Execution Time

The latest update of the Cool Request IDEA plugin introduces a powerful Trace function that automatically records execution times for any method—including Spring @Scheduled and xxl‑job tasks—offers customizable latency coloring, MyBatis SQL timing, call‑count indicators, and scriptable environment variables for seamless token handling and JSON parsing.

HTTP debuggingIDEA PluginJava
0 likes · 6 min read
How Cool Request’s New Trace Feature Lets You Measure Any Method’s Execution Time
Selected Java Interview Questions
Selected Java Interview Questions
Aug 1, 2024 · Backend Development

Spring Annotation-Based Development and MyBatis Integration Guide

This article explains how Spring 3.0's pure annotation development simplifies bean configuration, demonstrates defining beans with @Component, managing bean scopes, performing various injection techniques, reading properties files, and integrating MyBatis, providing complete code examples and best‑practice tips for backend Java developers.

BackendJavaMyBatis
0 likes · 11 min read
Spring Annotation-Based Development and MyBatis Integration Guide
Java Backend Technology
Java Backend Technology
Jul 30, 2024 · Backend Development

Spring Annotation Development: From Bean Definition to MyBatis Integration

This article explains how Spring’s pure annotation development replaces XML bean definitions, covers component scanning, bean scopes, derived annotations, various injection methods, property file loading, and demonstrates seamless Spring‑MyBatis integration, showing step‑by‑step code examples that simplify backend configuration.

JavaMyBatisannotation
0 likes · 9 min read
Spring Annotation Development: From Bean Definition to MyBatis Integration
Top Architect
Top Architect
Jul 25, 2024 · Backend Development

Introducing MyBatis‑Mate: Enterprise Features for Spring Boot

This article introduces MyBatis‑Mate, an official MyBatis‑Plus extension that provides enterprise‑level capabilities such as sharding, data auditing, field encryption, dictionary binding, data masking, automatic DDL maintenance, dynamic data‑source switching, distributed transaction logging, and fine‑grained data permissions for Spring Boot applications.

DataMaskingDataShardingFieldEncryption
0 likes · 17 min read
Introducing MyBatis‑Mate: Enterprise Features for Spring Boot
Selected Java Interview Questions
Selected Java Interview Questions
Jul 20, 2024 · Backend Development

Introduction and Usage Guide for MyBatis-Mate: Enterprise Features for MyBatis-Plus

This article introduces MyBatis-Mate, an official MyBatis‑Plus extension offering enterprise‑level capabilities such as dictionary binding, field encryption, data masking, dynamic DDL maintenance, sharding, multi‑datasource switching, performance logging, and data permission control, with detailed Spring Boot integration examples.

BackendJavaMyBatis
0 likes · 15 min read
Introduction and Usage Guide for MyBatis-Mate: Enterprise Features for MyBatis-Plus
Selected Java Interview Questions
Selected Java Interview Questions
Jul 18, 2024 · Backend Development

Exploring Nine Design Patterns in MyBatis: Builder, Factory, Singleton, Proxy, Decorator, Adapter, Composite, Template Method, and Iterator

This article examines nine design patterns employed within MyBatis—Builder, Factory, Singleton, Proxy, Decorator, Adapter, Composite, Template Method, and Iterator—detailing their roles, source code examples, and how they facilitate configuration parsing, SQL execution, and caching in the framework.

Builder PatternDesign PatternsFactory Pattern
0 likes · 18 min read
Exploring Nine Design Patterns in MyBatis: Builder, Factory, Singleton, Proxy, Decorator, Adapter, Composite, Template Method, and Iterator
Code Ape Tech Column
Code Ape Tech Column
Jul 18, 2024 · Backend Development

Optimizing a High‑Concurrency Data Processing Interface: Reducing Response Time from 30 s to 0.8 s

This article presents a real‑world case study of a high‑concurrency transaction‑handling API that originally required 30 seconds to process over two million records, and details the step‑by‑step SQL, Java, and caching optimizations that brought the response time down to under one second.

MyBatisPostgreSQLSQL Optimization
0 likes · 10 min read
Optimizing a High‑Concurrency Data Processing Interface: Reducing Response Time from 30 s to 0.8 s
JD Tech Talk
JD Tech Talk
Jul 8, 2024 · Backend Development

Implementing Data Permission Control with MyBatis Interceptor and ThreadLocal

This article explains how to enforce data permission control in Java backend applications by using MyBatis mapper annotations, ThreadLocal rule propagation, and a MyBatis interceptor that parses and rewrites SQL statements with permission constraints, providing minimal intrusion to existing business logic.

Data PermissionMyBatisSQL interceptor
0 likes · 11 min read
Implementing Data Permission Control with MyBatis Interceptor and ThreadLocal
Top Architect
Top Architect
Jul 5, 2024 · Databases

Efficient Insertion of 300,000 Records Using MyBatis and JDBC

This article demonstrates how to insert 300,000 rows into a MySQL table efficiently by defining a User entity, configuring MyBatis and JDBC, comparing direct batch insertion, row‑by‑row insertion, and optimized batch strategies with configurable batch sizes and wait times, and provides performance results and best‑practice recommendations.

JDBCJavaMyBatis
0 likes · 15 min read
Efficient Insertion of 300,000 Records Using MyBatis and JDBC
Java Tech Enthusiast
Java Tech Enthusiast
Jul 1, 2024 · Backend Development

MyBatis OGNL Comparison Pitfall: Single Character vs String

The article reveals that MyBatis’s OGNL treats a single‑character literal like '1' as a Character, causing equality checks against String values in if tags to fail, and shows how using double quotes, toString(), or proper type conversion resolves the comparison pitfall.

ComparisonDebuggingJava
0 likes · 4 min read
MyBatis OGNL Comparison Pitfall: Single Character vs String
macrozheng
macrozheng
Jun 21, 2024 · Backend Development

Master MyBatis Dynamic SQL: 9 Essential Tag Techniques for Cleaner Code

This article walks through MyBatis dynamic SQL tags—foreach, concat, choose, selectKey, if, where, trim, set, and sql fragments—explaining their attributes, usage patterns, and common pitfalls, and provides complete XML and Java code examples for each technique.

Dynamic SQLJavaMyBatis
0 likes · 20 min read
Master MyBatis Dynamic SQL: 9 Essential Tag Techniques for Cleaner Code
Su San Talks Tech
Su San Talks Tech
Jun 12, 2024 · Backend Development

Master MyBatis Dynamic SQL: 9 Essential Tags and Best Practices

This article explains how to use MyBatis dynamic SQL tags—including foreach, concat, choose, selectKey, if, where, set, trim, and sql fragments—providing clear examples and tips to write concise, error‑free XML mappings for Java backend applications.

Dynamic SQLJavaMyBatis
0 likes · 17 min read
Master MyBatis Dynamic SQL: 9 Essential Tags and Best Practices
Architect's Guide
Architect's Guide
Jun 8, 2024 · Backend Development

Automatic Business Code Generation Tool and Its Usage

This article introduces a self‑built tool that automatically generates database, service, DAO, and controller code for CRUD operations based on table definitions, explains its underlying template‑and‑parameter mechanism, demonstrates usage with a sample product table, and provides customizable templates and dynamic parameters for extensibility.

AutomationCRUDCode Generation
0 likes · 15 min read
Automatic Business Code Generation Tool and Its Usage
Java Tech Enthusiast
Java Tech Enthusiast
Jun 6, 2024 · Backend Development

MyBatis Dynamic SQL and Tag Usage Guide

MyBatis dynamic SQL lets developers construct conditional queries at runtime using tags like if, where, trim, choose, set, foreach, sql, include, and bind, simplifying complex statements, avoiding manual string concatenation, supporting batch operations, reusable fragments, and one‑to‑many mappings while improving flexibility and maintainability.

Dynamic SQLJavaMyBatis
0 likes · 16 min read
MyBatis Dynamic SQL and Tag Usage Guide
Top Architect
Top Architect
Jun 5, 2024 · Backend Development

Advanced MyBatis Dynamic SQL Techniques and Best Practices

This article provides a comprehensive guide to MyBatis dynamic SQL, covering foreach loops, conditional if, choose, selectKey, trim, and sql fragments, with detailed explanations and full XML and Java code examples to help developers write efficient, error‑free mappings.

Dynamic SQLJavaMyBatis
0 likes · 20 min read
Advanced MyBatis Dynamic SQL Techniques and Best Practices
Selected Java Interview Questions
Selected Java Interview Questions
Jun 5, 2024 · Backend Development

Analysis of MyBatis OGNL Concurrency Bug and Workarounds

This article investigates a concurrency bug in MyBatis caused by OGNL expression evaluation using reflection, explains the root cause through stack trace and source code analysis, and proposes solutions such as upgrading MyBatis or avoiding private inner‑class methods like Arrays.asList.

JavaMyBatisOGNL
0 likes · 13 min read
Analysis of MyBatis OGNL Concurrency Bug and Workarounds
Java Architect Essentials
Java Architect Essentials
May 27, 2024 · Backend Development

Why MyBatis‑Plus Fails with LocalDateTime and How to Fix It

An old Java project using MySQL, MyBatis, and an outdated mysql‑connector‑java driver encounters a “Conversion not supported for type java.time.LocalDateTime” error after swapping MyBatis for MyBatis‑Plus; the article walks through reproducing the issue, analyzing MyBatis version changes, upgrading the JDBC driver, and fixing subsequent bugs.

DebuggingJavaLocalDateTime
0 likes · 9 min read
Why MyBatis‑Plus Fails with LocalDateTime and How to Fix It
Architect
Architect
May 20, 2024 · Backend Development

Unlocking MyBatis: 10+ Design Patterns Powering Its Architecture

This article dissects MyBatis's source code, revealing how more than ten classic design patterns—such as Factory, Singleton, Builder, Adapter, Proxy, Composite, Decorator, Template, Strategy, and Iterator—are applied to decouple complex scenarios, improve extensibility, and streamline ORM operations.

AdapterBackend DevelopmentBuilder
0 likes · 11 min read
Unlocking MyBatis: 10+ Design Patterns Powering Its Architecture
Architect's Journey
Architect's Journey
May 8, 2024 · Backend Development

Mastering MyBatis JSON Field Mapping with Custom TypeHandlers

This article walks through three ways to map JSON columns to Java objects in MyBatis, explains why simple String or JSONObject approaches are fragile, and provides a complete custom TypeHandler implementation, registration, and usage example for complex entity fields.

D3BootJSONJava
0 likes · 11 min read
Mastering MyBatis JSON Field Mapping with Custom TypeHandlers
Architect
Architect
May 7, 2024 · Backend Development

MyBatis Source Code Execution Flow Explained

The article walks through MyBatis’s internal execution pipeline, from loading the configuration file and building a SqlSessionFactory, to creating a SqlSession, generating a MapperProxy for the mapper interface, and finally invoking the mapped method which triggers JDBC operations, while detailing caching and executor mechanisms.

DynamicProxyExecutorJava
0 likes · 31 min read
MyBatis Source Code Execution Flow Explained
Java Tech Enthusiast
Java Tech Enthusiast
May 6, 2024 · Backend Development

Design Patterns in MyBatis Source Code

MyBatis, a widely used Java ORM, embeds around ten classic design patterns—including Factory, Singleton, Builder, Adapter, Proxy, Composite, Decorator, Template Method, Strategy, and Iterator—to modularize object creation, structure, and behavior, thereby simplifying complex data access and caching mechanisms within its architecture.

Backend DevelopmentDesign PatternsJava
0 likes · 8 min read
Design Patterns in MyBatis Source Code
Su San Talks Tech
Su San Talks Tech
May 5, 2024 · Backend Development

Fixing MyBatis‑Plus Migration Errors: Why LocalDateTime Conversion Fails and How to Resolve It

This article walks through replacing MyBatis with MyBatis‑Plus in a legacy Java project, explains the “Conversion not supported for type java.time.LocalDateTime” error caused by MyBatis 3.5.1 and an outdated mysql‑connector‑java driver, and shows how upgrading the driver resolves the issue while offering debugging tips.

DebuggingJavaMyBatis
0 likes · 16 min read
Fixing MyBatis‑Plus Migration Errors: Why LocalDateTime Conversion Fails and How to Resolve It
Code Ape Tech Column
Code Ape Tech Column
May 4, 2024 · Backend Development

Understanding PageHelper Pagination Issues and ThreadLocal Management in MyBatis

This article analyzes common anomalies caused by the PageHelper pagination plugin in a Java backend project—such as duplicate user registration, limited query results, and password‑reset errors—traces them to ThreadLocal misuse, explains the internal workflow of startPage, getLocalPage, and clearPage, and offers practical recommendations to avoid these pitfalls.

BackendJavaMyBatis
0 likes · 11 min read
Understanding PageHelper Pagination Issues and ThreadLocal Management in MyBatis
Architect's Tech Stack
Architect's Tech Stack
Apr 29, 2024 · Databases

Performance Evaluation of Inserting Billion-Scale Data into MySQL Using MyBatis, JDBC, and Batch Processing

This article presents a comprehensive performance test of inserting massive amounts of randomly generated person records into MySQL, comparing three strategies—MyBatis lightweight insertion, direct JDBC handling, and JDBC batch processing—both with and without transactions, and concludes that combining batch processing with transactions yields the fastest insertion speed for large‑scale data loads.

Batch ProcessingJDBCLarge Data Insertion
0 likes · 13 min read
Performance Evaluation of Inserting Billion-Scale Data into MySQL Using MyBatis, JDBC, and Batch Processing
macrozheng
macrozheng
Apr 26, 2024 · Databases

Boost MySQL Insert Performance with Batch Techniques and MyISAM

This article explains how to dramatically improve MySQL insert speed by adjusting database settings, choosing the MyISAM engine, and applying batch insertion methods such as concatenated SQL, transaction‑wrapped inserts, and MyBatis‑Flex saveBatch, complete with test code and performance results.

Batch InsertDatabase OptimizationInsert Performance
0 likes · 10 min read
Boost MySQL Insert Performance with Batch Techniques and MyISAM
Architecture Digest
Architecture Digest
Apr 22, 2024 · Backend Development

Migrating from MyBatis to MyBatis-Plus: Resolving LocalDateTime Conversion Errors and Lessons Learned

This article walks through replacing MyBatis with MyBatis‑Plus in a legacy Java project, demonstrates the LocalDateTime conversion error caused by MySQL‑connector‑java version incompatibility, shows how upgrading the driver resolves the issue, and shares a cautionary tale about unintended bugs after component upgrades.

JavaLocalDateTimeMyBatis
0 likes · 15 min read
Migrating from MyBatis to MyBatis-Plus: Resolving LocalDateTime Conversion Errors and Lessons Learned
Lobster Programming
Lobster Programming
Apr 22, 2024 · Backend Development

Why SqlSession Is Thread‑Unsafe and How SqlSessionTemplate Ensures Safety

This article explains why MyBatis SqlSession is not thread‑safe, outlines strategies such as using per‑thread instances or ThreadLocal to secure it, and details how Spring's SqlSessionTemplate leverages dynamic proxies and ThreadLocal storage to provide thread‑safe database operations.

MyBatisSqlSessionthread safety
0 likes · 3 min read
Why SqlSession Is Thread‑Unsafe and How SqlSessionTemplate Ensures Safety