最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于resty orm的ActiveRecord操作數(shù)據(jù)指南

 更新時間:2022年03月07日 13:02:03   作者:gitbooks  
這篇文章主要為大家介紹了基于resty orm的ActiveRecord操作數(shù)據(jù)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

Active Record(中文名:活動記錄)是一種領(lǐng)域模型模式,特點是一個模型類對應(yīng)關(guān)系型數(shù)據(jù)庫中的一個表,而模型類的一個實例對應(yīng)表中的一行記錄。

Active Record 和 Row Gateway (行記錄入口)十分相似,但前者是領(lǐng)域模型,后者是一種數(shù)據(jù)源模式。關(guān)系型數(shù)據(jù)庫往往通過外鍵來表述實體關(guān)系,Active Record 在數(shù)據(jù)源層面上也將這種關(guān)系映射為對象的關(guān)聯(lián)和聚集。

Active Record 適合非常簡單的領(lǐng)域需求,尤其在領(lǐng)域模型和數(shù)據(jù)庫模型十分相似的情況下。如果遇到更加復(fù)雜的領(lǐng)域模型結(jié)構(gòu)(例如用到繼承、策略的領(lǐng)域模型),往往需要使用分離數(shù)據(jù)源的領(lǐng)域模型,結(jié)合 Data Mapper (數(shù)據(jù)映射器)使用。

Active Record 驅(qū)動框架一般兼有 ORM 框架的功能,但 Active Record 不是簡單的 ORM,正如和 Row Gateway 的區(qū)別。

著名的例子是全棧(Full Stack) Web 開發(fā)框架 Ruby on Rails ,其默認(rèn)使用一個純 Ruby 寫成的 Active Record 框架來驅(qū)動 MVC 中的模型層。

在Resty中ActiveRecord表現(xiàn)為兩部分:

Model

映射指定的表數(shù)據(jù),數(shù)據(jù)存儲在一個attrs的map中,map的key不區(qū)分大小寫,適合具有固定業(yè)務(wù)的實體,可動態(tài)切換數(shù)據(jù)源,內(nèi)部實現(xiàn)了屬性檢測和Query Cache,包含了基本的數(shù)據(jù)操作方法

Record

除了具有model的全部特征外,還是一個動態(tài)的映射,適合動態(tài)的數(shù)據(jù)表業(yè)務(wù),不需要建立指定的model來映射數(shù)據(jù)

使用方法

1. 在application.properties 配置jdbc連接,連接池等

##druid plugin auto load,default 為數(shù)據(jù)源名字
##druid plugin auto load
db.default.url=jdbc:mysql://127.0.0.1/example?useUnicode=true&characterEncoding=UTF-8
db.default.user=dev
db.default.password=dev1010
db.default.dialect=mysql
#c3p0配置
c3p0.default.minPoolSize=3
c3p0.default.maxPoolSize=20
#druid配置
#druid.default.initialSize=10
#druid.default.maxPoolPreparedStatementPerConnectionSize=20
#druid.default.timeBetweenConnectErrorMillis=1000
#druid.default.filters=slf4j,stat,wall
#flyway database migration auto load
flyway.default.valid.clean=true
flyway.default.migration.auto=true
flyway.default.migration.initOnMigrate=true

2. 在AppConfig類中配置ActiveRecordPlugin,來加載連接和映射model

public void configPlugin(PluginLoader pluginLoader) {
    C3p0DataSourceProvider cdsp = new C3p0DataSourceProvider("default");
    ActiveRecordPlugin activeRecordCdsp = new ActiveRecordPlugin(cdsp, true);
    //映射的model必須能被掃描到 
    activeRecordCdsp.addIncludePaths("cn.dreampie.orm");
    pluginLoader.add(activeRecordCdsp);
}

