Tagged articles
193 articles
Page 1 of 2
Java Architect Handbook
Java Architect Handbook
Feb 3, 2026 · Backend Development

Speeding Up 100k MySQL Inserts: From 5 Minutes to 3 Seconds in Java

This article walks through a real‑world data‑migration case where 100,000 rows were moved from an old system to a new one, showing how naive per‑row inserts took five minutes and how a series of optimizations—batch SQL, JDBC batch mode, and multithreaded parallelism—reduced the runtime to just three seconds, while also covering common pitfalls and the final high‑performance implementation.

Batch InsertJDBCJava
0 likes · 11 min read
Speeding Up 100k MySQL Inserts: From 5 Minutes to 3 Seconds in Java
java1234
java1234
Jan 30, 2026 · Backend Development

How to Reduce MyBatis Batch Insert from 5 Minutes to 3 Seconds? Three Key Optimizations

The article walks through three concrete optimizations—batch SQL, JDBC batch mode with rewriteBatchedStatements, and multithreaded parallel inserts—that shrink a 100,000‑row MyBatis insertion from five minutes to three seconds, while highlighting configuration details, performance gains, and common pitfalls.

Batch InsertJDBCJava
0 likes · 10 min read
How to Reduce MyBatis Batch Insert from 5 Minutes to 3 Seconds? Three Key Optimizations
Java Companion
Java Companion
Jan 29, 2026 · Backend Development

How to Cut MyBatis Batch Insert Time from 5 Minutes to 3 Seconds: Three Key Optimizations

The article walks through turning a naïve MyBatis loop that took five minutes to insert 100,000 rows into a high‑performance solution that finishes in three seconds by applying batch SQL, JDBC batch mode with rewriteBatchedStatements, and multithreaded parallel execution, while highlighting pitfalls and best‑practice configurations.

Batch InsertExecutorType.BATCHJDBC
0 likes · 9 min read
How to Cut MyBatis Batch Insert Time from 5 Minutes to 3 Seconds: Three Key Optimizations
Java Architect Handbook
Java Architect Handbook
Jan 20, 2026 · Backend Development

Why Replacing MyBatis with MyBatis-Plus Triggers LocalDateTime Errors—and How to Fix Them

The article details a step‑by‑step migration from MyBatis 3.5.0 to MyBatis‑Plus 3.1.1, explains why the conversion error for java.time.LocalDateTime appears after the switch, shows how to trace the root cause through stack traces, upgrades the mysql‑connector‑java to 5.1.37 (and later 5.1.42) to resolve the issue, and shares broader lessons about component upgrades and unexpected bugs.

Exception HandlingJDBCJava
0 likes · 10 min read
Why Replacing MyBatis with MyBatis-Plus Triggers LocalDateTime Errors—and How to Fix Them
Java Tech Enthusiast
Java Tech Enthusiast
Dec 4, 2025 · Databases

Why MySQL JDBC Stalls on Java Virtual Threads—and What to Do

The article examines how MySQL’s JDBC driver has been slow to adopt Java’s virtual thread (Loom) support compared with Oracle, PostgreSQL, MariaDB and SQL Server drivers, explains the technical reasons behind the delay, offers a workaround by replacing synchronized with ReentrantLock, and recommends upgrading to the 9.x driver for optimal performance and security.

Driver CompatibilityJDBCJava virtual threads
0 likes · 5 min read
Why MySQL JDBC Stalls on Java Virtual Threads—and What to Do
IT Services Circle
IT Services Circle
Oct 2, 2025 · Backend Development

How Spring Simplifies Transaction Management and Solves Common Pitfalls

This article explains the challenges of manual JDBC transaction handling, introduces Spring's unified transaction API with PlatformTransactionManager, TransactionDefinition, and TransactionStatus, demonstrates code examples for programmatic and declarative transactions, and discusses common pitfalls such as non‑public methods, self‑invocation, and exception handling.

JDBCJavaaop
0 likes · 17 min read
How Spring Simplifies Transaction Management and Solves Common Pitfalls
Architecture Digest
Architecture Digest
Sep 16, 2025 · Databases

How to Insert 300,000 Records Efficiently with MyBatis and JDBC

This article demonstrates how to insert 300,000 rows into a MySQL table using MyBatis and JDBC, compares naïve single‑batch and per‑row approaches, presents optimized batch‑processing code with configurable batch sizes and wait times, and shares practical performance‑tuning tips such as index handling and connection‑pool configuration.

Batch InsertJDBCMyBatis
0 likes · 14 min read
How to Insert 300,000 Records Efficiently with MyBatis and JDBC
Architect's Guide
Architect's Guide
Aug 22, 2025 · Backend Development

Can JDBC Batch Insertion Speed Up MySQL? 100M Row Performance Test

