基于resty orm的ActiveRecord操作数据指南

网友投稿 272 2022-08-23


基于resty orm的ActiveRecord操作数据指南

目录在Resty中ActiveRecord表现为两部分:ModelRecord使用方法1.在application.properties配置jdbc连接,连接池等2.在AppCzGVtmwonfig类中配置ActiveRecordPlugin,来加载连接和映射model3.编写一个Model类映射数据表,需要继承Model4.编写一个Resouce来执行某个数据操作

Active Record(中文名:活动记录)是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。

Active Record 和 Row Gateway (行记录入口)十分相似,但前者是领域模型,后者是一种数据源模式。关系型数据库往往通过外键来表述实体关系,Active Record 在数据源层面上也将这种关系映射为对象的关联和聚集。

Active Record 适合非常简单的领域需求,尤其在领域模型和数据库模型十分相似的情况下。如果遇到更加复杂的领域模型结构(例如用到继承、策略的领域模型),往往需要使用分离数据源的领域模型,结合 Data Mapper (数据映射器)使用。

Achttp://tive Record 驱动框架一般兼有 ORM 框架的功能,但 Active Record 不是简单的 ORM,正如和 Row Gateway 的区别。

著名的例子是全栈(Full Stack) Web 开发框架 Ruby on Rails ,其默认使用一个纯 Ruby 写成的 Active Record 框架来驱动 MVC 中的模型层。

在Resty中ActiveRecord表现为两部分:

Model

映射指定的表数据,数据存储在一个attrs的map中,map的key不区分大小写,适合具有固定业务的实体,可动态切换数据源,内部实现了属性检测和Query Cache,包含了基本的数据操作方法

Record

除了具有model的全部特征外,还是一个动态的映射,适合动态的数据表业务,不需要建立指定的model来映射数据

使用方法

1. 在application.properties 配置jdbczGVtmw连接,连接池等

##druid plugin auto load,default 为数据源名字

##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类映射数据表,需要继承Model

//假设cn.dreampie.orm目录下有个model叫User

//使用table注解来映射指定的数据表,generatedKey是自增主键(自增方式分为数据库自增和自定义生成器自增,如uuid),primaryKey非自增主键,generated=true 表示使用自定义的生成器生成主键,cached 表示缓存

@Table(name = "sec_user",generatedKey="id", primaryKey = "sid",generated=true, cached = true)

public class User extends Model {

public static User dao = new User();

}

4. 编写一个Resouce来执行某个数据操作

如果你只使用了orm部分,在其他地方也可以执行该操作

@API("/users")

public class UserResource extends ApiResource {

/**

* 查询一个user的集合

*/

@GET

public List findAll() {

//使用Record 达到相同的效果,而不需要编写User.java

//Record userDAO=new Record("sec_user","id,sid",true,true);

//userDAO.findAll();

return User.dao.findAll();

}

}

以上就是基于resty orm的ActiveRecord操作数据指南的详细内容,更多关于resty orm的ActiveRecord数据操作的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python3基础:变量与常用数据类型(在python3中标准数据类型包括)
下一篇:【零基础学Python】后端开发篇 第二十一节--Python Web开发二:Django的安装和运行(前端开发python)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~