自己写个简易版的CURD
来源:互联网 发布:位置大数据 编辑:程序博客网 时间:2024/04/29 16:13
项目开发中,往往会写很多的查询,更新,插入语句,页面的代码看起来特别的乱.
db.operatorDB为数据库操作方法,可根据自己的需要进行添加.
在看过THINKPHP的Model后,决定照葫芦画瓢也弄个CURD,只为了让代码看起来更清爽.
var Model = function(tbname){var _join = '',_order = '',_group = '',_where = '',_field = '',_limit = '',_table = '';this.data = {};_table = tbname;var that = this;this.table = function(p){_table = p;return that;}this.field = function(p){_field = p?p:"*";return that;}this.join = function(p){_join += " "+p;return that;}this.where = function(p){//字符串if(typeof p === "string"){var arr = p.split('=');_where = " where "+arr[0]+"='"+arr[1]+"'";}//数组if(typeof p==="object" && (p instanceof Array)){_where = " where "+p[0];for(var i=1,m=p.length;i<m;i++){var arr = p.split('=');_where = " and "+arr[0]+"='"+arr[1]+"'";}}return that;}this.group = function(p){_group = " group by "+p;return that;}this.order = function(p){_order = " order by "+p;return that;}this.limit = function(start,length){_limit = " limit "+start + (length?","+length:"");return that;}//CURD/*params:v-参数值,f-参数名,默认id*/this.create = function(callback){var sql = "insert into "+_table+"($field) values($value)";var _f = '',_v = '',_values = [];for(var key in this.data){_f += "," + key;_v += ",?";_values.push(this.data[key]);}sql = sql.replace('$field',_f.substr(1)).replace('$value',_v.substr(1));//执行语句// db.operatorDB(sql,_values,function(err, result){// if (err) {// callback(null);// return;// }// callback(result);// });callback(sql);}this.update = function(callback){var sql = "update "+_table+" set $field";var _f = '',_values = [];for(var key in this.data){_f += "," + key + "=?";_values.push(this.data[key]);}sql = sql.replace('$field',_f.substr(1))+_where;//执行语句// db.operatorDB(sql,_values,function(err, result){// if (err) {// callback(null);// return;// }// callback(result);// });callback(sql);}this.select = function(callback){//var sql = "`select ${_field} from ${_table} ${_join} ${_where} ${_group} ${_order} ${_limit}`";var sql = "select ";sql += _field?_field:"*";sql += " from " + _table + _join + _where + _group + _order + _limit;//执行语句,返回结果// db.operatorDB(sql,null,function(err, result){// if (err) {// callback(null);// return;// }// callback(result);// });callback(sql);}//find调用get,使用select方法查询结果this.find = function(v,f,callback){this.get(v,f,callback);}this.get = function(v,f,callback){this.where((f?f:"id")+"="+v).select(callback);}this.delete = function(){var sql = "delete from "+_table+_where;//执行语句,返回结果// db.operatorDB(sql,null,function(err, result){// if (err) {// callback(null);// return;// }// callback(result);// });callback(sql);}return this;};
db.operatorDB为数据库操作方法,可根据自己的需要进行添加.
调用方法如下:
//联合查询var u = new Model("user");u.where("name=1").join("left join dept d on user.id=d.id").order("user.id desc,d.id").select(function(s){console.log(s);});//插入/更新var d = new Model("custom");u.data["name"]="a";u.data["id"]="1";d.create(function(re){//d.where("id=1").update(...console.log(re);});//简单查询var u = new Model("user");u.find(1,"",function(s){//u.get(1,...console.log(s);})
1 0
- 自己写个简易版的CURD
- 写了个MongoDB的CURD
- 自己写的简易map
- 写个自己的
- 写个自己的
- 自己写的一个简易播放器
- 自己写的简易ajax模型
- 自己写的简易php日志类
- 自己写的简易数据库类
- 自己写的简易分页类
- 自己写的安卓简易浏览器
- 自己写一个简易的string类型
- 5. Hibernate的简易CURD操作
- 自己写的简易的ATM提款机
- 黑马程序员——自己写的一个网页版简易账本
- 自己用ASP写的一个简易菜单
- 自己写的简易多任务系统---基于pic18fxxx
- 自己写的简易多任务系统---基于pic18fxxx
- 十五个数随机排序
- 手机卫士 第八天
- [高质量C++/C编程]—代码风格总结 未完结
- 欢迎使用CSDN-markdown编辑器
- BZOJ 1997: [Hnoi2010]Planar
- 自己写个简易版的CURD
- alwayson 故障转移 的 looksalive check和is alive check
- 2.5趣味数学之猜牌术
- Apache kafka原理与特性(0.8V)
- tomcat配置虚拟目录实现服务器图片分离
- spring整合jersey2.X实现JAX-RS2.0(JSR311) Restful WebService
- CocoaPods的安装使用和常见问题
- C++ string与int的互相转换
- 比较大小