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

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实现类

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 数据访问对象
//接口设计
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);

    //查询总记录条数
    @Deprecated
    Integer getRecordCount();

    Integer getRecordCount(String keyword);
}

2.2、FruitDaoImpl实现类

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 的缩写,是一种用于表示业务对象的设计模式。在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中起着重要的作用,它们是实现业务逻辑的关键组件之一。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值