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

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

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

一、背景介紹

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

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

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

前端大概頁面:

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

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

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

[English][Art]

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

美術(shù),英語

因為是按照它們的英文首字母升序排序的

以下為后端關(guān)鍵代碼,語言為 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)義,添加逗號,分割為數(shù)組
    def nJob = job.replaceAll('\\]\\[','\\],\\[')
    def jobArr = nJob.split(',')
    // 對數(shù)組進(jìn)行首字母排序,
    def sortArr = jobArr.sort()
    def nArr = []
    sortArr.eachWithIndex{
         it,i -> {
             // 刪除掉[]
             def item = it.replaceAll('\\]','').replaceAll('\\[','')
             // 從枚舉中獲取中文對應(yīng)學(xué)科名
             nArr[i] = Job[item.toUpperCase()].name
         }
    }
    // 定義模糊查詢條件
    def likeJob = ''
    nArr.each{
        likeJob += '%' + it 
    }
    likeJob = likeJob + "%"
    // dbUtil是數(shù)據(jù)庫工具類,自行封裝即可
    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 '語文'
            case ENGLISH: return '英語'
            case MATH: return '數(shù)學(xué)'
            case SPORT: return '體育'
        }
    }
}

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

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

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

相關(guān)文章

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

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

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

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

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

    PostgreSQL之INDEX 索引詳解

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

    初識PostgreSQL存儲過程

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

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

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

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

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

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

    這篇文章主要介紹了PostgreSQL 并行計算算法,參數(shù),強(qiáng)制并行度設(shè)置,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    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官方倉庫,然后禁用系統(tǒng)自帶PostgreSQL版本,避免沖突,使用dnf命令安裝PostgreSQL16,并初始化數(shù)據(jù)庫,本文給大家介紹CentOS 9 Stream 上安裝 PostgreSQL 16的步驟,感興趣的朋友一起看看吧
    2024-11-11
  • 如何解決PostgreSQL執(zhí)行語句長時間卡著不動不報錯也不執(zhí)行的問題

    如何解決PostgreSQL執(zhí)行語句長時間卡著不動不報錯也不執(zhí)行的問題

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

最新評論