如何设计一个ORM

ORM就是将数据库中的表映射成一个对象实体A,对A进行操作,就相当于对数据库直接进行操作,完成这个过程,其实只要你好好想想你是怎么操作数据库的,然后将类似的行为换成对象即可。

要设计一个ORM,首先我们需要以下几步:

  • step1: 先准备好一个对象A和数据库中某张表对应T(A->T)
  • step2: 我们知道当你创建一个表时,一般使用create命令如下:
CREATE TABLE database_name.table_name( 
column1 datatype PRIMARY KEY(one or more columns), 
column2 datatype, 
column3 datatype, 
….. 
columnN datatype, 
);

从上面看就对应着表名,表字段名,字段类型,是否是主键等,此时我就要想着如何根据A中成员变量,而知道T的这些内容?如果你能根据A能够转化成T,那此时你就已经将A映射到了T了

  • step3: 映射过程完成后,接下来就是要具备表的四种操作:增/删/改/查,回忆下四种命令写sql语句是怎么写的?现在我们以查来说:
SELECT * FROM T WHERE field1 >= ? OR field2 >= ?;

其实说白了,就是构建where语句的过程,我们可以根据一些条件,构建where语句,然后映射到成一个sql语句,根据sql语句我们就可以查询到一组符合条件的数据(cursor),然后就是将cursor数据转化成A

现在总结下step3两个过程:condition ->sql语句;cursor reslut->A,完成这三部,基本上就完成了一个ORM的设计,如果后面需要对性能,细节进行优化,就可以慢慢来。毕竟主功能已具备。

注意:如果想线程安全进行数据库操作可以考虑  db.enableWriteAheadLogging();

总结下:

  • a)  根据A得到T,
  • b)  根据condition构建where,拼接成sql;
  • c)根据sql从T中查出cursors;
  • d)cursor转化成A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值