<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 合并多個業務庫 2 在系統中使用ConditionalSQLManager,可以把多個SQLManager合并成一個,比如上個例子的訂單和商品倆個SQLManager,可以做合并。ConditionalSQLManager 代理了SQLManager的操作,并根據傳入的Entity 如下例子來自源碼[S6MoreDatabase.conditional](https://gitee.com/xiandafu/beetlsql/blob/master/sql-samples/sql-sample-quickstart/src/main/java/org/beetl/sql/test/S6MoreDatabase.java) ```java SQLManager a = SampleHelper.init(); SQLManager b = SampleHelper.init(); Map<String, SQLManager> map = new HashMap<>(); map.put("a", a); map.put("b", b); SQLManager sqlManager = new ConditionalSQLManager(a, map); //不同用戶,用不同sqlManager操作,存入不同的數據庫 UserData user = new UserData(); user.setName("hello"); user.setDepartmentId(2); sqlManager.insert(user); DepartmentData dept = new DepartmentData(); dept.setName("dept"); sqlManager.insert(dept); ``` ConditionalSQLManager 默認是通過操作POJO上的@TargetSQLManager注解來區分 ```java @Data @Table(name = "sys_user") @TargetSQLManager("a") public static class UserData { @Auto private Integer id; private String name; private Integer departmentId; } @Data @Table(name = "department") @TargetSQLManager("b") public static class DepartmentData { @Auto private Integer id; private String name; } ``` Conditional接口決定了使用何種數據庫,以ConditionalSQLManager.DefaultConditional為例子,會返回真正的SQLManager ```java public static class DefaultConditional implements Conditional{ @Override public SQLManager decide(Class pojo,SQLManager defaultSQLManager, Map<String, SQLManager> sqlManagerMap) { TargetSQLManager an = (TargetSQLManager)pojo.getAnnotation(TargetSQLManager.class); if(an==null){ return defaultSQLManager; } String sqlManagerName = an.value(); SQLManager target = sqlManagerMap.get(sqlManagerName); if(target==null){ throw new IllegalArgumentException("未發現目標sqlManager "+sqlManagerName+" from "+sqlManagerMap.keySet()); } return target; } } ``` 你也可以定義一個自己的Conditional,來決定使用那個SQLManager進行操作,甚至參考ConditionalSQLManager實現自己的對SQLManager的代理封裝
                  <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>

                              哎呀哎呀视频在线观看