Storm
A stupidly simple Java/MySQL ORM with native Hikaricp, with dialect adaptations for MariaDB and Sqlite
Install / Use
/learn @Mindgamesnl/StormREADME
<p align="center">
<img src="https://user-images.githubusercontent.com/10709682/156048080-34987a54-d433-4931-acc9-0fc416b94f8b.png" />
</p>
Storm is a fast, easy to use, no-bullshit opinionated Java ORM inspired by Doctrine. The main goal of this project is to allow future-mats to easily implement Sql-based storage and relation solutions in my projects and easily prototype concepts, without harming production usability.
Features
- Automatic schema creation and updates based on models
- Built in support for java types with an API to add your own
- Support for OneToMany mappings with arraylist columns
- Out-of-the-box adapters for Sqlite (flat file), Sqlite (Memory) and HiariCP-MariaDB
- Dynamic SQL Dialects depending on the target platform
- Incredibly easy to use API
- Native mappings and support for:
- Boolean
- Double
- Float
- Integer
- Long
- String
- UUID
- Instant
- Any java object as Blob (HashMap, etc)
Performance
Tests ran on my main workstation, targeting a Sqlite flatfile and memory database.

Examples
// create a model
@Data
@Table(name = "user")
class User extends StormModel {
@Column
private String userName;
@Column
private Integer score;
@Column(
type = ColumnType.ONE_TO_MANY,
references = {SocialPost.class},
matchTo = "poster"
)
private List<SocialPost> posts;
@Column
private UUID minecraftUserId = UUID.randomUUID();
@Column(
name = "email",
defaultValue = "default@craftmend.com"
)
private String emailAddress;
}
public class SocialPost extends StormModel {
@Column(
notNull = true
)
private String content;
@Column(
keyType = KeyType.FOREIGN,
references = {User.class}
)
private Integer poster;
}
// create an instance
Storm storm = new Storm(new SqliteDriver(dataFile));
// register one table
storm.migrate(new User());
storm.migrate(new SocialPost());
storm.runMigrations();
// create a new user
User mindgamesnl = new User();
mindgamesnl.setUserName("Mindgamesnl");
mindgamesnl.setEmailAddress("mats@toetmats.nl");
mindgamesnl.setScore(9009);
// save or update the user
storm.save(mindgamesnl);
// query for users
Collection<User> justMindgamesnl =
storm.buildQuery(User.class)
.where("user_name", Where.EQUAL, "Mindgamesnl")
.limit(1)
.execute()
.join();
Usage with HikariCP
// hikari
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/simpsons");
config.setUsername("bart");
config.setPassword("51mp50n");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
Storm storm = new Storm(new HikariDriver(config));
Related Skills
feishu-drive
339.5k|
things-mac
339.5kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
339.5kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
yu-ai-agent
2.0k编程导航 2025 年 AI 开发实战新项目,基于 Spring Boot 3 + Java 21 + Spring AI 构建 AI 恋爱大师应用和 ReAct 模式自主规划智能体YuManus,覆盖 AI 大模型接入、Spring AI 核心特性、Prompt 工程和优化、RAG 检索增强、向量数据库、Tool Calling 工具调用、MCP 模型上下文协议、AI Agent 开发(Manas Java 实现)、Cursor AI 工具等核心知识。用一套教程将程序员必知必会的 AI 技术一网打尽,帮你成为 AI 时代企业的香饽饽,给你的简历和求职大幅增加竞争力。
