国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

BO(Business Object)是一種用于表示業(yè)務(wù)對象的設(shè)計(jì)模式

這篇具有很好參考價值的文章主要介紹了BO(Business Object)是一種用于表示業(yè)務(wù)對象的設(shè)計(jì)模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1、Service層 BO

1.1、FruitService接口

package com.csdn.fruit.service;
import com.csdn.fruit.dto.PageInfo;
import com.csdn.fruit.dto.PageQueryParam;
import com.csdn.fruit.pojo.Fruit;
public interface FruitService {
    PageInfo<Fruit> getFruitPageInfo(PageQueryParam pageQueryParam);

    void addFruit(Fruit fruit);

    void updateFruit(Fruit fruit);

    void delFruit(Integer fid);

    Fruit getFruitById(Integer fid);

    Fruit getFruitByFname(String fname);
}

1.2、FruitServiceImpl實(shí)現(xiàn)類

package com.csdn.fruit.service.impl;
import com.csdn.fruit.dao.FruitDao;
import com.csdn.fruit.dao.impl.FruitDaoImpl;
import com.csdn.fruit.dto.PageInfo;
import com.csdn.fruit.dto.PageQueryParam;
import com.csdn.fruit.pojo.Fruit;
import com.csdn.fruit.service.FruitService;
import java.util.List;
public class FruitServiceImpl implements FruitService {

    private FruitDao fruitDao = new FruitDaoImpl();

    @Override
    public PageInfo<Fruit> getFruitPageInfo(PageQueryParam pageQueryParam) {
        Integer pageNo = pageQueryParam.getPageNo();
        Integer pageSize = pageQueryParam.getPageSize();
        String keyword = pageQueryParam.getKeyword();
        List<Fruit> fruitList = fruitDao.getFruitList(pageNo, pageSize, keyword);
        Integer recordCount = fruitDao.getRecordCount(pageQueryParam.getKeyword());
        PageInfo<Fruit> fruitPageInfo = new PageInfo<>(fruitList, pageNo, recordCount);
        return fruitPageInfo;
    }

    @Override
    public void addFruit(Fruit fruit) {
        if (fruitDao.getFruitByFname(fruit.getFname()) == null) {
            fruitDao.addFruit(fruit);
        }
    }

    @Override
    public void updateFruit(Fruit fruit) {
            fruitDao.updateFruit(fruit);
    }

    @Override
    public void delFruit(Integer fid) {
            fruitDao.delFruitByFid(fid);
    }

    @Override
    public Fruit getFruitById(Integer fid) {
        return fruitDao.getFruitByFid(fid);
    }

    @Override
    public Fruit getFruitByFname(String fname) {
        return fruitDao.getFruitByFname(fname);
    }
}

2、DAO層

2.1、FruitDao接口

package com.csdn.fruit.dao;
import com.csdn.fruit.pojo.Fruit;
import java.util.List;
//dao :Data Access Object 數(shù)據(jù)訪問對象
//接口設(shè)計(jì)
public interface FruitDao {

    void addFruit(Fruit fruit);

    void delFruit(String fname);

    //通過 fid 刪除 水果庫存記錄
    void delFruitByFid(Integer fid);

    void updateFruit(Fruit fruit);

    @Deprecated
    List<Fruit> getFruitList();
    @Deprecated
    List<Fruit> getFruitList(Integer pageNo, Integer pageSize);

    List<Fruit> getFruitList(Integer pageNo, Integer pageSize,String keyword);

    Fruit getFruitByFname(String fname);

    Fruit getFruitByFid(Integer fid);

    //查詢總記錄條數(shù)
    @Deprecated
    Integer getRecordCount();

    Integer getRecordCount(String keyword);
}

2.2、FruitDaoImpl實(shí)現(xiàn)類

package com.csdn.fruit.dao.impl;
import com.csdn.fruit.dao.FruitDao;
import com.csdn.fruit.pojo.Fruit;
import com.csdn.mymvc.dao.BaseDao;
import java.util.List;
public class FruitDaoImpl extends BaseDao<Fruit> implements FruitDao {
    @Override
    public void addFruit(Fruit fruit) {
        String sql = "insert into t_fruit values (0,?,?,?,?)";
        super.executeUpdate(sql, fruit.getFname(), fruit.getPrice(), fruit.getFcount(), fruit.getRemark());
    }