This article evaluates the efficiency of inserting massive data into MySQL using Java, comparing three strategies—MyBatis without transactions, plain JDBC with and without transactions, and JDBC batch processing—showing that batch processing combined with transactions yields the fastest insertion speed for hundreds of millions of rows.

Batch ProcessingJDBCJava
0 likes · 13 min read
Can JDBC Batch Insertion Speed Up MySQL? 100M Row Performance Test
macrozheng
macrozheng
Aug 5, 2025 · Databases

Migrate SpringBoot MyBatis from MySQL to PostgreSQL: A Complete Guide

This guide walks you through converting a SpringBoot + MyBatisPlus project from MySQL to PostgreSQL, covering driver setup, JDBC configuration changes, common SQL syntax pitfalls, and provides helper scripts for bulk column adjustments and default value settings.

JDBCPostgreSQLSQL pitfalls
0 likes · 12 min read
Migrate SpringBoot MyBatis from MySQL to PostgreSQL: A Complete Guide
IT Xianyu
IT Xianyu
Jul 22, 2025 · Databases

Master DataGrip: Connect, Insert, Update, and Delete PostgreSQL in Minutes

This guide walks you through using JetBrains DataGrip on AlmaLinux to connect to a PostgreSQL server, then demonstrates step‑by‑step how to insert, modify, and delete records via the graphical interface and optional SQL console, highlighting key settings and safety tips.

AlmaLinuxCRUDDataGrip
0 likes · 10 min read
Master DataGrip: Connect, Insert, Update, and Delete PostgreSQL in Minutes
Top Architect
Top Architect
Jul 5, 2025 · Databases

How I Cut XML‑to‑MySQL Import Time from 300 s to 4 s with Batch, RewriteBatchedStatements, and Multithreading

This article walks through optimizing a 60,000‑row XML‑to‑MySQL import by profiling the environment, measuring baseline performance, and applying JDBC batch rewriting, write aggregation, and asynchronous writes with LMAX Disruptor, ultimately reducing execution time from 300 seconds to about four seconds while keeping memory usage reasonable.

Batch ProcessingDisruptorJDBC
0 likes · 15 min read
How I Cut XML‑to‑MySQL Import Time from 300 s to 4 s with Batch, RewriteBatchedStatements, and Multithreading
Su San Talks Tech
Su San Talks Tech
Jun 25, 2025 · Databases

Why MyBatis‑Plus saveBatch Is Slow and How to Speed It Up 30×

This article analyzes the poor performance of MyBatis‑Plus saveBatch, compares it with single inserts, manual SQL batching, and JDBC executeBatch, and shows how enabling the rewriteBatchedStatements flag can dramatically improve batch insert speed.

Batch InsertJDBCmybatis-plus
0 likes · 10 min read
Why MyBatis‑Plus saveBatch Is Slow and How to Speed It Up 30×
Java Captain
Java Captain
May 9, 2025 · Databases

Using H2 Database in Embedded, Server, and Mixed Modes with Java

This article demonstrates how to use the H2 database with Java 1.8, covering embedded (file and memory) modes, server modes (Web, TCP, PG), mixed mode configurations, required dependencies, and provides complete JUnit test code examples for creating, accessing, and managing tables.

JDBCJUnitJava
0 likes · 17 min read
Using H2 Database in Embedded, Server, and Mixed Modes with Java
Java Captain
Java Captain
Mar 22, 2025 · Databases

Performance Comparison of UUID, Auto‑Increment, and Random Keys in MySQL

This article investigates MySQL's recommendation against using UUID or random Snowflake IDs as primary keys by creating three tables with different key strategies, running Spring Boot/JDBC performance tests, analyzing index structures, and concluding that auto‑increment keys offer superior insertion efficiency and fewer drawbacks.

Database IndexJDBCSpring Boot
0 likes · 10 min read
Performance Comparison of UUID, Auto‑Increment, and Random Keys in MySQL
Java Tech Enthusiast
Java Tech Enthusiast
Mar 13, 2025 · Databases

Performance Comparison of UUID vs Auto-Increment IDs in MySQL

Benchmarking three MySQL tables—auto_increment, UUID, and random long keys—shows that sequential auto_increment inserts are fastest, random keys are slower, and UUIDs dramatically lag due to random I/O and fragmentation, so use auto_increment for most workloads and reserve UUIDs only for required global uniqueness.

JDBCSpringBootauto_increment
0 likes · 10 min read
Performance Comparison of UUID vs Auto-Increment IDs in MySQL
JD Tech Talk
JD Tech Talk
Mar 7, 2025 · Fundamentals

1. Introduction to SPI

This article introduces Java's Service Provider Interface (SPI) mechanism, explaining its role in decoupling interface definitions from implementations, with examples in JDBC, Spring Boot, and Dubbo.

