通过14个入门实战案例教大家快速学习Python编程语言(python从入门到实践和Python编程快速上手)
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
//使用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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~