107楼在数据加载之前的都是准备,SQL_Connect,数据库访问句柄,内容你根据需要自己定,是前期打开或取自连接池,无所谓,与讨论的问题关系不大。关键是new,在构造函数里找到表结构,用于构建模板,由模板构建数据区,都在dao里。再往后,由列名构建list按给出的次序排序,每个节点都有相应列的template,类型长度格式位置。
有了这个col_list,后边就可以一句话把一行数据压到struct里。
后边的insert,注释已经说的很清楚了,一句话干一个活。
JAVA的hibernate,用过,比我的要复杂多了,需要学不少东西,这个东西就是照hibernate写的,有发展,hibernate在运行时碰到一个陌生的表也得抓瞎,改一下表结构也得改class。
这不过是个例子,工具库可以干所有的数据库操作,select也很简单,->select(stmt)就可以啦,stmt里边放个where,如where begdate>=:begdate and enddate < :enddate,就可以了,至于需要写to_date(:begdate,'YYYY-MM-DD'),你不需要管,SQL生成器会为你自动生成,模板里有格式呀!。比你直接写SQL省事太多。
简单吗?用着简单,但是里边代码太多了,一层一层又一层的,写出来估计没人看。
【 在 yuanmo 的大作中提到: 】
: 你这写的都是你自己的实现啊,我没感觉有多简洁,也没觉得有多强大。
: 说得极端一点,SQL语句本身就是一行命令,与你的系统有啥区别呢,使用者还得知道大量的sql接口相关细节。你反复强调“一句调用”,忽略了前面的准备和后面的处理,没意义。
: 好歹贴一段使用者的相对完整的代码,使用者怎么定义输入数据,怎么处理输出的数据。
: ...................
--
修改:ylh1969 FROM 221.221.54.*
FROM 221.221.54.*