JDBCJava FundamentalsJava SPI
0 likes · 11 min read
1. Introduction to SPI
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
macrozheng
macrozheng
Feb 12, 2025 · Databases

Mastering Spring Boot Database Connection Pools: HikariCP vs Druid

This guide explains the need for JDBC connection pools, compares popular pools like HikariCP and Druid, and provides step‑by‑step configurations for both custom property files and Spring Boot auto‑configuration, helping you efficiently manage database connections in Java applications.

Database Connection PoolDruidHikariCP
0 likes · 20 min read
Mastering Spring Boot Database Connection Pools: HikariCP vs Druid
Java Tech Enthusiast
Java Tech Enthusiast
Feb 2, 2025 · Backend Development

Optimizing XML-to-MySQL Bulk Import with JDBC Batch and Disruptor

By switching from a naïve per‑record insert to JDBC batch writes with rewriteBatchedStatements and then off‑loading those batches to multiple consumer threads via a LMAX Disruptor ring buffer, the XML‑to‑MySQL import of 60,000 rows dropped from roughly 300 seconds to about 4 seconds while keeping memory usage modest.

BatchDisruptorJDBC
0 likes · 11 min read
Optimizing XML-to-MySQL Bulk Import with JDBC Batch and Disruptor
Pan Zhi's Tech Notes
Pan Zhi's Tech Notes
Jan 26, 2025 · Backend Development

Mastering Spring Transaction Management: From JDBC to @Transactional

This article explains the fundamentals of transaction handling in Spring Boot, covering both programmatic approaches with PlatformTransactionManager and TransactionTemplate and declarative management using @Transactional, while detailing common pitfalls, propagation and isolation settings, and providing concrete code examples.

Declarative TransactionJDBCProgrammatic Transaction
0 likes · 23 min read
Mastering Spring Transaction Management: From JDBC to @Transactional
dbaplus Community
dbaplus Community
Dec 8, 2024 · Databases

Why Do JDBC Queries Hang? Understanding Timeout Mechanisms and Fixes

The article explains how JDBC’s setQueryTimeout and Spring’s transaction timeout work, reveals why SQL statements can become indefinitely blocked in the socket read phase, and provides practical configuration steps—including driver URL parameters—to prevent such blocking in MySQL, SQL Server, and Oracle environments.

JDBCTimeoutconnection
0 likes · 11 min read
Why Do JDBC Queries Hang? Understanding Timeout Mechanisms and Fixes
Zhuanzhuan Tech
Zhuanzhuan Tech
Nov 28, 2024 · Backend Development

Boosting MyBatis-Plus Batch Insert Performance by 2000% with rewriteBatchedStatements and Pre‑Generated IDs

This article explains how to dramatically improve MyBatis-Plus batch insertion speed—up to 2000%—by enabling rewriteBatchedStatements, pre‑generating primary keys to handle foreign‑key relationships, applying proper JDBC batch settings, and using asynchronous multithreaded insertion with optimized connection‑pool and executor configurations.

Batch InsertID generationJDBC
0 likes · 21 min read
Boosting MyBatis-Plus Batch Insert Performance by 2000% with rewriteBatchedStatements and Pre‑Generated IDs
macrozheng
macrozheng
Oct 25, 2024 · Fundamentals

Why and How Java Breaks the Parent Delegation Model: Real-World Scenarios

This article explains the purpose of Java's parent‑delegation class‑loading mechanism, describes its three built‑in loaders, shows how custom loaders can override it, and explores common situations—such as JNDI, JDBC, Tomcat, and OSGi—where developers intentionally break the delegation for flexibility and modularity.

Custom ClassLoaderJDBCJNDI
0 likes · 11 min read
Why and How Java Breaks the Parent Delegation Model: Real-World Scenarios
Aikesheng Open Source Community
Aikesheng Open Source Community
Aug 27, 2024 · Databases

Understanding Repeatable Read in OceanBase Oracle Mode and the Correct JDBC Configuration

This article explains why the OBOracle "set transaction read only" command provides repeatable‑read semantics, evaluates the behavior of the JDBC conn.setReadOnly(true) setting, and shows how to achieve true repeatable‑read isolation by enabling the oracleChangeReadOnlyToRepeatableRead option in the OceanBase client.

JDBCOceanBaseOracle Mode
0 likes · 8 min read
Understanding Repeatable Read in OceanBase Oracle Mode and the Correct JDBC Configuration
Architect's Guide
Architect's Guide
Aug 18, 2024 · Backend Development

Why HikariCP Is So Fast: An In‑Depth Look at Its Design and Implementation

This article explains the core concepts of connection‑pool technology, details the architectural choices behind HikariCP such as dual HikariPool instances, FastList, custom ConcurrentBag, ThreadLocal caching, and byte‑code generation, and walks through the key source code that makes the pool exceptionally fast.

