美文网首页
2017-12-28 数据重复插入问题、Vue.js 事件处理

2017-12-28 数据重复插入问题、Vue.js 事件处理

作者: 胡諾 | 来源:发表于2017-12-29 08:56 被阅读0次

    第一组:姚成栋 数据重复插入问题

    在跑定时任务进行多条数据同时插入时,会遇到数据被重复插入的问题。要解决只需要用一个标志来做判断即可。

    例如,我在写一个离职人员的定时任务时,需要从另一个表中查询出人员的工作情况,如果状态为QuitJob,则这个人已经离职。但是写完程序,发现每次运行都会将之前已经插入离职人员表中的人重复插一遍,很明显这是错误的。所以,在进行多条数据同时插入这个事务之前,做一个判断,如果表中已经有了数据则不执行该sql语句。具体代码如下:

    foreach(var secondItem in bds) {
        if (secondItem.LO_UserName == result[0].UI_UserName && secondItem.LO_UserTid == result[0].UI_UserTid) {
            RepeatedFlag = 1; //一旦重复无需继续查询,直接跳出循环
            break;
        } else {
            RepeatedFlag = 0;
        }
    }
    //未重复则插入
    if (RepeatedFlag == 0) {
        sql.Add(db.GetInsertSql(loginUser));
    }
    
    

    第二组:暂更


    第三组:黄华英 Vue.js 事件处理

    方法处理器

    可以用 v-on 指令监听 DOM 事件:

    //绑定单击事件处理器到方法greet
    <div id="example">
    <button v-on:click="greet">Greet</button></div>
    

    在vue实例中定义这个方法

    var vm = new Vue({
        el: '#example',
        data: {
            name: 'Vue.js'
        },
        methods: { // 在 `methods` 对象中定义方法
            greet: function(event) { // 方法内 `this` 指向 vm
                alert('Hello ' + this.name + '!')
            }
        }
    })
    
    //greet方法在单击button时被调用, 也可以在 JavaScript 代码中调用
    vm.greet() // -> 'Hello Vue.js!'
    
    内联语句处理器

    除了直接绑定到一个方法,也可以在内联 JavaScript 语句中调用方法

    <div id="app">
        <button v-on:click="say('hi')">
            Say hi
        </button>
        //调用say方法
        <button v-on:click="say('what')">
            Say what
        </button>
        //调用say方法
        <button v-on:click="warn('Form cannot be submitted yet.', $event)">
            Submit //有时也需要在内联语句处理器中访问原始的DOM事件,可以用特殊变量$event把它传入方法
    </div>
    <script>
        new Vue({
            el: '#app',
            methods: {
                say: function(message) {
                    alert(message)
                }
            },
            Warn: function(message, event) { //访问原生事件对象
                if (event) event.preventDefault() alert(message)
            }
        })
    </script>
    
    事件修饰符

    v-on事件修饰符是由点开头的指令后缀来表示的

    <!-- 阻止单击事件继续传播 -->
    <a v-on:click.stop="doThis"></a>
    
    <!-- 只有修饰符 -->
    <form v-on:submit.prevent></form>
    
    <!-- 提交事件不再重载页面 -->
    <form v-on:submit.prevent="onSubmit"></form>
    
    <!-- 修饰符可以串联 -->
    <a v-on:click.stop.prevent="doThat"></a>
    
    <!-- 添加事件监听器时使用事件捕获模式 -->
    <!-- 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 -->
    <div v-on:click.capture="doThis">...</div>
    
    <!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
    <!-- 即事件不是从内部元素触发的 -->
    <div v-on:click.self="doThat">...</div>
    
    <!-- 点击事件将只会触发一次 -->
    <a v-on:click.once="doThis"></a>
    

    注意: 使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用@click.prevent.self会阻止所有的点击,而@click.self.prevent只会阻止对元素自身的点击。

    按键修饰符

    Vue 允许为v-on在监听键盘事件时添加按键修饰符:

    <!-- 只有在 keyCode 是 13 (enter)时调用 vm.submit() -->
    <input v-on:keyup.13="submit">
    <input v-on:keyup.enter="submit">
    <input @keyup.enter="submit">
    

    第四组:王芳 《万历十五年》

    《万历十五年》
    1. 当时打动我的是这个开篇语:
      公元1587年,在中国为明万历十五年,论干支则为丁亥,属猪,当日四海升平,全年并无大事可叙,纵是气候有点反常,夏季北京缺雨,五六月间时疫流行,旱情延及山东,南直隶却又因降雨过多而患水,入秋之后山西又有地震,但这种小灾小患,以我国幅员之大,似乎年年在所不免,只要小事未曾酿成大灾,也就无关宏旨,总之,在历史上,万历十五年实为平平淡淡的一年。

    2. 这是一本历史书籍,讲的是明朝万历十五年前后发生的几件事情,作者语气平淡,叙事波澜不惊、不偏不倚,很少带有个人情感,其实有时候还挺喜欢这种文风的,会觉得这种作者比较慈悲,因为书里的每个人都不是脸谱化的,没有好坏之分,一切矛盾都是一点点积累起来的,看完之后只会觉得这些事情都是历史发展的必然结果,可能这样才比较公正吧。。

    编者注:所有文字都是主观的


    第五组:姜葳 C#语法糖($)(?.)(??)

    1. 内插字符串($)

    实际上是C# 6.0对string.Format的改进,将字符串文本标识为内插字符串($)
    根据微软的例子来看:

    using System;
    
    public class Example {
        public static void Main() {
            string name = "John";
            string greeting = $ "Hello, {name}!";
            Console.WriteLine(greeting);
        }
    }
    

    相当于原先的string.Format这种必须使用占位符,极容易出错:

    string name = "John";
    string str = string.Fromat("Hello,{0}!",name);
    

    而使用$则不容易出现错误,可以这样写:

    string name = "John";2 string str = $"Hello,{name}!";
    
    2. null条件运算符(?.)

    这也是C#6.0的语法,这叫Null-Conditional Operator(null条件运算符)

    我们经常需要判断对象是否为null(不判断呢就会报异常System.NullReferenceException之类的),我们一般像这样:

     List<string> list = null;
     if (list != null) 
    {    
    string[] strArr = list.ToArray();
    }
    

    或者这样:

    List<string> list = null;
    string[] strArr = (list != null ? list.ToArray() : null);
    

    使用这个null条件运算符就可以这样简单的完成这件事了

    List<string> list = null;2 string[] strArr = list?.ToArray();
    

    解释一下,当 list 为 null 时就不进行后面的ToArray(),返回null,当 list 不为 null 就ToArray();
    这里要注意一下,前面strArr这个得是个可null的值

    3. null合并运算符(??)

    ?? 运算符称作 null 合并运算符。 如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

    演示一下:

    int? num = null;//前面设定了个可空的int,后面想null时变为0就好
    int num1 = num ?? 0;
    

    相关文章

      网友评论

          本文标题:2017-12-28 数据重复插入问题、Vue.js 事件处理

          本文链接:https://www.haomeiwen.com/subject/ogobgxtx.html