apache-flex - 我怎样才能让我的 AS3/Air 代码更好?

标签 apache-flex actionscript-3 air adobe

大家好,这是我的小弗兰肯斯坦代码,不要取笑它,它有效!
因此,您将表名和数据作为对象的关联数组传递。
我很确定这不是很好的代码,因为我还在学习 ActionScript。那么我可以改变什么,或者你们如何让它变得更好?

public function save(table:String,data:Object):void
        {
            var conn:SQLConnection = new SQLConnection();
            var folder:File = File.applicationStorageDirectory;
            var dbFile:File = folder.resolvePath("task.db");
            conn.open(dbFile);

            var stat:SQLStatement=new SQLStatement();
            stat.sqlConnection=conn;

            //make fields and values
            var fields:String="";
            var values:String="";
            for(var sRole:String in data)
            {
                fields=fields+sRole+",:";
                stat.parameters[":"+sRole]=data[sRole];
            }
            //trim off white space
            var s:String=new String(fields);
            var cleanString:String=s.slice( 0, -2 );

            //over here we add : infront of the values I forget why
            var find:RegExp=/:/g;
            var mymyField:String=new String(cleanString.replace(find,""));
            cleanString=":"+cleanString;

            var SQLFields:String=mymyField;
            var SQLValues:String=cleanString;

            stat.text="INSERT INTO "+table+" ("+SQLFields+")VALUES("+SQLValues+")";

            stat.execute();
        }

最佳答案

老实说,构建查询的部分非常可怕。一半的代码删除了您之前添加的几行垃圾。这使得阅读和理解变得困难。这是代码质量差的标志。以下内容更短更简单:

        //make fields and values
        var fields:Array = [];
        for(var field:String in data) {
            fields.push(field);
            stat.parameters[":"+field]=data[fieldName];
        }
        var sqlFields:String = fields.join(",");
        var sqlValues:String = ":"+fields.join(",:");

        stat.text="INSERT INTO "+table+" ("+sqlFields+")VALUES("+sqlValues+")";

        stat.execute();

关于apache-flex - 我怎样才能让我的 AS3/Air 代码更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3960460/

相关文章:

apache-flex - Adobe Flex/AIR 的开发工具?

javascript - ActionScript - 从用户硬盘加载视频,无需服务器

apache-flex - Flex RemoteObject - 处理多个请求

actionscript-3 - 来自 ActionScript 的 SQLite INSERT(多行)无法正常工作

actionscript-3 - 如何在flex中绘制一个显示数字的圆圈

javascript - Adobe Air 中的 Base64 编码和图像

apache-flex - 在 ActionScript 中动态创建 Flex 组件

apache-flex - 需要对 MVC 的模型方面进行一些说明

apache-flex - 在 Adob​​e Flex/AIR 应用程序中调整应用程序窗口大小时调整容器大小

linux - Adobe Air native 安装程序 Linux - 依赖性不可满足