Backend DevelopmentConnection PoolHikariCP
0 likes · 15 min read
Why HikariCP Is So Fast: An In‑Depth Look at Its Design and Implementation
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
FunTester
FunTester
Jul 16, 2024 · Backend Development

Mastering JDBC: Best Practices for Secure and Efficient Java Database Access

This guide explains how to set up JDBC drivers, construct connection URLs, use PreparedStatement instead of Statement, iterate ResultSet safely, manage resources with try‑with‑resources, handle transactions, employ connection pools, and properly process SQLExceptions for robust Java database applications.

Connection PoolJDBCJava
0 likes · 15 min read
Mastering JDBC: Best Practices for Secure and Efficient Java Database Access
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
Su San Talks Tech
Su San Talks Tech
Jun 24, 2024 · Fundamentals

How to Break Java’s Parent Delegation Mechanism and Why It Matters

This article explains the purpose of Java's parent delegation class‑loader mechanism, describes its three built‑in loaders, and details common scenarios—such as JNDI, JDBC, Tomcat, and OSGi—where developers intentionally break the delegation to achieve flexibility and isolation.

Custom ClassLoaderJDBCJava
0 likes · 10 min read
How to Break Java’s Parent Delegation Mechanism and Why It Matters
FunTester
FunTester
May 29, 2024 · Databases

How Fast Can MySQL Write? Comparing Single-Row, Batch, and Multi-Row Inserts

This article evaluates MySQL single‑thread write performance by testing three insertion methods—continuous while‑loop inserts, JDBC batch processing, and multi‑row INSERT statements—detailing setup, code examples, and measured rows per minute to reveal their relative throughput and stability.

Batch InsertJDBCMulti-Row Insert
0 likes · 10 min read
How Fast Can MySQL Write? Comparing Single-Row, Batch, and Multi-Row Inserts
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
Java Tech Enthusiast
Java Tech Enthusiast
Apr 5, 2024 · Databases

Efficient Insertion of 300,000 Records Using MyBatis and JDBC

The article shows how to efficiently load 300,000 MySQL rows in Java by comparing MyBatis and plain-JDBC batch inserts, demonstrating that batching 1,000‑5,000 records per transaction with proper transaction control, connection pooling, and MySQL tuning reduces insertion time from hours to seconds.

Batch InsertJDBCJava
0 likes · 13 min read
Efficient Insertion of 300,000 Records Using MyBatis and JDBC
Top Architect
Top Architect
Mar 31, 2024 · Databases

Inserting 300,000 Records with MyBatis and JDBC: Batch vs Loop Approaches and Performance Optimization

This article demonstrates how to insert 300,000 rows into a MySQL table using MyBatis and JDBC, compares bulk batch insertion with per‑row looping, discusses packet size limits, transaction handling, performance metrics, and provides practical code snippets and optimization tips for efficient large‑scale data loading.

Batch InsertJDBCMyBatis
0 likes · 16 min read
Inserting 300,000 Records with MyBatis and JDBC: Batch vs Loop Approaches and Performance Optimization
dbaplus Community
dbaplus Community
Mar 26, 2024 · Backend Development

Why Java Apps Still Prefer Connection Pools Over IO Multiplexing for Database Access

Although IO multiplexing can boost performance, most Java applications continue to use connection pools like c3p0 or Tomcat because JDBC is blocking, DB protocols require multiple sessions, and integrating NIO drivers into existing web containers adds significant complexity and ecosystem constraints.

Connection PoolDatabase AccessIO Multiplexing
0 likes · 9 min read
Why Java Apps Still Prefer Connection Pools Over IO Multiplexing for Database Access
Aikesheng Open Source Community
Aikesheng Open Source Community
Jan 15, 2024 · Databases

What Software Developers Should Know About SQL

This article explains essential SQL concepts and common pitfalls—such as overusing SELECT *, choosing appropriate data types, respecting column order, handling NULL differences, leveraging database processing, using connection pools, and applying batch operations—to help developers write efficient, cost‑effective queries and advance their careers.

Data TypesJDBCSQL
0 likes · 11 min read
What Software Developers Should Know About SQL
FunTester
FunTester
Jan 9, 2024 · Databases

Boost Java Database Performance with PreparedStatement Batch Inserts

The article explains Java's PreparedStatement interface, highlighting its performance, security, and batch processing benefits, and provides a complete example of inserting multiple user records efficiently, while also discussing practical considerations such as batch size, transaction handling, error management, and optimization tips.

Batch ProcessingDatabase PerformanceJDBC
0 likes · 6 min read
Boost Java Database Performance with PreparedStatement Batch Inserts
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Jan 3, 2024 · Backend Development

