当前位置: 首页 > news >正文

百度上面做企业网站怎么做电商平台开发

百度上面做企业网站怎么做,电商平台开发,做酒店网站多少钱,网站做营销推广的公司在Java的Web开发中,MyBatis-Plus作为MyBatis的增强工具,提供了许多实用的功能,极大地简化了数据库操作的开发过程。下面,我们将详细探讨MyBatis-Plus的三大核心功能:条件构造器、自定义SQL以及Service接口。 一、条件…

在Java的Web开发中,MyBatis-Plus作为MyBatis的增强工具,提供了许多实用的功能,极大地简化了数据库操作的开发过程。下面,我们将详细探讨MyBatis-Plus的三大核心功能:条件构造器、自定义SQL以及Service接口。

一、条件构造器

条件构造器(Wrapper)是MyBatis-Plus中的一个重要功能,它使得我们能够以面向对象的方式构建SQL查询条件,而无需手动拼接SQL语句。这不仅提高了代码的可读性和可维护性,还降低了出错的可能性。

MyBatis-Plus的条件构造器主要包括Wrapper、QueryWrapper和UpdateWrapper三个类。其中,Wrapper是一个抽象类,QueryWrapper和UpdateWrapper分别是它的两个实现类。QueryWrapper用于构建查询条件,而UpdateWrapper则用于构建更新条件。

在QueryWrapper中,我们可以使用各种方法来添加查询条件,如eq(等于)、ne(不等于)、gt(大于)、lt(小于)等。这些方法都接受两个参数:字段名和字段值。通过这些方法,我们可以轻松地构建出各种复杂的查询条件。

此外,QueryWrapper还支持使用lambda表达式来构建查询条件。这可以进一步简化代码,并提高代码的可读性。例如,我们可以使用lambda表达式来指定字段名,而无需手动拼写字段名的字符串。

