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();@Overridepublic 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;}@Overridepublic void addFruit(Fruit fruit) {if (fruitDao.getFruitByFname(fruit.getFname()) == null) {fruitDao.addFruit(fruit);}}@Overridepublic void updateFruit(Fruit fruit) {fruitDao.updateFruit(fruit);}@Overridepublic void delFruit(Integer fid) {fruitDao.delFruitByFid(fid);}@Overridepublic Fruit getFruitById(Integer fid) {return fruitDao.getFruitByFid(fid);}@Overridepublic 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);@DeprecatedList<Fruit> getFruitList();@DeprecatedList<Fruit> getFruitList(Integer pageNo, Integer pageSize);List<Fruit> getFruitList(Integer pageNo, Integer pageSize,String keyword);Fruit getFruitByFname(String fname);Fruit getFruitByFid(Integer fid);//查询总记录条数@DeprecatedInteger 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 {@Overridepublic void addFruit(Fruit fruit) {String sql = "insert into t_fruit values (0,?,?,?,?)";super.executeUpdate(sql, fruit.getFname(), fruit.getPrice(), fruit.getFcount(), fruit.getRemark());}@Overridepublic void delFruit(String fname) {String sql = "delete from t_fruit where fname=?";super.executeUpdate(sql, fname);}//通过 fid 删除水果库存记录@Overridepublic void delFruitByFid(Integer fid) {super.executeUpdate("delete from t_fruit where fid = ? ", fid);}//通过 fid 可以修改所有的属性值@Overridepublic 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());}@Overridepublic List<Fruit> getFruitList() {return super.executeQuery("select * from t_fruit");}@Overridepublic List<Fruit> getFruitList(Integer pageNo, Integer pageSize) {return super.executeQuery("select * from t_fruit limit ?,?", (pageNo - 1) * pageSize, pageSize);}@Overridepublic 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);}@Overridepublic Fruit getFruitByFname(String fname) {return load("select * from t_fruit where fname = ?", fname);}@Overridepublic Fruit getFruitByFid(Integer fid) {return load("select * from t_fruit where fid=?", fid);}@Overridepublic Integer getRecordCount() {String sql = "select count(*) from t_fruit";return ((Long) executeComplexQuery(sql).get(0)[0]).intValue();}@Overridepublic 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主要有以下几个作用:
实现业务逻辑的封装:将业务逻辑封装在BO对象中,可以方便地对业务逻辑进行管理和维护,实现业务流程的可重用性和可维护性。
数据的处理和传递:BO对象通常会对数据库中的数据进行处理和传递,实现业务流程的控制和协调。
业务流程的控制:BO对象可以实现业务流程的控制和协调,确保业务流程的正确执行。
实现业务规则的验证:BO对象可以实现业务规则的验证,确保业务数据的正确性和一致性。
总之,BO在Java中的作用是非常重要的,它可以帮助我们更好地管理和维护业务逻辑,实现业务流程的可重用性和可维护性。
在Java中,BO代表业务对象,它是一个纯Java对象,用于表示业务层中的实体或数据传输对象。BO在应用程序中的主要作用是:
封装业务逻辑:业务对象表示业务领域的实体,包含业务逻辑和数据。它们通常有一些方法来处理特定的业务操作或业务规则,例如验证输入数据是否有效等。
简化数据访问:业务对象通常包含一些数据操作方法,用于与数据库或其他数据存储服务进行交互。通过使用BO,可以抽象出与数据存储相关的细节,简化代码和业务逻辑。
确保代码重用:通过将业务逻辑和数据访问逻辑封装在BO中,可以提高代码的重用性和可维护性。这也可以减少代码冗余和减少依赖性。
提高代码的可测试性:业务对象通常非常易于测试,因为它们是独立的、有明确定义的实体。可以通过针对BO进行单元测试来验证其正确性,从而保证系统的稳定性和可靠性。
BO(Business Object)在Java中的作用是作为业务对象,将业务逻辑封装在其中,实现与数据访问层的分离,提高系统的可维护性和可扩展性。
在Java的企业级开发中,通常使用三层架构来组织应用,即表示层、业务逻辑层和数据访问层。BO主要作为业务逻辑层的一个组成部分,用于封装业务逻辑的实现。
通过BO,可以将一些繁琐的业务逻辑封装在单独的对象中,使得业务逻辑更加清晰,易于维护和扩展。同时,BO还可以实现对业务操作的安全控制,确保业务数据的完整性和安全性。
BO通常包括以下功能:
- 对外提供业务逻辑接口
- 封装业务逻辑实现
- 控制业务操作的安全性和数据完整性
- 协调不同业务逻辑之间的调用和交互
在Java中,BO表示Business Object,即业务对象,是一种用于封装业务逻辑的Java对象。BO主要用于将业务逻辑从应用程序的其他部分中分离出来,使得业务逻辑能够单独地被测试、维护和修改。BO通常包含数据及其处理规则,用于操作数据库、WebService或其他外部系统。
BO的作用主要有以下几个方面:
- 分离业务逻辑:BO可以将复杂的业务逻辑从其他部分中分离出来,使得代码更加清晰,易于维护;
- 提高可重用性:BO可以被多次使用,从而提高了代码的可重用性;
- 简化代码:BO可以将复杂的业务逻辑封装起来,简化应用程序的其余部分的代码,使得应用程序更加简洁;
- 实现业务规则:BO可以封装业务规则,例如数据验证规则、业务计算等,从而确保这些规则可以被正确地应用。
综上所述,BO是Java中非常重要的一种对象,它能够帮助开发人员更加有效地管理业务逻辑,提高代码的可维护性、可重用性和可读性。
在Java中,BO是指“Business Object”,也称为“业务对象”。BO主要用于在业务逻辑层中封装和处理业务逻辑。它们可以是任何对象,例如实体对象或值对象,通常具有以下功能:
数据验证和处理:BO可以在处理业务逻辑时对数据进行验证和处理,确保数据的完整性和一致性。
业务逻辑处理:BO可以定义和执行特定的业务逻辑,例如计算、转换和验证数据等。
数据访问控制:BO可以控制对数据的访问权限,以确保数据的安全性和保密性。
数据持久化:BO可以负责将数据持久化到数据库中或从数据库中读取数据。
总之,BO在Java中起着重要的作用,它们是实现业务逻辑的关键组件之一。