Simplify Spring JDBC with the New Fluent JdbcClient API – A Hands‑On Guide

This article demonstrates how Spring 6.1’s new fluent JdbcClient API simplifies JDBC operations—showing environment setup, table creation, data‑source configuration, various placeholder and named‑parameter queries, custom result mapping, and CUD actions—while comparing it to the traditional JdbcTemplate approach.

BackendJDBCfluent-api
0 likes · 11 min read
Simplify Spring JDBC with the New Fluent JdbcClient API – A Hands‑On Guide
FunTester
FunTester
Dec 12, 2023 · Backend Development

Understanding ResultSet Resource Release and Statement Concurrency in MySQL JDBC

This article examines how MySQL's JDBC driver manages ResultSet resource release, the internal close mechanisms, and the concurrency limitations of Statement objects, illustrated with code excerpts and a Groovy virtual‑thread demo that reveals runtime exceptions when ResultSets are accessed after implicit closure.

JDBCJavaResultSet
0 likes · 8 min read
Understanding ResultSet Resource Release and Statement Concurrency in MySQL JDBC
Architect's Guide
Architect's Guide
Nov 3, 2023 · Databases

Performance Evaluation of Inserting Hundreds of Millions of Records into MySQL Using Java, MyBatis, and JDBC

This article experimentally compares three Java‑based insertion strategies—MyBatis without transaction, plain JDBC with and without transaction, and JDBC batch processing—with and without transactions, measuring how they affect the time required to insert tens of millions of rows into MySQL.

Batch ProcessingDatabase OptimizationJDBC
0 likes · 13 min read
Performance Evaluation of Inserting Hundreds of Millions of Records into MySQL Using Java, MyBatis, and JDBC
Su San Talks Tech
Su San Talks Tech
Oct 1, 2023 · Backend Development

How to Efficiently Insert 300,000 Records with MyBatis and JDBC

This article demonstrates multiple approaches—including direct MyBatis batch, per‑row insertion, and JDBC batch processing—to insert 300,000 user records into a MySQL table, compares their performance, and provides practical optimization tips such as batch size tuning, waiting intervals, index handling, and connection‑pool configuration.

Batch InsertJDBCJava
0 likes · 12 min read
How to Efficiently Insert 300,000 Records with MyBatis and JDBC
Java High-Performance Architecture
Java High-Performance Architecture
Sep 23, 2023 · Backend Development

From JDBC to MyBatis: Why Java Persistence Evolved and How to Optimize It

This article walks through the step‑by‑step JDBC query process, explains why wrapping JDBC in a framework like MyBatis is beneficial, analyzes MyBatis’s core components and execution flow, and presents five practical optimizations—from connection pooling to dynamic SQL and result caching—to improve Java backend performance.

Connection PoolingDesign PatternsJDBC
0 likes · 35 min read
From JDBC to MyBatis: Why Java Persistence Evolved and How to Optimize It
Java Architecture Diary
Java Architecture Diary
Sep 19, 2023 · Databases

Getting Started with Lealone: High‑Performance Java OLTP Database

This guide introduces Lealone, a Java open‑source high‑performance relational database for OLTP, outlines its key features, provides step‑by‑step instructions for downloading, starting, and using the server and client, shows JDBC CRUD examples, GUI client setup, and links to the author's technical blogs and source notes.

JDBCLealoneOLTP
0 likes · 10 min read
Getting Started with Lealone: High‑Performance Java OLTP Database
Top Architect
Top Architect
Sep 12, 2023 · Backend Development

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 entity, mapper and configuration files, comparing direct batch insertion, row‑by‑row insertion, and optimized batch strategies with MyBatis and JDBC, and summarizing performance results and best‑practice tips.

JDBCJavaMyBatis
0 likes · 15 min read
Efficient Insertion of 300,000 Records Using MyBatis and JDBC
Java High-Performance Architecture
Java High-Performance Architecture
Sep 12, 2023 · Backend Development

From JDBC to MyBatis: Transforming Low‑Level SQL Calls into a Powerful Persistence Framework

This article walks through the step‑by‑step evolution from raw JDBC queries to the MyBatis persistence layer, highlighting why JDBC should be wrapped, the design improvements MyBatis introduces, core components, execution flow, initialization mechanisms, and related design patterns, all illustrated with code snippets and diagrams.

Database AccessJDBCJava Persistence
0 likes · 37 min read
From JDBC to MyBatis: Transforming Low‑Level SQL Calls into a Powerful Persistence Framework
Architect's Tech Stack
Architect's Tech Stack
Sep 11, 2023 · Databases

Performance Evaluation of Large-Scale Data Insertion into MySQL Using MyBatis, JDBC, and Batch Processing

