1. 程式人生 > >2018 08/06-08/12周總結

2018 08/06-08/12周總結

oracl san 直接 select post javascrip 但是 -c 導致

1、Oracle在已經存在主鍵的表中插入復合主鍵的SQL語句

如已有一個表test_key,其中a1列為主鍵。

CREATE TABLE TEST_KEY(
    A1 VARCHAR2(3) NOT NULL,
    A2 VARCHAR2(3),
    B1 VARCHAR2(3),
    B2 VARCHAR2(3)
);
alter table TEST_KEY
add constraint PK_TEST_KEY primary key (A1) using index;

現在要將a2,b1也增加到主鍵中與原有的a1一起組成復合主鍵。語句如下:

alter table TEST_KEY drop constraint PK_TEST_KEY cascade;
alter table TEST_KEY add constraint PK_TEST_KEY primary key (A1, A2, B1) using index;

需要做的操作是先將現有表的主鍵刪除,然後再加入新的復合主鍵。

2、標簽data-*自定義屬性值
在HTML5規範裏增加了一個自定義data屬性,這樣可以方便的在在標簽上存儲和操作數據。
如當一個下拉框的值是由兩個值組合而成。選擇某個下拉框的值後,需要將值傳到後臺查數據,通常用一個value傳到後臺不好處理,可以使用如下的方法:

<select id="product">
    <option data-goodsName="p01" data-vsrsion="01" >商品A--version 1.0</option>
    <option data-goodsName="p02" data-vsrsion="02">商品B--version 2.0</option>
    <option data-goodsName="p03" data-vsrsion="03">商品C--version 3.0</option>
</select>

獲取當前選中的下拉框的值(jQuery寫法):

var options=$("#productoption:selected");    //獲取選中的項
var goodsName = options.data("goodName");    //拿到商品名
var vsrsion = option.data("vsrsion");        //拿到商品版本
你還可以在"data-*" 屬性裏使用json語法,例如,如果你寫出下面的html:
<div id="test-json" data-test='{"game":"on"}'></div>

你可以通過js直接訪問這個數據,通過json的key值,你能得到相應的value:

var gameStatus= jQuery("#test-json").data('test').game;
console.log(gameStatus);

你也可以通過.data(key,value)方法直接給"data-" 屬性賦值。一個重要的你要註意的事情是,這些"data-" 屬性應該和它所在的元素有一定的關聯,不要把它當成存放任意東西的存儲工具。
通過支持html5的瀏覽器中的js代碼也可以獲取相應的值,例如:

<div data-author="david" data-time="2011-06-20"  
          data-comment-num="10"  data-category="javascript">
....
</div>

獲取js代碼

var post = document.getElementsByTagName('div')[0];
post.dataset; // DOMStringMap
post.dataset.commentNum; // 10

需要註意的是,data-之後的以連字符分割的多個單詞組成的屬性,獲取的時候使用駝峰風格。

補充:盡管"data-**" 是HTML5才出現的屬性,但jquery是通用的,所以,在非HTML5的頁面或瀏覽器裏,你仍然可以使用.data(obj)方法來操作"data-*" 數據。

根據data屬性值查找對應標簽
var curDiv = $('#main').find('div[data-url="11"]');
curDiv.css('', '');   // 去操作

上面代碼的意思是,獲取id="mian"的標簽下的div中屬性[data-url="11"]的標簽,然後進行相關操作。

3、Highchar.js插件提示框千分位顯示為空格而不是逗號

有兩種解決方法
(一)修改js文件,關於千分位的設置:thousandsSep: String 一千的分隔符

在highcharts.js 中找到 thousandsSep位置,把"" 改為 ","

這種方法雖然能解決問題,但是修改js後,在某些情況下js會報錯導致無法使用。(使用的js版本為:Highcharts JS v4.2.1 (2015-12-21)
(二)設置針對所有圖表有效的全局配置(推薦方法
官方API

Highcharts.setOptions({
         lang:{
             thousandsSep:",",
         }
});

4、MyBatis 判斷條件為等於的問題

先看一個實例
下面的語句是MyBatis的if判斷條件

<if test="name != null and name == 'BAK' ">
     name=#{name}
<if>

但是寫成上面的樣子會報錯,MyBatis是使用的OGNL表達式來進行解析的,需要改成一下形式(test裏面 應該為單引號套雙引號):

<if test= 'name != null and name == "BAK" '>
     name=#{name}
<if>

另外還有一種寫法就是:

<if test="name != null and name == 'BAK'.toString() ">
     name=#{name}
<if>

2018 08/06-08/12周總結