• BO(Business Object)是一种用于表示业务对象的设计模式


    1、Service层 BO

    1.1、FruitService接口

    1. package com.csdn.fruit.service;
    2. import com.csdn.fruit.dto.PageInfo;
    3. import com.csdn.fruit.dto.PageQueryParam;
    4. import com.csdn.fruit.pojo.Fruit;
    5. public interface FruitService {
    6. PageInfo getFruitPageInfo(PageQueryParam pageQueryParam);
    7. void addFruit(Fruit fruit);
    8. void updateFruit(Fruit fruit);
    9. void delFruit(Integer fid);
    10. Fruit getFruitById(Integer fid);
    11. Fruit getFruitByFname(String fname);
    12. }

    1.2、FruitServiceImpl实现类

    1. package com.csdn.fruit.service.impl;
    2. import com.csdn.fruit.dao.FruitDao;
    3. import com.csdn.fruit.dao.impl.FruitDaoImpl;
    4. import com.csdn.fruit.dto.PageInfo;
    5. import com.csdn.fruit.dto.PageQueryParam;
    6. import com.csdn.fruit.pojo.Fruit;
    7. import com.csdn.fruit.service.FruitService;
    8. import java.util.List;
    9. public class FruitServiceImpl implements FruitService {
    10. private FruitDao fruitDao = new FruitDaoImpl();
    11. @Override
    12. public PageInfo getFruitPageInfo(PageQueryParam pageQueryParam) {
    13. Integer pageNo = pageQueryParam.getPageNo();
    14. Integer pageSize = pageQueryParam.getPageSize();
    15. String keyword = pageQueryParam.getKeyword();
    16. List fruitList = fruitDao.getFruitList(pageNo, pageSize, keyword);
    17. Integer recordCount = fruitDao.getRecordCount(pageQueryParam.getKeyword());
    18. PageInfo fruitPageInfo = new PageInfo<>(fruitList, pageNo, recordCount);
    19. return fruitPageInfo;
    20. }
    21. @Override
    22. public void addFruit(Fruit fruit) {
    23. if (fruitDao.getFruitByFname(fruit.getFname()) == null) {
    24. fruitDao.addFruit(fruit);
    25. }
    26. }
    27. @Override
    28. public void updateFruit(Fruit fruit) {
    29. fruitDao.updateFruit(fruit);
    30. }
    31. @Override
    32. public void delFruit(Integer fid) {
    33. fruitDao.delFruitByFid(fid);
    34. }
    35. @Override
    36. public Fruit getFruitById(Integer fid) {
    37. return fruitDao.getFruitByFid(fid);
    38. }
    39. @Override
    40. public Fruit getFruitByFname(String fname) {
    41. return fruitDao.getFruitByFname(fname);
    42. }
    43. }

    2、DAO层

    2.1、FruitDao接口

    1. package com.csdn.fruit.dao;
    2. import com.csdn.fruit.pojo.Fruit;
    3. import java.util.List;
    4. //dao :Data Access Object 数据访问对象
    5. //接口设计
    6. public interface FruitDao {
    7. void addFruit(Fruit fruit);
    8. void delFruit(String fname);
    9. //通过 fid 删除 水果库存记录
    10. void delFruitByFid(Integer fid);
    11. void updateFruit(Fruit fruit);
    12. @Deprecated
    13. List getFruitList();
    14. @Deprecated
    15. List getFruitList(Integer pageNo, Integer pageSize);
    16. List getFruitList(Integer pageNo, Integer pageSize,String keyword);
    17. Fruit getFruitByFname(String fname);
    18. Fruit getFruitByFid(Integer fid);
    19. //查询总记录条数
    20. @Deprecated
    21. Integer getRecordCount();
    22. Integer getRecordCount(String keyword);
    23. }

    2.2、FruitDaoImpl实现类

    1. package com.csdn.fruit.dao.impl;
    2. import com.csdn.fruit.dao.FruitDao;
    3. import com.csdn.fruit.pojo.Fruit;
    4. import com.csdn.mymvc.dao.BaseDao;
    5. import java.util.List;
    6. public class FruitDaoImpl extends BaseDao implements FruitDao {
    7. @Override
    8. public void addFruit(Fruit fruit) {
    9. String sql = "insert into t_fruit values (0,?,?,?,?)";
    10. super.executeUpdate(sql, fruit.getFname(), fruit.getPrice(), fruit.getFcount(), fruit.getRemark());
    11. }
    12. @Override
    13. public void delFruit(String fname) {
    14. String sql = "delete from t_fruit where fname=?";
    15. super.executeUpdate(sql, fname);
    16. }
    17. //通过 fid 删除水果库存记录
    18. @Override
    19. public void delFruitByFid(Integer fid) {
    20. super.executeUpdate("delete from t_fruit where fid = ? ", fid);
    21. }
    22. //通过 fid 可以修改所有的属性值
    23. @Override
    24. public void updateFruit(Fruit fruit) {
    25. String sql = "update t_fruit set fname=?,price=?,fcount=?,remark=? where fid = ?";
    26. super.executeUpdate(sql, fruit.getFname(), fruit.getPrice(), fruit.getFcount(), fruit.getRemark(), fruit.getFid());
    27. }
    28. @Override
    29. public List getFruitList() {
    30. return super.executeQuery("select * from t_fruit");
    31. }
    32. @Override
    33. public List getFruitList(Integer pageNo, Integer pageSize) {
    34. return super.executeQuery("select * from t_fruit limit ?,?", (pageNo - 1) * pageSize, pageSize);
    35. }
    36. @Override
    37. public List getFruitList(Integer pageNo, Integer pageSize, String keyword) {
    38. return super.executeQuery("select * from t_fruit where fname like ? or remark like? limit ?,?", "%" + keyword + "%", "%" + keyword + "%", (pageNo - 1) * pageSize, pageSize);
    39. }
    40. @Override
    41. public Fruit getFruitByFname(String fname) {
    42. return load("select * from t_fruit where fname = ?", fname);
    43. }
    44. @Override
    45. public Fruit getFruitByFid(Integer fid) {
    46. return load("select * from t_fruit where fid=?", fid);
    47. }
    48. @Override
    49. public Integer getRecordCount() {
    50. String sql = "select count(*) from t_fruit";
    51. return ((Long) executeComplexQuery(sql).get(0)[0]).intValue();
    52. }
    53. @Override
    54. public Integer getRecordCount(String keyword) {
    55. String sql = "select count(*) from t_fruit where fname like ? or remark like ? ";
    56. return ((Long) executeComplexQuery(sql, "%" + keyword + "%", "%" + keyword + "%").get(0)[0]).intValue();
    57. }
    58. }

    3、BO层文字解读

    BO是 Business Object 的缩写,是一种用于表示业务对象的设计模式。在Java中,BO的主要作用是 封装业务逻辑,实现业务流程的可重用性和可维护性。

    BO主要有以下几个作用:

    1. 实现业务逻辑的封装:将业务逻辑封装在BO对象中,可以方便地对业务逻辑进行管理和维护,实现业务流程的可重用性和可维护性。

    2. 数据的处理和传递:BO对象通常会对数据库中的数据进行处理和传递,实现业务流程的控制和协调。

    3. 业务流程的控制:BO对象可以实现业务流程的控制和协调,确保业务流程的正确执行。

    4. 实现业务规则的验证:BO对象可以实现业务规则的验证,确保业务数据的正确性和一致性。

    总之,BO在Java中的作用是非常重要的,它可以帮助我们更好地管理和维护业务逻辑,实现业务流程的可重用性和可维护性。

    在Java中,BO代表业务对象,它是一个纯Java对象,用于表示业务层中的实体或数据传输对象。BO在应用程序中的主要作用是:

    1. 封装业务逻辑:业务对象表示业务领域的实体,包含业务逻辑和数据。它们通常有一些方法来处理特定的业务操作或业务规则,例如验证输入数据是否有效等。

    2. 简化数据访问:业务对象通常包含一些数据操作方法,用于与数据库或其他数据存储服务进行交互。通过使用BO,可以抽象出与数据存储相关的细节,简化代码和业务逻辑。

    3. 确保代码重用:通过将业务逻辑和数据访问逻辑封装在BO中,可以提高代码的重用性和可维护性。这也可以减少代码冗余和减少依赖性。

    4. 提高代码的可测试性:业务对象通常非常易于测试,因为它们是独立的、有明确定义的实体。可以通过针对BO进行单元测试来验证其正确性,从而保证系统的稳定性和可靠性。

    BO(Business Object)在Java中的作用是作为业务对象,将业务逻辑封装在其中,实现与数据访问层的分离,提高系统的可维护性和可扩展性。

    在Java的企业级开发中,通常使用三层架构来组织应用,即表示层、业务逻辑层和数据访问层。BO主要作为业务逻辑层的一个组成部分,用于封装业务逻辑的实现。

    通过BO,可以将一些繁琐的业务逻辑封装在单独的对象中,使得业务逻辑更加清晰,易于维护和扩展。同时,BO还可以实现对业务操作的安全控制,确保业务数据的完整性和安全性。

    BO通常包括以下功能:

    • 对外提供业务逻辑接口
    • 封装业务逻辑实现
    • 控制业务操作的安全性和数据完整性
    • 协调不同业务逻辑之间的调用和交互

    在Java中,BO表示Business Object,即业务对象,是一种用于封装业务逻辑的Java对象。BO主要用于将业务逻辑从应用程序的其他部分中分离出来,使得业务逻辑能够单独地被测试、维护和修改。BO通常包含数据及其处理规则,用于操作数据库、WebService或其他外部系统。

    BO的作用主要有以下几个方面:

    1. 分离业务逻辑:BO可以将复杂的业务逻辑从其他部分中分离出来,使得代码更加清晰,易于维护;
    2. 提高可重用性:BO可以被多次使用,从而提高了代码的可重用性;
    3. 简化代码:BO可以将复杂的业务逻辑封装起来,简化应用程序的其余部分的代码,使得应用程序更加简洁;
    4. 实现业务规则:BO可以封装业务规则,例如数据验证规则、业务计算等,从而确保这些规则可以被正确地应用。

    综上所述,BO是Java中非常重要的一种对象,它能够帮助开发人员更加有效地管理业务逻辑,提高代码的可维护性、可重用性和可读性。

    在Java中,BO是指“Business Object”,也称为“业务对象”。BO主要用于在业务逻辑层中封装和处理业务逻辑。它们可以是任何对象,例如实体对象或值对象,通常具有以下功能:

    1. 数据验证和处理:BO可以在处理业务逻辑时对数据进行验证和处理,确保数据的完整性和一致性。

    2. 业务逻辑处理:BO可以定义和执行特定的业务逻辑,例如计算、转换和验证数据等。

    3. 数据访问控制:BO可以控制对数据的访问权限,以确保数据的安全性和保密性。

    4. 数据持久化:BO可以负责将数据持久化到数据库中或从数据库中读取数据。

    总之,BO在Java中起着重要的作用,它们是实现业务逻辑的关键组件之一。

  • 相关阅读:
    C语言qsort()函数详细解析
    51单片机汇编代码规范
    还搞不明白“响应式编程”,那得看这篇
    企业计算机服务器中了faust勒索病毒怎么解密,faust勒索病毒解密流程
    数据可视化在商业领域有哪些重要性?
    视频号创作分成计划揭秘!300+收益轻松拿,幻术视频成爆款!
    做转子力学分析,你选APDL还是Workbench仿真?
    Kubernetes 能取代 Docker吗?
    Python+opencv实图片定位
    opencv 人脸识别,并抓拍
  • 原文地址:https://blog.csdn.net/m0_65152767/article/details/134224042