This article presents a systematic performance test of inserting massive data into MySQL, comparing three strategies—MyBatis lightweight insertion, direct JDBC (with and without transactions), and JDBC batch processing—showing how transaction handling and batch execution dramatically affect insertion speed.

Batch ProcessingJDBCJava
0 likes · 15 min read
Performance Evaluation of Large-Scale Data Insertion into MySQL Using MyBatis, JDBC, and Batch Processing
Top Architect
Top Architect
Sep 7, 2023 · Backend Development

From JDBC to MyBatis: Evolution, Design, and Optimization of the Persistence Layer

This article explains how JDBC evolves into MyBatis, detailing the seven-step JDBC query process, the motivations for encapsulating JDBC, MyBatis architecture, core components, initialization mechanisms, design patterns, and code examples, while offering optimization strategies for connection handling, SQL management, and result mapping.

Design PatternsJDBCMyBatis
0 likes · 39 min read
From JDBC to MyBatis: Evolution, Design, and Optimization of the Persistence Layer
Top Architect
Top Architect
Aug 29, 2023 · Databases

Efficient Insertion of 300,000 Records Using MyBatis and JDBC

This article explains how to insert 300,000 rows into a MySQL table efficiently by defining a User entity, configuring MyBatis mappers, and comparing three approaches—direct bulk insert, per‑row loop insert, and batch insert with configurable batch sizes—while also providing JDBC equivalents and performance tips.

JDBCJavaMyBatis
0 likes · 15 min read
Efficient Insertion of 300,000 Records Using MyBatis and JDBC
Architect's Guide
Architect's Guide
Aug 16, 2023 · Backend Development

Inserting 300,000 Records into MySQL Using MyBatis and JDBC: Strategies and Performance Comparison

This article demonstrates how to insert 300,000 rows into a MySQL table using MyBatis and plain JDBC, compares direct batch insertion, per‑row insertion, and staged batch processing, and provides practical performance tips such as batch size, waiting intervals, index handling, and connection‑pool configuration.

Batch InsertJDBCJava
0 likes · 14 min read
Inserting 300,000 Records into MySQL Using MyBatis and JDBC: Strategies and Performance Comparison
MaGe Linux Operations
MaGe Linux Operations
Aug 12, 2023 · Databases

Master DBeaver: Install, Connect, and Generate ER Diagrams Easily

This guide introduces DBeaver, a free Java‑based database management tool, covering its cross‑platform installation, JDBC connectivity to numerous relational and NoSQL databases, step‑by‑step connection setup, driver management, and how to generate ER diagrams from existing schemas.

DBeaverDatabase ManagementER Diagram
0 likes · 6 min read
Master DBeaver: Install, Connect, and Generate ER Diagrams Easily
Java Interview Crash Guide
Java Interview Crash Guide
Aug 5, 2023 · Databases

How to Efficiently Insert 300,000 Records with MyBatis and JDBC

This article demonstrates multiple approaches—including MyBatis batch inserts, per‑row inserts, and JDBC batch processing—to efficiently load 300,000 user records into a MySQL table, compares their performance, and provides practical optimization tips such as batch size, waiting intervals, and index handling.

Batch InsertJDBCJava
0 likes · 14 min read
How to Efficiently Insert 300,000 Records with MyBatis and JDBC
Architect
Architect
Jul 11, 2023 · Backend Development

Why Database Connection Pools Do Not Use IO Multiplexing

The article explains that database connection pools remain based on blocking I/O because JDBC was designed for BIO, managing session state per connection, and the ecosystem lacks a unified non‑blocking driver, making IO multiplexing technically possible but practically complex and rarely needed.

BackendConnection PoolIO Multiplexing
0 likes · 9 min read
Why Database Connection Pools Do Not Use IO Multiplexing
Java Architect Essentials
Java Architect Essentials
Jun 30, 2023 · Backend Development

Why Database Connection Pools Do Not Use IO Multiplexing in Java

Although IO multiplexing can improve performance, Java applications typically use traditional connection pools like c3p0 or Tomcat because JDBC is built on blocking I/O, DB sessions require separate connections, and integrating NIO would complicate program architecture, making connection pools the pragmatic, mature solution.

Connection PoolIO MultiplexingJDBC
0 likes · 9 min read
Why Database Connection Pools Do Not Use IO Multiplexing in Java
Su San Talks Tech
Su San Talks Tech
May 15, 2023 · Databases

Why MyBatis‑Plus Batch Inserts Are Slow and How to Speed Them Up

This article investigates the poor performance of MyBatis‑Plus batch inserts, compares several insertion strategies—including single inserts, saveBatch, manual SQL concatenation, and JDBC executeBatch—measures their execution times, and shows how enabling the rewriteBatchedStatements driver option dramatically improves throughput.