3. 編寫一個Model類映射數(shù)據(jù)表,需要繼承Model

  //假設(shè)cn.dreampie.orm目錄下有個model叫User
  //使用table注解來映射指定的數(shù)據(jù)表,generatedKey是自增主鍵(自增方式分為數(shù)據(jù)庫自增和自定義生成器自增,如uuid),primaryKey非自增主鍵,generated=true 表示使用自定義的生成器生成主鍵,cached 表示緩存
  @Table(name = "sec_user",generatedKey="id", primaryKey = "sid",generated=true, cached = true)
  public class User extends Model<User> {
    public static User dao = new User();
  }

4. 編寫一個Resouce來執(zhí)行某個數(shù)據(jù)操作

如果你只使用了orm部分,在其他地方也可以執(zhí)行該操作

@API("/users")
public class UserResource extends ApiResource {
  /**
   * 查詢一個user的集合
   */
  @GET
  public List<User> findAll() {
    //使用Record 達(dá)到相同的效果,而不需要編寫User.java
    //Record userDAO=new Record("sec_user","id,sid",true,true);
    //userDAO.findAll();
    return User.dao.findAll();
  }
}

以上就是基于resty orm的ActiveRecord操作數(shù)據(jù)指南的詳細(xì)內(nèi)容,更多關(guān)于resty orm的ActiveRecord數(shù)據(jù)操作的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java 相交鏈表的實現(xiàn)示例

    java 相交鏈表的實現(xiàn)示例

    本文主要介紹了java 相交鏈表的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java 實現(xiàn)簡單Socket 通信的示例

    Java 實現(xiàn)簡單Socket 通信的示例

    這篇文章主要介紹了Java 實現(xiàn)簡單Socket 通信的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • java中@EnableAutoConfiguration注解使用

    java中@EnableAutoConfiguration注解使用

    在Spring Boot框架中,@EnableAutoConfiguration是一種非常重要的注解,本文就來介紹一下java中@EnableAutoConfiguration注解使用,感興趣的可以了解一下
    2023-11-11
  • MyBatis 如何獲取子類的屬性

    MyBatis 如何獲取子類的屬性

    這篇文章主要介紹了MyBatis 如何獲取子類的屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot熱重啟配置詳解

    SpringBoot熱重啟配置詳解

    在本篇文章里小編給大家分享的是關(guān)于SpringBoot熱重啟配置知識點內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • Mybatis以main方法形式調(diào)用dao層執(zhí)行代碼實例

    Mybatis以main方法形式調(diào)用dao層執(zhí)行代碼實例

    這篇文章主要介紹了Mybatis以main方法形式調(diào)用dao層執(zhí)行代碼實例,MyBatis 是一款優(yōu)秀的持久層框架,MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作,需要的朋友可以參考下
    2023-08-08
  • Java停止線程的3種方法

    Java停止線程的3種方法

    這篇文章主要分享Java停止線程的3種方法,分別是自定義中斷標(biāo)識符,停止線程、使用線程中斷方法interrupt停止線程、使用stop停止線程。下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-05-05
  • java數(shù)據(jù)結(jié)構(gòu)之java實現(xiàn)棧

    java數(shù)據(jù)結(jié)構(gòu)之java實現(xiàn)棧

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)棧,需要的朋友可以參考下
    2014-03-03
  • java教程之java繼承示例詳解

    java教程之java繼承示例詳解

    這篇文章主要介紹了java繼承示例詳解,需要的朋友可以參考下
    2014-04-04
  • 詳解Spring Boot 打包分離依賴JAR 和配置文件

    詳解Spring Boot 打包分離依賴JAR 和配置文件

    這篇文章主要介紹了Spring Boot 打包分離依賴JAR 和配置文件,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論

历史| 密云县| 双桥区| 普定县| 彭山县| 大竹县| 鹤山市| 军事| 犍为县| 祁东县| 保德县| 镇远县| 新兴县| 吴堡县| 榆社县| 上饶市| 盐边县| 大港区| 积石山| 长春市| 白朗县| 五台县| 衡南县| 百色市| 甘孜县| 石棉县| 贵南县| 德钦县| 四平市| 承德市| 当阳市| 开江县| 南澳县| 宝应县| 余干县| 股票| 出国| 延寿县| 政和县| 九江县| 南江县|