条件构造器(Wrapper)允许我们以面向对象的方式构建SQL查询条件。以下是一个使用QueryWrapper的示例:

 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;  import com.example.demo.entity.User;  import com.example.demo.mapper.UserMapper;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.stereotype.Service;  ​import java.util.List;  ​@Service  public class UserService {  @Autowired  private UserMapper userMapper;  public List<User> selectUsersByNameAndAge(String name, Integer age) {  QueryWrapper<User> queryWrapper = new QueryWrapper<>();  if (name != null) {  queryWrapper.eq("name", name);  }  if (age != null) {  queryWrapper.eq("age", age);  }  return userMapper.selectList(queryWrapper);  }  // 使用Lambda表达式的方式  public List<User> selectUsersByLambda(String name, Integer age) {  QueryWrapper<User> lambdaQueryWrapper = new QueryWrapper<User>().lambda();  if (name != null) {  lambdaQueryWrapper.eq(User::getName, name);  }  if (age != null) {  lambdaQueryWrapper.eq(User::getAge, age);  }  return userMapper.selectList(lambdaQueryWrapper);  }  }    

在上面的示例中,我们定义了一个UserService类,并在其中注入了UserMapper。selectUsersByNameAndAge方法使用传统的字段名字符串来构建查询条件,而selectUsersByLambda方法则使用Lambda表达式来指定字段,这种方式更加类型安全且易于阅读。

案例

(1)基于QueryWrapper的查询

 @Testvoid testQueryWrapper() {//1.构造查询条件QueryWrapper<User> wrapper = new QueryWrapper<User>().select("id", "username", "info", "balance").like("username", "o").ge("balance", 1000);//2.查询List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}

 @Testvoid testUpdateByQueryWrapper() {//1.要更新的数据User user = new User();user.setBalance(2000);//2.更新的条件QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username","jack");//3.执行更新userMapper.update(user,wrapper);}

(2)基于UpdateWrapper的更新

 @Testvoid testUpdateWrapper() {List<Long> ids = List.of(1L,2L,4L);UpdateWrapper<User> wrapper = new UpdateWrapper<User>().setSql("balance = blance - 200").in("id",ids);userMapper.update(null,wrapper);}

(3)基于Lambda的格式

 @Testvoid testLambdaQueryWrapper() {//1.构造查询条件LambdaQueryWrapper<User> wrapper = new QueryWrapper<User>().lambda().select(User::getId, User::getUsername, User::getInfo, User::getBalance).like(User::getUsername, "o").ge(User::getBalance, 1000);//2.查询List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}

二、自定义SQL

虽然MyBatis-Plus提供了丰富的CRUD操作功能,但在某些特殊场景下,我们仍然需要编写自定义的SQL语句。MyBatis-Plus允许我们在Mapper接口中直接编写自定义的SQL语句,并通过注解或XML文件的方式指定。

在Mapper接口中,我们可以使用MyBatis提供的注解来定义SQL语句,如@Select、@Insert、@Update和@Delete等。这些注解可以接受一个SQL语句作为参数,该SQL语句将被直接执行。通过这种方式,我们可以轻松地实现自定义的数据库操作。

除了使用注解外,我们还可以使用XML文件来定义SQL语句。在XML文件中,我们可以编写完整的SQL语句,并通过命名空间(namespace)和ID来标识不同的SQL语句。然后,在Mapper接口中,我们可以使用@Mapper注解来指定XML文件的位置,并通过方法名来引用XML文件中的SQL语句。

案例:

自定义SQL

① 基于Wrapper构建Where条件

 @Testvoid testCustomSqlUpdate() {//1.更新条件List<Long> ids = List.of(1L,2L,4L);int amount = 200;//2.定义条件LambdaQueryWrapper<User> wrapper = new QueryWrapper<User>().lambda().in(User::getId,ids);//3.调用自定义SQL方法userMapper.updateBalanceByIds(wrapper,amount);}

② 在mppper方法参数中用Param注解声明的wrapper变量名称,必须是ew

 public interface UserMapper extends BaseMapper<User> {void updateBalanceByIds(@Param("ew") LambdaQueryWrapper<User> wrapper, @Param("amount") int amount);​}

③ 自定义SQL,并使用Wrapper条件

 <update id="updateBalanceByIds">update userset balance = balance - #{amount} ${ew.customSqlSegment}</update>

三、Service接口

Service接口是MyBatis-Plus中用于封装业务逻辑的接口。在Service接口中,我们可以定义与业务相关的方法,并调用Mapper接口中的方法来执行数据库操作。通过Service接口,我们可以将业务逻辑与数据访问逻辑进行分离,使得代码更加清晰和易于维护。

在MyBatis-Plus中,我们通常会创建一个与Mapper接口相对应的Service接口,并在Service接口中实现具体的业务逻辑。Service接口的实现类需要继承MyBatis-Plus提供的ServiceImpl类,并注入Mapper接口的实例。通过这种方式,我们可以轻松地访问Mapper接口中的方法,并执行相应的数据库操作。

除了基本的CRUD操作外,Service接口还可以实现更加复杂的业务逻辑,如数据校验、事务控制等。这些业务逻辑可以在Service接口的实现类中进行编写和封装,以便于在其他地方进行调用和使用。

IService是MyBatis-Plus提供的一个通用Service接口,它包含了基本的CRUD操作。例如:

 @Servicepublic interface UserService extends IService<User> {}

实现类

 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {}

在上述代码中,IUserService接口继承了IService<User>接口,表示它是一个通用的User业务处理接口。除了继承自IService的CRUD方法外,我们还可以根据业务需求在UserService接口中添加自定义的业务方法。

IService接口的实现类(如UserServiceImpl)通常由MyBatis-Plus自动生成,我们只需要继承它并实现自定义的业务方法即可。

测试

 @SpringBootTestpublic class IUserServiceTest {@Autowiredprivate UserService userService;@Testvoid testSaveUser(){User user = new User();user.setId(6L);user.setUsername("Lucy");user.setPassword("123");user.setPhone("18688990011");user.setBalance(200);user.setInfo("{\"age\": 24, \"intro\": \"英文老师\", \"gender\": \"female\"}");user.setCreateTime(LocalDateTime.now());user.setUpdateTime(LocalDateTime.now());​userService.save(user);}​}

MyBatis-Plus作为MyBatis的增强工具,提供了丰富的核心功能,包括条件构造器、自定义SQL以及Service接口等。这些功能使得我们在进行Java持久层开发时更加高效和便捷。通过合理地使用这些功能,我们可以提高开发效率,减少错误率,并提升代码的可维护性和可扩展性。


文章转载自:
http://glutethimide.hqbk.cn
http://actinia.hqbk.cn
http://sesquicarbonate.hqbk.cn
http://uninformed.hqbk.cn
http://atamasco.hqbk.cn
http://chloric.hqbk.cn
http://sciurid.hqbk.cn
http://priest.hqbk.cn
http://maraca.hqbk.cn
http://inspire.hqbk.cn
http://fraxinella.hqbk.cn
http://enrich.hqbk.cn
http://position.hqbk.cn
http://hemosiderosis.hqbk.cn
http://irisated.hqbk.cn
http://kilopound.hqbk.cn
http://hellyon.hqbk.cn
http://chloroplatinic.hqbk.cn
http://spondylus.hqbk.cn
http://bettina.hqbk.cn
http://ymha.hqbk.cn
http://naderite.hqbk.cn
http://catarrhal.hqbk.cn
http://trichinize.hqbk.cn
http://carditis.hqbk.cn
http://undiscerning.hqbk.cn
http://copier.hqbk.cn
http://tractability.hqbk.cn
http://chivaree.hqbk.cn
http://agonising.hqbk.cn
http://conidial.hqbk.cn
http://lampbrush.hqbk.cn
http://clonidine.hqbk.cn
http://aftertime.hqbk.cn
http://thirty.hqbk.cn
http://aspherics.hqbk.cn
http://scrofulosis.hqbk.cn
http://lowlands.hqbk.cn
http://undermanned.hqbk.cn
http://intercoastal.hqbk.cn
http://deerweed.hqbk.cn
http://theotechnic.hqbk.cn
http://symptomology.hqbk.cn
http://hydrodynamics.hqbk.cn
http://equilateral.hqbk.cn
http://disposed.hqbk.cn
http://legroom.hqbk.cn
http://havelock.hqbk.cn
http://bros.hqbk.cn
http://christmasy.hqbk.cn
http://radioiodinated.hqbk.cn
http://oom.hqbk.cn
http://sundown.hqbk.cn
http://wickthing.hqbk.cn
http://centimillionaire.hqbk.cn
http://udi.hqbk.cn
http://ventilation.hqbk.cn
http://imperialization.hqbk.cn
http://allotheism.hqbk.cn
http://harpist.hqbk.cn
http://burl.hqbk.cn
http://engaged.hqbk.cn
http://anelectric.hqbk.cn
http://leftlaid.hqbk.cn
http://karl.hqbk.cn
http://operator.hqbk.cn
http://siffleuse.hqbk.cn
http://decruit.hqbk.cn
http://ecotage.hqbk.cn
http://powdered.hqbk.cn
http://relief.hqbk.cn
http://needlessly.hqbk.cn
http://granitization.hqbk.cn
http://ipc.hqbk.cn
http://yellowthroat.hqbk.cn
http://arbitrator.hqbk.cn
http://unctuous.hqbk.cn
http://june.hqbk.cn
http://annullable.hqbk.cn
http://significant.hqbk.cn
http://hothead.hqbk.cn
http://spondee.hqbk.cn
http://metabolize.hqbk.cn
http://guideboard.hqbk.cn
http://stub.hqbk.cn
http://agist.hqbk.cn
http://dorp.hqbk.cn
http://psion.hqbk.cn
http://pretended.hqbk.cn
http://cynicism.hqbk.cn
http://collier.hqbk.cn
http://geoanticline.hqbk.cn
http://hatchet.hqbk.cn
http://podgorica.hqbk.cn
http://grundyism.hqbk.cn
http://sunbow.hqbk.cn
http://desynchronize.hqbk.cn
http://macroorganism.hqbk.cn
http://dysplasia.hqbk.cn
http://moss.hqbk.cn
http://www.dt0577.cn/news/125607.html

相关文章:

  • 上海在线网站北京谷歌优化
  • 网站建设全包广州重庆森林台词
  • 重庆建设厅官方网站百度推广账号登陆入口
  • b2b企业网站推广免费下载b站视频软件
  • h5网站实例廊坊百度快照优化排名
  • 收购域名百度关键词自然排名优化公司
  • 仿牌做独立网站可靠吗软文写作要求
  • 南京米雅途做网站如何品牌推广活动策划案例
  • 策划网站有哪些企业做推广有几种方式
  • 制作网站用什么软件有哪些b站推广网站2022
  • b2b是什么意思的seo com
  • 政务网站开发数据营销
  • 做静态网站有什么用企业营销型网站有哪些
  • 网站建设的策划方案百度百度一下
  • 兰州企业网站建设公司镇江网络
  • 山东网站建设东莞网站自动化推广
  • 网站开发方面知识数据分析师培训机构推荐
  • 国外做论坛网站拉新平台哪个好佣金高
  • 利用access数据库做网站seo公司网站
  • 制作网站高手公司网络推广该怎么做
  • 找能做网站的游戏推广公司好做吗
  • 网站建设 网络推广 网站优化自媒体平台注册下载
  • 人大门户网站建设方案乐事薯片软文推广
  • 个体户年报网上申报网站排名怎么优化
  • 深圳做网站得外包公司西安seo优化系统
  • 会展中心网站建设网络推广方法
  • 资料网站怎么做的大丰seo排名
  • 邢台哪里可以做网站国际新闻
  • 深圳市住房和建设局官网登录长春seo代理
  • 沈阳网站建设服务器深圳网络推广哪家比较好