JDBCbatch-insertperformance
0 likes · 10 min read
Why MyBatis‑Plus Batch Inserts Are Slow and How to Speed Them Up
MaGe Linux Operations
MaGe Linux Operations
Apr 10, 2023 · Databases

Master DBeaver: Install, Connect, and Generate ER Diagrams Quickly

This guide introduces DBeaver, a free Java‑based database management tool, covering its cross‑platform installation, how to create connections for databases like PostgreSQL via JDBC, and how to generate ER diagrams from existing schemas, all illustrated with step‑by‑step screenshots.

DBeaverDatabase ManagementER Diagram
0 likes · 7 min read
Master DBeaver: Install, Connect, and Generate ER Diagrams Quickly
Code Ape Tech Column
Code Ape Tech Column
Dec 22, 2022 · Backend Development

Why Database Connection Pools Do Not Use IO Multiplexing (Java Interview Question)

The article explains why Java applications typically use traditional database connection pools instead of IO multiplexing, covering JDBC’s blocking design, session management, ecosystem maturity, and the complexity of integrating non‑blocking I/O with existing frameworks, while noting that a non‑blocking implementation is technically feasible.

BackendConnection PoolIO Multiplexing
0 likes · 9 min read
Why Database Connection Pools Do Not Use IO Multiplexing (Java Interview Question)
Architect's Tech Stack
Architect's Tech Stack
Dec 8, 2022 · Backend Development

Implementing Streaming Reads with MyBatis for Large-Scale Java Report Export

This article explains how to overcome export failures caused by large data volumes in a legacy Java system by switching from default full-result JDBC reads to a forward‑only streaming approach using MyBatis, detailing environment setup, configuration changes, and complete code examples for controller, service, DAO, and mapper layers.

JDBCJavaMyBatis
0 likes · 5 min read
Implementing Streaming Reads with MyBatis for Large-Scale Java Report Export
Java High-Performance Architecture
Java High-Performance Architecture
Dec 4, 2022 · Backend Development

How to Efficiently Import and Export Millions of Records with EasyExcel and POI

This article explains the challenges of large‑scale Excel import/export in Java, compares POI workbook implementations, introduces EasyExcel for high‑performance handling of hundreds of thousands to millions of rows, and provides detailed code examples for batch querying, sheet management, and JDBC batch insertion with transaction control.

Batch ProcessingData ExportJDBC
0 likes · 23 min read
How to Efficiently Import and Export Millions of Records with EasyExcel and POI
Java Architect Essentials
Java Architect Essentials
Nov 24, 2022 · Backend Development

How to Efficiently Import and Export Millions of Rows with POI and EasyExcel

This article explains how to overcome the limitations of traditional Apache POI when handling massive Excel import/export tasks by comparing POI workbook types, selecting the appropriate one, and using EasyExcel together with batch database queries and JDBC transactions to process up to three million rows efficiently.

Apache POIBatch ProcessingJDBC
0 likes · 23 min read
How to Efficiently Import and Export Millions of Rows with POI and EasyExcel
vivo Internet Technology
vivo Internet Technology
Nov 2, 2022 · Backend Development

Understanding Java SPI: Principles, Implementation, and Applications

Java SPI is a lightweight plug‑in mechanism that decouples service contracts from implementations using a META‑INF/services configuration file and the ServiceLoader class, enabling dynamic loading of providers as demonstrated with simple examples and applied in frameworks such as JDBC, Spring Boot, Apache Commons Logging, and Dubbo.

DubboJDBCJava
0 likes · 33 min read
Understanding Java SPI: Principles, Implementation, and Applications
Top Architect
Top Architect
Oct 20, 2022 · Databases

Performance Evaluation of Inserting Billion‑Scale Data into MySQL Using Java: MyBatis vs JDBC vs Batch Processing

This article presents a detailed performance test of inserting massive data into MySQL with Java, comparing three strategies—MyBatis lightweight insertion without transactions, direct JDBC handling with and without transactions, and JDBC batch processing—showing timing results for millions of rows and offering practical recommendations for high‑throughput data loading.

Batch ProcessingDatabase OptimizationJDBC
0 likes · 14 min read
Performance Evaluation of Inserting Billion‑Scale Data into MySQL Using Java: MyBatis vs JDBC vs Batch Processing
Programmer DD
Programmer DD
Aug 25, 2022 · Databases

Why MySQL JDBC Driver Misinterprets CST and How to Fix the 13‑Hour Time Shift

This article investigates a puzzling 13‑hour time discrepancy caused by the MySQL 8.x JDBC driver interpreting the ambiguous CST timezone as America/Chicago, explains the underlying driver code and JDK timezone mappings, and provides multiple practical solutions including server settings, driver parameters, and official fixes.