    @Override
    public void delFruit(String fname) {
        String sql = "delete from t_fruit where fname=?";
        super.executeUpdate(sql, fname);
    }

    //通過 fid 刪除水果庫存記錄
    @Override
    public void delFruitByFid(Integer fid) {
        super.executeUpdate("delete from t_fruit where fid = ? ", fid);
    }

    //通過 fid 可以修改所有的屬性值
    @Override
    public void updateFruit(Fruit fruit) {
        String sql = "update  t_fruit set fname=?,price=?,fcount=?,remark=? where fid = ?";
        super.executeUpdate(sql, fruit.getFname(), fruit.getPrice(), fruit.getFcount(), fruit.getRemark(), fruit.getFid());
    }

    @Override
    public List<Fruit> getFruitList() {
        return super.executeQuery("select * from t_fruit");
    }

    @Override
    public List<Fruit> getFruitList(Integer pageNo, Integer pageSize) {
        return super.executeQuery("select * from t_fruit limit ?,?", (pageNo - 1) * pageSize, pageSize);
    }

    @Override
    public List<Fruit> getFruitList(Integer pageNo, Integer pageSize, String keyword) {
        return super.executeQuery("select * from t_fruit where fname like ? or remark like?  limit ?,?", "%" + keyword + "%", "%" + keyword + "%", (pageNo - 1) * pageSize, pageSize);
    }

    @Override
    public Fruit getFruitByFname(String fname) {
        return load("select * from t_fruit where fname = ?", fname);
    }

    @Override
    public Fruit getFruitByFid(Integer fid) {
        return load("select * from t_fruit where fid=?", fid);
    }

    @Override
    public Integer getRecordCount() {
        String sql = "select count(*) from t_fruit";
        return ((Long) executeComplexQuery(sql).get(0)[0]).intValue();
    }

    @Override
    public Integer getRecordCount(String keyword) {
        String sql = "select count(*) from t_fruit where fname like ? or remark like ? ";
        return ((Long) executeComplexQuery(sql, "%" + keyword + "%", "%" + keyword + "%").get(0)[0]).intValue();
    }
}

3、BO層文字解讀

BO是 Business Object 的縮寫,是一種用于表示業(yè)務(wù)對象的設(shè)計(jì)模式。在Java中,BO的主要作用是 封裝業(yè)務(wù)邏輯,實(shí)現(xiàn)業(yè)務(wù)流程的可重用性和可維護(hù)性。

BO主要有以下幾個作用:

  1. 實(shí)現(xiàn)業(yè)務(wù)邏輯的封裝:將業(yè)務(wù)邏輯封裝在BO對象中,可以方便地對業(yè)務(wù)邏輯進(jìn)行管理和維護(hù),實(shí)現(xiàn)業(yè)務(wù)流程的可重用性和可維護(hù)性。

  2. 數(shù)據(jù)的處理和傳遞:BO對象通常會對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行處理和傳遞,實(shí)現(xiàn)業(yè)務(wù)流程的控制和協(xié)調(diào)。

  3. 業(yè)務(wù)流程的控制:BO對象可以實(shí)現(xiàn)業(yè)務(wù)流程的控制和協(xié)調(diào),確保業(yè)務(wù)流程的正確執(zhí)行。

  4. 實(shí)現(xiàn)業(yè)務(wù)規(guī)則的驗(yàn)證:BO對象可以實(shí)現(xiàn)業(yè)務(wù)規(guī)則的驗(yàn)證,確保業(yè)務(wù)數(shù)據(jù)的正確性和一致性。

總之,BO在Java中的作用是非常重要的,它可以幫助我們更好地管理和維護(hù)業(yè)務(wù)邏輯,實(shí)現(xiàn)業(yè)務(wù)流程的可重用性和可維護(hù)性。

