欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

postgresql多選功能實(shí)現(xiàn)代碼

 更新時(shí)間:2024年03月26日 15:59:12   作者:xun-ming  
這篇文章主要介紹了postgresql多選功能實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

一、背景介紹

在一所鄉(xiāng)村小學(xué),教師資源緊張,所以會(huì)出現(xiàn)一個(gè)教師身兼多職的情況,既是語(yǔ)文老師又是數(shù)學(xué)老師甚至還是體育老師,這個(gè)系統(tǒng)就是為各個(gè)班級(jí)分配老師,這樣一個(gè)場(chǎng)景實(shí)現(xiàn)

二、代碼實(shí)現(xiàn)及效果

后端country_teacher表數(shù)據(jù)和表結(jié)構(gòu):

前端大概頁(yè)面:

學(xué)科中英文對(duì)照表:前端傳的是帶中括號(hào)的英文,后端數(shù)據(jù)庫(kù)存的是中文

美術(shù)語(yǔ)文英語(yǔ)數(shù)學(xué)體育
ArtChineseEnglishMathSport

由于前端勾選科目的時(shí)候是多選框,所以會(huì)有順序的問題,比如說用戶先勾選了英語(yǔ)再勾選了美術(shù),那么后端接收到的參數(shù)就是

[English][Art]

所以后端要做一個(gè)排序處理,就是做到不管前端傳的順序是什么,后端最終都是固定的順序,同時(shí)保證在數(shù)據(jù)庫(kù)中教師對(duì)應(yīng)的科目字段順序也是固定的,比如說這個(gè)教師教了英語(yǔ)和美術(shù),那么數(shù)據(jù)庫(kù)里存的就是

美術(shù),英語(yǔ)

因?yàn)槭前凑账鼈兊挠⑽氖鬃帜干蚺判虻?/p>

以下為后端關(guān)鍵代碼,語(yǔ)言為 groovy,和 java 類似:

def main(){
    // def job = values['job']  // 入?yún)?
    def job = "[Chinese][Math][English][Art][Sport]" // 模擬入?yún)?
    if(job == null || job == ''){
        return null
    }
    // 轉(zhuǎn)義,添加逗號(hào),分割為數(shù)組
    def nJob = job.replaceAll('\\]\\[','\\],\\[')
    def jobArr = nJob.split(',')
    // 對(duì)數(shù)組進(jìn)行首字母排序,
    def sortArr = jobArr.sort()
    def nArr = []
    sortArr.eachWithIndex{
         it,i -> {
             // 刪除掉[]
             def item = it.replaceAll('\\]','').replaceAll('\\[','')
             // 從枚舉中獲取中文對(duì)應(yīng)學(xué)科名
             nArr[i] = Job[item.toUpperCase()].name
         }
    }
    // 定義模糊查詢條件
    def likeJob = ''
    nArr.each{
        likeJob += '%' + it 
    }
    likeJob = likeJob + "%"
    // dbUtil是數(shù)據(jù)庫(kù)工具類,自行封裝即可
    return dbUtil.findBySql("select name,subject,id,username from country_teacher where deleted = 0"+
    " and subject like ('$likeJob')") 
}
enum Job {
    ART, CHINESE, ENGLISH, MATH, SPORT
    String getName() {
        switch (this) {
            case ART: return '美術(shù)'
            case CHINESE: return '語(yǔ)文'
            case ENGLISH: return '英語(yǔ)'
            case MATH: return '數(shù)學(xué)'
            case SPORT: return '體育'
        }
    }
}

最終效果就是這樣:
用戶勾選了美術(shù),那么下方就顯示所有教美術(shù)的老師,即張三、趙六、唐八三位老師

用戶勾選了英語(yǔ)、體育,那么下方就顯示所有教英語(yǔ)和體育的老師,即王五、唐八兩位老師

