Tangyuan介紹

tangyuan


1. 項目介紹

TangYuan是一個基于Java的持久層框架。提供的持久層框架包括SQL Maps和Data Access Objects(DAO)

2. 項目特性

  • 數(shù)據(jù)源相關(guān)

支持多數(shù)據(jù)源,讓讀寫分離,多數(shù)據(jù)庫的應(yīng)用變得簡單。支持?jǐn)?shù)據(jù)源組,在分庫分表的大數(shù)據(jù)量應(yīng)用環(huán)境將更加方便。

  • 事務(wù)相關(guān)

原生的支持事務(wù)的傳播和隔離,無需依托第三方框架,同時支持多數(shù)據(jù)源的JDBC事務(wù)。

  • 緩存相關(guān)

原生提供多種緩存的的支持,并同時支持多種緩存的混合使用。

  • 數(shù)據(jù)映射相關(guān)

支持用用戶自定義的配置,同時提供提供基于規(guī)則的映射配置。

  • 分庫分表支持

原生的支持基于Hash、Range、Mod、Random模式的分庫分表設(shè)置,同時支持用戶自定義的分庫分表策略。

  • 數(shù)據(jù)訪問相關(guān)

支持單條的SQL語句訪問,同時并支持復(fù)雜的組合SQL語句訪問,讓數(shù)據(jù)庫的應(yīng)用開發(fā)更為高效、簡單。

  • Mongo訪問相關(guān)

3. 系統(tǒng)架構(gòu)

系統(tǒng)架構(gòu)圖
系統(tǒng)架構(gòu)圖

4. 版本和Maven依賴

<dependency>
    <groupId>org.xson</groupId>
    <artifactId>tangyuan</artifactId>
    <version>1.0.0</version>
</dependency>

5. 代碼片段

<sql-service id="updateProjectP2" dsKey="writetvr" txRef="tx_02">
    <if test="{through} == 2">
        <update rowCount="{nCount}">
            update project set
                project_state = 25, 
                audit_time =  #{audit_time|now()},
                update_time = #{update_time|now()}
            where 
                project_sn = #{project_sn} AND 
                project_ctrl_state = 1 AND 
                project_state = 20
        </update>
        <exception test="{nCount} != 1" code="-1" message="項目審核失敗"/>
        
        <selectOne resultKey="{project}">
            select * from project where project_sn = #{project_sn}
        </selectOne>
        <if test="{project.reservation_mode} == 2">
            <insert>
                INSERT INTO project_apply (
                    project_sn, provider_id, provider_name, bidding_amount,
                    create_time, apply_state, reservation_state
                ) VALUES (
                    #{project_sn}, #{project.provider_id}, #{project.provider_name}, #{bidding_amount|0}, 
                    #{create_time|now()}, 2, 10
                )                            
            </insert>            
        </if>
    </if>
    <else>
        <update rowCount="{nCount}">
            update project set
                task_ctrl_state = 2, 
                audit_no_time = #{audit_no_time|now()},
                update_time = #{update_time|now()}
            where 
                project_sn = #{project_sn} AND 
                task_ctrl_state = 1
        </update>
    </else>
</sql-service>

6. 使用教程

使用教程和技術(shù)設(shè)計

7. 聯(lián)系交流

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容