在Java中,BO代表業(yè)務(wù)對象,它是一個純Java對象,用于表示業(yè)務(wù)層中的實(shí)體或數(shù)據(jù)傳輸對象。BO在應(yīng)用程序中的主要作用是:

  1. 封裝業(yè)務(wù)邏輯:業(yè)務(wù)對象表示業(yè)務(wù)領(lǐng)域的實(shí)體,包含業(yè)務(wù)邏輯和數(shù)據(jù)。它們通常有一些方法來處理特定的業(yè)務(wù)操作或業(yè)務(wù)規(guī)則,例如驗(yàn)證輸入數(shù)據(jù)是否有效等。

  2. 簡化數(shù)據(jù)訪問:業(yè)務(wù)對象通常包含一些數(shù)據(jù)操作方法,用于與數(shù)據(jù)庫或其他數(shù)據(jù)存儲服務(wù)進(jìn)行交互。通過使用BO,可以抽象出與數(shù)據(jù)存儲相關(guān)的細(xì)節(jié),簡化代碼和業(yè)務(wù)邏輯。

  3. 確保代碼重用:通過將業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯封裝在BO中,可以提高代碼的重用性和可維護(hù)性。這也可以減少代碼冗余和減少依賴性。

  4. 提高代碼的可測試性:業(yè)務(wù)對象通常非常易于測試,因?yàn)樗鼈兪仟?dú)立的、有明確定義的實(shí)體??梢酝ㄟ^針對BO進(jìn)行單元測試來驗(yàn)證其正確性,從而保證系統(tǒng)的穩(wěn)定性和可靠性。

BO(Business Object)在Java中的作用是作為業(yè)務(wù)對象,將業(yè)務(wù)邏輯封裝在其中,實(shí)現(xiàn)與數(shù)據(jù)訪問層的分離,提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。

在Java的企業(yè)級開發(fā)中,通常使用三層架構(gòu)來組織應(yīng)用,即表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。BO主要作為業(yè)務(wù)邏輯層的一個組成部分,用于封裝業(yè)務(wù)邏輯的實(shí)現(xiàn)。

通過BO,可以將一些繁瑣的業(yè)務(wù)邏輯封裝在單獨(dú)的對象中,使得業(yè)務(wù)邏輯更加清晰,易于維護(hù)和擴(kuò)展。同時,BO還可以實(shí)現(xiàn)對業(yè)務(wù)操作的安全控制,確保業(yè)務(wù)數(shù)據(jù)的完整性和安全性。

BO通常包括以下功能:

  • 對外提供業(yè)務(wù)邏輯接口
  • 封裝業(yè)務(wù)邏輯實(shí)現(xiàn)
  • 控制業(yè)務(wù)操作的安全性和數(shù)據(jù)完整性
  • 協(xié)調(diào)不同業(yè)務(wù)邏輯之間的調(diào)用和交互

在Java中,BO表示Business Object,即業(yè)務(wù)對象,是一種用于封裝業(yè)務(wù)邏輯的Java對象。BO主要用于將業(yè)務(wù)邏輯從應(yīng)用程序的其他部分中分離出來,使得業(yè)務(wù)邏輯能夠單獨(dú)地被測試、維護(hù)和修改。BO通常包含數(shù)據(jù)及其處理規(guī)則,用于操作數(shù)據(jù)庫、WebService或其他外部系統(tǒng)。

BO的作用主要有以下幾個方面:

  1. 分離業(yè)務(wù)邏輯:BO可以將復(fù)雜的業(yè)務(wù)邏輯從其他部分中分離出來,使得代碼更加清晰,易于維護(hù);
  2. 提高可重用性:BO可以被多次使用,從而提高了代碼的可重用性;
  3. 簡化代碼:BO可以將復(fù)雜的業(yè)務(wù)邏輯封裝起來,簡化應(yīng)用程序的其余部分的代碼,使得應(yīng)用程序更加簡潔;
  4. 實(shí)現(xiàn)業(yè)務(wù)規(guī)則:BO可以封裝業(yè)務(wù)規(guī)則,例如數(shù)據(jù)驗(yàn)證規(guī)則、業(yè)務(wù)計(jì)算等,從而確保這些規(guī)則可以被正確地應(yīng)用。

綜上所述,BO是Java中非常重要的一種對象,它能夠幫助開發(fā)人員更加有效地管理業(yè)務(wù)邏輯,提高代碼的可維護(hù)性、可重用性和可讀性。

