ActiveRecord CURD分析
ActiveRecord初始化时,将Table对象与数据表进行了映射关联,那么activerecord又是如何实现与数据库交互的呢
- 所有的自定义model都会继承Model
类,而Model类封装了常用的数据库操作 - Model通过Table来处理具体的映射关系
- Model使用Map
Model的save方法探秘
public boolean save() {
// 获取config,此config是初始化时放进DbKit中的
Config config = getConfig();
// 获取当前model对应的table实例
Table table = getTable();
//声明一个sql语句的承载对象
StringBuilder sql = new StringBuilder();
//声明一个paras集合
List<Object> paras = new ArrayList<Object>();
//通过方言处理器生成针对指定数据库的sql语句
//针对mysql生成的语句:insert into `blog`(`content`, `id`, `title`) values(?, ?, ?)
config.dialect.forModelSave(table, attrs, sql, paras);
Connection conn = null;
PreparedStatement pst = null;
int result = 0;
try {
conn