到此這篇關(guān)于postgresql多選功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)postgresql多選內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL處理時(shí)間段、時(shí)長(zhǎng)轉(zhuǎn)為秒、分、小時(shí)代碼示例

    PostgreSQL處理時(shí)間段、時(shí)長(zhǎng)轉(zhuǎn)為秒、分、小時(shí)代碼示例

    最近在操作數(shù)據(jù)庫(kù)時(shí),遇到頻繁的時(shí)間操作,每次弄完了就忘了,今天痛定思痛,下定決心對(duì)postgres的時(shí)間操作進(jìn)行一下總結(jié),這篇文章主要給大家介紹了關(guān)于PostgreSQL處理時(shí)間段、時(shí)長(zhǎng)轉(zhuǎn)為秒、分、小時(shí)的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • 如何使用PostgreSQL進(jìn)行中文全文檢索

    如何使用PostgreSQL進(jìn)行中文全文檢索

    PostgreSQL被稱為是“最高級(jí)的開源數(shù)據(jù)庫(kù)”,它的數(shù)據(jù)類型非常豐富,用它來解決一些比較偏門的需求非常適合。由于PgSQL國(guó)內(nèi)的資料較少,所有本文將詳細(xì)介紹此類問題,以便后來的同學(xué)能順利使用PgSQL。
    2021-05-05
  • PostgreSQL之INDEX 索引詳解

    PostgreSQL之INDEX 索引詳解

    這篇文章主要介紹了PostgreSQL之INDEX 索引詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 初識(shí)PostgreSQL存儲(chǔ)過程

    初識(shí)PostgreSQL存儲(chǔ)過程

    這篇文章主要介紹了初識(shí)PostgreSQL存儲(chǔ)過程,本文講解了PostgreSQL中存儲(chǔ)過程的語(yǔ)法,并給出了一個(gè)操作實(shí)例,需要的朋友可以參考下
    2015-01-01
  • pgpool復(fù)制和負(fù)載均衡操作

    pgpool復(fù)制和負(fù)載均衡操作

    這篇文章主要介紹了pgpool復(fù)制和負(fù)載均衡操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行

    PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行

    這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • PostgreSQL并行計(jì)算算法及參數(shù)強(qiáng)制并行度設(shè)置方法

    PostgreSQL并行計(jì)算算法及參數(shù)強(qiáng)制并行度設(shè)置方法

    這篇文章主要介紹了PostgreSQL 并行計(jì)算算法,參數(shù),強(qiáng)制并行度設(shè)置,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • PostgreSQL常用的備份方式總結(jié)

    PostgreSQL常用的備份方式總結(jié)

    這篇文章主要介紹了PostgreSQL的多種備份方法,包括邏輯備份和物理備份,以及歸檔日志備份,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • CentOS 9 Stream 上安裝 PostgreSQL 16的步驟

    CentOS 9 Stream 上安裝 PostgreSQL 16的步

    在CentOS9Stream上安裝PostgreSQL16,首先添加PostgreSQL官方倉(cāng)庫(kù),然后禁用系統(tǒng)自帶PostgreSQL版本,避免沖突,使用dnf命令安裝PostgreSQL16,并初始化數(shù)據(jù)庫(kù),本文給大家介紹CentOS 9 Stream 上安裝 PostgreSQL 16的步驟,感興趣的朋友一起看看吧
    2024-11-11
  • 如何解決PostgreSQL執(zhí)行語(yǔ)句長(zhǎng)時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行的問題

    如何解決PostgreSQL執(zhí)行語(yǔ)句長(zhǎng)時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行的問題

    某日開發(fā)同事上報(bào)一sql性能問題,一條查詢好似一直跑不出結(jié)果,查詢了n小時(shí),還未返回結(jié)果,這篇文章主要給大家介紹了關(guān)于如何解決PostgreSQL執(zhí)行語(yǔ)句長(zhǎng)時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行問題的相關(guān)資料,需要的朋友可以參考下
    2024-02-02

最新評(píng)論