第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

表驅(qū)動(dòng),如何在表中存儲(chǔ)一個(gè)方法

表驅(qū)動(dòng),如何在表中存儲(chǔ)一個(gè)方法

狐的傳說(shuō) 2019-03-12 17:19:40
想將下面的代碼用表驅(qū)動(dòng)的方法實(shí)現(xiàn),應(yīng)該怎么創(chuàng)建這個(gè)“表”呢    if(key.equals("所屬國(guó)家 :")) {        tblwine.setCountry(value);    }    else if(key.equals("葡萄酒類型 :")) {        tblwine.setType(value);    }    else if(key.equals("規(guī)格 :")) {        tblwine.setSize(value);    }    else if(key.equals("酒精度 :")) {        tblwine.setPercent(value);    }    else if(key.equals("葡萄品種 :")) {        tblwine.setPtype(value);    }    else if(key.equals("生產(chǎn)年份 :")) {        tblwine.setYear(value);    }
查看完整描述

4 回答

?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果需要使用表來(lái)維護(hù)的數(shù)據(jù),都是很少有變動(dòng),并且很重要的數(shù)據(jù)。因?yàn)椴楸淼乃俣瓤隙ú蝗缰苯訄?zhí)行代碼來(lái)得快。如果用代碼解決,你可以使用:

1.if...else

2.switch...

3.enum..枚舉值來(lái)匹配

4.?: 三目運(yùn)算符來(lái)解決


或者用表驅(qū)動(dòng)法


#建表語(yǔ)句

CREATE TABLE `resource` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',

  `gmt_create` datetime NOT NULL COMMENT '數(shù)據(jù)新增時(shí)間',

  `creator` varchar(128) NOT NULL DEFAULT '0' COMMENT '創(chuàng)建者',

  `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '數(shù)據(jù)修改時(shí)間',

  `modifier` varchar(128) NOT NULL DEFAULT '0' COMMENT '修改者',

  `is_deleted` char(1) NOT NULL DEFAULT 'n' COMMENT '是否邏輯刪除,默認(rèn)為n',

  `type` varchar(32) DEFAULT NULL COMMENT '資源類型',

  `name` varchar(64) DEFAULT NULL COMMENT '資源名稱',

  `value` varchar(2048) DEFAULT NULL COMMENT '值',

  `ordering` bigint(20) DEFAULT NULL COMMENT '排序',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3026 DEFAULT CHARSET=utf8 COMMENT='系統(tǒng)資源表';

#運(yùn)行SQL:


SELECT

    r.VALUE

FROM

    resource r

WHERE

NAME = #{傳入?yún)?shù)}


查看完整回答
反對(duì) 回復(fù) 2019-04-22
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

提供一種使用表實(shí)現(xiàn)的思路,表定義如下:

keymethod
所屬國(guó)家setCountry
葡萄酒類型setType
......

代碼如下:

    String  name=findMethodByKey(key); //查詢Key對(duì)應(yīng)的方法名

    Method  m= tblwine.getClass().getMethod(name,Object.class);

    m.invoke(tblwine,value);

當(dāng)然如果key是比較固定的, 建議 findMethodByKey 方法用HashMap實(shí)現(xiàn), 沒(méi)有必要用數(shù)據(jù)庫(kù)。

也許題主是希望能動(dòng)態(tài)改變對(duì)應(yīng)關(guān)系,那么使用數(shù)據(jù)庫(kù)存儲(chǔ)也未嘗不可。 不過(guò)為了提高執(zhí)行的效率,最好可以將數(shù)據(jù)庫(kù)表的信息緩存到HashMap中, 當(dāng)數(shù)據(jù)庫(kù)發(fā)生變更時(shí),再更新HashMap。


查看完整回答
反對(duì) 回復(fù) 2019-04-22
?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

也可以用Java8的函數(shù)式接口


    private Map<String, BiConsumer<Tblwine, String>> map = new HashMap<>();


    {

        map.put("所屬國(guó)家 :", (tblwine, value) -> tblwine.setCountry(value));

        

        // other...

    }

調(diào)用


map.get(key).accept(tblwine, value);


查看完整回答
反對(duì) 回復(fù) 2019-04-22
  • 4 回答
  • 0 關(guān)注
  • 611 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)