uorm 0.8.0

Rust 下的轻量级 ORM 框架,借鉴了 Java MyBatis 的设计理念,强调 SQL 与业务逻辑分离。它结合 Rust 的类型系统与宏机制,支持编写原生 SQL 并自动映射结果,兼容 async/await,兼顾性能与可控性。
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<mapper namespace="user">
    <sql id="create_table" databaseType="mysql">
        CREATE TABLE IF NOT EXISTS kb_document_chunk (
            id BIGINT PRIMARY KEY AUTO_INCREMENT,
            state INT NOT NULL
        )
    </sql>
    <insert id="insert_chunk" databaseType="mysql" returnKey="true">
        INSERT INTO kb_document_chunk(state) VALUES (#{state})
    </insert>
    <select id="state_stats" databaseType="mysql">
        SELECT 
            COUNT(*) as total, 
            COALESCE(SUM(CASE WHEN state = 3 THEN 1 ELSE 0 END), 0) as completedCount, 
            COALESCE(SUM(CASE WHEN state = 4 THEN 1 ELSE 0 END), 0) as failedCount 
        FROM kb_document_chunk
    </select>
</mapper>