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主要有以下几个作用:
实现业务逻辑的封装:将业务逻辑封装在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中起着重要的作用,它们是实现业务逻辑的关键组件之一。