CSTJDBCJava
0 likes · 17 min read
Why MySQL JDBC Driver Misinterprets CST and How to Fix the 13‑Hour Time Shift
Java Tech Enthusiast
Java Tech Enthusiast
May 23, 2022 · Backend Development

Implementing a Simple Java ORM Framework from Scratch

The article walks through building a lightweight Java ORM framework from scratch, showing JDBC drawbacks, defining XML configuration and mapper files, implementing core components like SqlSessionFactory, SimpleExecutor, and reflection‑based parameter and result mapping, and demonstrating a working test that returns POJOs.

FrameworkJDBCJava
0 likes · 12 min read
Implementing a Simple Java ORM Framework from Scratch
dbaplus Community
dbaplus Community
May 16, 2022 · Databases

Master MySQL 8.0.28: Install, Configure, and Connect via JDBC

This guide walks beginners through downloading, installing, and configuring MySQL 8.0.28 on Windows and Linux, covering environment variables, service management, password recovery, user and role creation, and JDBC connection setup with Maven, providing detailed commands, code snippets, and troubleshooting tips for a complete setup.

ConfigurationInstallationJDBC
0 likes · 29 min read
Master MySQL 8.0.28: Install, Configure, and Connect via JDBC
ByteDance Data Platform
ByteDance Data Platform
May 11, 2022 · Big Data

How to Build a High‑Performance SparkSQL Server with Hive JDBC Compatibility

This article explains how to design and implement a SparkSQL server that lowers usage barriers and boosts efficiency by supporting standard JDBC interfaces, integrating Hive Server2 protocols, handling multi‑tenant authentication, managing Spark job lifecycles, and providing high‑availability through Zookeeper coordination.

HiveJDBCServer Architecture
0 likes · 15 min read
How to Build a High‑Performance SparkSQL Server with Hive JDBC Compatibility
Top Architect
Top Architect
May 3, 2022 · Databases

ShardingSphere-JDBC Overview, MySQL Master‑Slave Replication Setup, Binlog & Redo Log Review, and Sharding‑JDBC Read/Write Splitting & Sharding Implementation

This article provides a comprehensive tutorial on using ShardingSphere‑JDBC, configuring MySQL master‑slave replication with Docker, explaining binlog and redo‑log mechanisms, demonstrating two‑phase commit, and detailing Sharding‑JDBC read/write splitting and sharding configurations with code examples.

JDBCShardingSpheredatabase
0 likes · 23 min read
ShardingSphere-JDBC Overview, MySQL Master‑Slave Replication Setup, Binlog & Redo Log Review, and Sharding‑JDBC Read/Write Splitting & Sharding Implementation
dbaplus Community
dbaplus Community
Apr 11, 2022 · Databases

Why JDBC executeBatch Sends Single Queries and How to Enable True Batch Execution in MySQL

This article explains why MySQL 8.0’s JDBC driver processes executeBatch() calls as separate statements, demonstrates the root cause in the driver’s rewriteBatchedStatements logic, and shows how configuring rewriteBatchedStatements=true (and optionally allowMultiQueries=true) enables genuine batch execution.

Batch ProcessingJDBCallowMultiQueries
0 likes · 6 min read
Why JDBC executeBatch Sends Single Queries and How to Enable True Batch Execution in MySQL
Top Architect
Top Architect
Apr 2, 2022 · Backend Development

Can IO Multiplexing Replace Connection Pools for Database Access?

The article explains why database connections in Java applications usually rely on connection pools instead of IO multiplexing, discusses the blocking nature of JDBC, outlines how non‑blocking drivers could be built, and examines the practical and architectural reasons that prevent IO multiplexing from becoming the default.

Database Connection PoolIO MultiplexingJDBC
0 likes · 7 min read
Can IO Multiplexing Replace Connection Pools for Database Access?
Architecture Digest
Architecture Digest
Mar 27, 2022 · Backend Development

Why Database Connections Are Not Integrated with IO Multiplexing by Default

The article explains that although IO multiplexing can improve performance, database access in Java typically relies on JDBC and connection pools, which are built on blocking I/O, making it difficult to combine DB connections with IO multiplexing without major architectural changes.

IO MultiplexingJDBCdatabase connections
0 likes · 7 min read
Why Database Connections Are Not Integrated with IO Multiplexing by Default
Programmer DD
Programmer DD
Mar 2, 2022 · Databases

Why DBeaver Is the Free Alternative to Navicat After the Malware Scare

Following the Navicat Premium malware incident, this guide introduces DBeaver—a free, open‑source, multi‑platform database management tool, explains its features, installation steps, driver setup, and where to obtain both community and commercial versions.

DBeaverDatabase ManagementJDBC
0 likes · 4 min read
Why DBeaver Is the Free Alternative to Navicat After the Malware Scare