<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### ResultSetMapper ResultSetMapper對象相當于告訴BeetlSQL,不需要BeetlSQL來映射,交給ResultSetMapper來實現,比如一個select join結果需要映射到復雜的對象上(比如一個用戶有多個角色,屬于多個組織),BeetlSQL自帶了JsonConfigMapper實現,用json來申明如何映射,類似MyBatis用xml來申明如何映射 ```java String sql = "select d.id id,d.name name ,u.id u_id,u.name u_name " + " from department d join beetlSQLSysUser u on d.id=u.department_id where d.id=?"; Integer deptId = 1; SQLReady ready = new SQLReady(sql,new Object[]{deptId}); List<DepartmentInfo> list = sqlManager.execute(ready,DepartmentInfo.class); @Data @ResultProvider(JsonConfigMapper.class) @JsonMapper( "{'id':'id','name':'name','users':{'id':'u_id','name':'u_name'}}") public static class DepartmentInfo { Integer id; String name; List<UserInfo> users; } ``` 注解ResultProvider提供了一個ResultSetMapper實現類,@JsonMapper是一個配置注解,與ResultProvider搭檔,提供額外配置,JsonMapper支持配置在java代碼里,或者通過文件配置 > Pojo類上所有注解都在`ClassAnnotation`類上存放,ResultProvider和JsonMapper 被緩存在ClassAnnotation類里,因為JsonMapper注解被`ProviderConfig`注解所申明,所以他倆是一對一 > > ``` > @ProviderConfig() > public @interface JsonMapper { > String value() default ""; > String resource() default ""; > } > > ``` > > ClassAnnotation 不僅僅尋找ResultProvider注解,也尋找使用了@ProviderConfig()的注解,并作為配置注解放在一起。BeetlSQL大量使用這種注解的注解,來提供擴展機制 JsonConfigMapper定義如下 ```java public class JsonConfigMapper extends ConfigJoinMapper { protected AttrNode parse(ExecuteContext ctx, Class target, ResultSetMetaData rsmd, Annotation config){ } } ``` ConfigJoinMapper 是基類,他會根據AttrNode描述來做映射,因此JsonConfigMapper只需要讀取config注解申明的配置,然后轉化成AttrNode即可,如果你想讓配置是yml或者xml,可以實現parse方法即可
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看