在Java中,BO是指“Business Object”,也稱為“業(yè)務(wù)對象”。BO主要用于在業(yè)務(wù)邏輯層中封裝和處理業(yè)務(wù)邏輯。它們可以是任何對象,例如實(shí)體對象或值對象,通常具有以下功能:

  1. 數(shù)據(jù)驗(yàn)證和處理:BO可以在處理業(yè)務(wù)邏輯時對數(shù)據(jù)進(jìn)行驗(yàn)證和處理,確保數(shù)據(jù)的完整性和一致性。

  2. 業(yè)務(wù)邏輯處理:BO可以定義和執(zhí)行特定的業(yè)務(wù)邏輯,例如計(jì)算、轉(zhuǎn)換和驗(yàn)證數(shù)據(jù)等。

  3. 數(shù)據(jù)訪問控制:BO可以控制對數(shù)據(jù)的訪問權(quán)限,以確保數(shù)據(jù)的安全性和保密性。

  4. 數(shù)據(jù)持久化:BO可以負(fù)責(zé)將數(shù)據(jù)持久化到數(shù)據(jù)庫中或從數(shù)據(jù)庫中讀取數(shù)據(jù)。

總之,BO在Java中起著重要的作用,它們是實(shí)現(xiàn)業(yè)務(wù)邏輯的關(guān)鍵組件之一。

BO(Business Object)是一種用于表示業(yè)務(wù)對象的設(shè)計(jì)模式,Java設(shè)計(jì)模式,設(shè)計(jì)模式,java,BO,business,object,service文章來源地址http://www.zghlxwxcb.cn/news/detail-745263.html

