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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### MySqlStyle 例子 ```java public class MySqlStyle extends AbstractDBStyle { RangeSql rangeSql = null; public MySqlStyle() { rangeSql = new OffsetLimitRange(this); } @Override public String getName() { return "mysql"; } @Override public int getDBType() { return DBType.DB_MYSQL; } @Override public RangeSql getRangeSql() { return this.rangeSql; } @Override public int getIdType(Class c,String idProperty) { List<Annotation> ans = BeanKit.getAllAnnotation(c, idProperty); int idType = DBType.ID_AUTO; //默認是自增長 for (Annotation an : ans) { if (an instanceof AutoID) { idType = DBType.ID_AUTO; break;// 優先 } else if (an instanceof SeqID) { //my sql not support } else if (an instanceof AssignID) { idType = DBType.ID_ASSIGN; } } return idType; } ``` 對于傳統的數據庫,需要重寫的方法較少,主要是 * getIdType ,選擇id的主鍵類型,mysql既可以是是@AutoId,也可以是@AssingId,這取決于其主鍵屬性上的注解,如果同時有@AutoId或者@AssingId,則優先使用AutoId * getName ,返回數據庫名字,如mysql,sqlserver2010,sqlserver2015等 * getDBType ,返回任意一個數字類型,默認的都在DBType類里 * rangeSql,用來實現翻頁的,輸入是jdbc sql,或者是模板sql,輸出是一個翻頁語句,本例子實現類是OffsetLimitRange,定義如下 ```java public class OffsetLimitRange implements RangeSql { AbstractDBStyle sqlStyle = null; public OffsetLimitRange(AbstractDBStyle style){ this.sqlStyle = style; } @Override public String toRange(String jdbcSql, Object objOffset , Long limit) { Long offset = ((Number)objOffset).longValue(); offset = PageParamKit.mysqlOffset(sqlStyle.offsetStartZero, offset); StringBuilder builder = new StringBuilder(jdbcSql); builder.append(" limit ").append(offset).append(" , ").append(limit); return builder.toString(); } @Override public String toTemplateRange(Class mapping,String template) { return template + sqlStyle.getOrderBy() + " \nlimit " + sqlStyle.appendExpress( DBAutoGeneratedSql.OFFSET ) + " , " + sqlStyle.appendExpress(DBAutoGeneratedSql.PAGE_SIZE); } @Override public void addTemplateRangeParas(Map<String, Object> paras, Object objOffset, long size) { Long offset = (Long)objOffset; paras.put(DBAutoGeneratedSql.OFFSET, offset - (sqlStyle.offsetStartZero ? 0 : 1)); paras.put(DBAutoGeneratedSql.PAGE_SIZE, size); } } ``` * toRange,返回一個JDBC的翻頁SQL,對于MySQL,H2等支持limit&offset的來說,非常簡單,后面添加limit offsetXXX,limitXX即可 * toTemplateRange, 針對模板sql翻頁語句,類似toRange方法,但使用的是倆個變量,變量名的定義是DBAutoGeneratedSql.OFFSET,DBAutoGeneratedSql.PAGE_SIZE * addTemplateRangeParas, 這個是同toTemplateRange匹配,提供了DBAutoGeneratedSql.OFFSET的值,以及DBAutoGeneratedSql.PAGE_SIZE的值
                  <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>

                              哎呀哎呀视频在线观看