到了這里,關(guān)于BO(Business Object)是一種用于表示業(yè)務(wù)對象的設(shè)計(jì)模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 在 QML 中,ComboBox 是一種常用的用戶界面控件,通常用于提供一個下拉式的選擇框,允許用戶從預(yù)定義的選項(xiàng)列表中選擇一個值

    ComboBox 詳解: 以下是 ComboBox 的一些重要屬性和特性: model : 用于指定 ComboBox 中的選項(xiàng)列表,可以是一個數(shù)組、列表、模型或者其他可迭代的數(shù)據(jù)結(jié)構(gòu)。 editable : 用于指定是否允許用戶編輯 ComboBox 中的文本輸入框,以便輸入非預(yù)定義的選項(xiàng)。 currentIndex : 用于獲取或設(shè)置當(dāng)前

    2024年04月15日
    瀏覽(31)
  • 什么是T-SQL編程?T-SQL是Transact-SQL的縮寫,是一種擴(kuò)展了SQL(結(jié)構(gòu)化查詢語言)的編程語言,用于Microsoft SQL Server數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)管理和操作。T-

    什么是T-SQL編程? T-SQL是Transact-SQL的縮寫,是一種 擴(kuò)展了SQL(結(jié)構(gòu)化查詢語言) 的編程語言,用于Microsoft?SQL?Server數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)管理和操作。T-SQL支持創(chuàng)建 存儲過程、觸發(fā)器、函數(shù) 等高級特性,能夠更加靈活地進(jìn)行數(shù)據(jù)操作和處理。基本的T-SQL語法與標(biāo)準(zhǔn)SQL很相

    2024年01月21日
    瀏覽(100)
  • HTAP應(yīng)該是一種需求 而不是一種產(chǎn)品

    HTAP應(yīng)該是一種需求 而不是一種產(chǎn)品

    作者 : 石臻臻 , CSDN博客之星Top5 、 Kafka Contributor 、 nacos Contributor 、 華為云 MVP , 騰訊云TVP , 滴滴Kafka技術(shù)專家 、 LogiKM PMC(改名KnowStreaming) 。 LogiKM(改名KnowStreaming) 是滴滴開源的Kafka運(yùn)維管控平臺, 有興趣一起參與參與開發(fā)的同學(xué),但是怕自己能力不夠的同學(xué),可以聯(lián)系我,當(dāng)你導(dǎo)

    2024年01月19日
    瀏覽(27)
  • 用于多視圖 3D 對象檢測的位置嵌入變換(PETR: Position Embedding Transformation for Multi-View 3D Object Detection)

    用于多視圖 3D 對象檢測的位置嵌入變換(PETR: Position Embedding Transformation for Multi-View 3D Object Detection)

    本文PETR (PETR: Position Embedding Transformation for Multi-View 3D Object Detection)是對DETR3D (3D Object Detection from Multi-view Images via 3D-to-2D Queries)的改進(jìn),將2D轉(zhuǎn)換至3D,還存在三個問題: (1) 空間與多視圖之間的信息交互依賴于3D參考點(diǎn)估計(jì)的準(zhǔn)確性,使得采樣的特征超出了對象區(qū)域,無法投影

    2024年02月07日
    瀏覽(23)
  • BSD-3-Clause是一種開源軟件許可協(xié)議

    BSD-3-Clause是一種開源軟件許可協(xié)議,也稱為BSD三條款許可證。它是BSD許可證家族中的一種,是一種寬松的許可證,允許軟件自由使用、修改和重新分發(fā),同時也保留了一些版權(quán)和責(zé)任方面的規(guī)定。 BSD-3-Clause許可證的主要特點(diǎn)包括以下三個條款: 再分發(fā)條款 :允許在任何目的

    2024年04月23日
    瀏覽(34)
  • 時至今日,Linux會開源,也是一種態(tài)度

    時至今日,Linux會開源,也是一種態(tài)度

    什么是開源? 開源通常指開發(fā)者公開系統(tǒng)/應(yīng)用程序源代碼。通過對代碼進(jìn)行共享和重用,可以快速開發(fā)出高質(zhì)量、低維護(hù)成本的應(yīng)用程序。這意味著你不再需要花很多時間來學(xué)習(xí)新技術(shù)或編寫復(fù)雜的代碼。 就拿linux來舉例子。 Linux系統(tǒng)的發(fā)起者 Linus Torvald 奠基了linux kernel的

    2024年02月04日
    瀏覽(17)
  • 學(xué)完C/C++,再學(xué)Python是一種什么體驗(yàn)?

    學(xué)完C/C++,再學(xué)Python是一種什么體驗(yàn)?

    你好,我是安然無虞。 與C/C++等其他語言不同的是,Python中兩個整數(shù)相除的結(jié)果為浮點(diǎn)數(shù) Python中浮點(diǎn)數(shù)在內(nèi)存中存儲的時候遵循IEEE754標(biāo)準(zhǔn),這套標(biāo)準(zhǔn)在表示浮點(diǎn)數(shù)時可能會存在微小的誤差,但這個誤差在實(shí)際開發(fā)中不會造成太大的影響 Python中創(chuàng)建變量的語法非常簡單,比如

    2024年01月17日
    瀏覽(51)
  • 在fpga上開發(fā)音視頻是一種什么體驗(yàn)?

    在fpga上開發(fā)音視頻是一種什么體驗(yàn)?

    今天周末回公司解決了解碼播放問題,最近周末也沒啥事情,一般周六都會過去公司學(xué)習(xí)音視頻開源項(xiàng)目(過去公司,主要是住的近,所以很方便!),待在家里也是無聊,所以就回去看開源項(xiàng)目,提升自己的視野和水平! 然后這里也分享一些關(guān)于音視頻開發(fā)的一些感悟和日記

    2024年02月08日
    瀏覽(19)
  • 從星巴克看:NFT不僅僅是一種數(shù)字資產(chǎn),更代表著一種全新的交互模式

    品牌方不應(yīng)將數(shù)字化的生意局限在NFT收藏品上,更需另辟蹊徑,比如說粉絲通證。“粉絲通證與其說是一個概念,更準(zhǔn)確的描述一種運(yùn)營系統(tǒng),而任何以此為基礎(chǔ)進(jìn)行的活動都是只是一種實(shí)現(xiàn)方式。如果發(fā)行的品牌方有強(qiáng)大影響力或者‘信心’,那么發(fā)售一款NFT收藏品是最簡

    2024年02月11日
    瀏覽(21)
  • C++ 具名要求-全庫范圍的概念 - 一種等價關(guān)系(operator==)- 是一種嚴(yán)格弱序關(guān)系(operator< )

    此頁面中列出的 具名要求 ,是 C++ 標(biāo)準(zhǔn)的規(guī)范性文本中使用的具名要求,用于定義標(biāo)準(zhǔn)庫的期待。 某些具名要求在 C++20 中正在以概念語言特性進(jìn)行形式化。在那之前,確保以滿足這些要求的模板實(shí)參實(shí)例化標(biāo)準(zhǔn)庫模板是程序員的重?fù)?dān)。若不這么做,則可能導(dǎo)致非常復(fù)雜的編

    2024年01月21日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包