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

网站建设kaituozu刚刚石家庄发生大事了

网站建设kaituozu,刚刚石家庄发生大事了,北京公司名称,阿里巴巴网站头像你会放什么做头像通用Service接口 说明: 通用 Service CRUD 封装IService接口#xff0c;进一步封装 CRUD 采用 get 查询单行 remove 删 除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆#xff0c;泛型 T 为任意实体对象建议如果存在自定义通用 Service 方法的可能#x…通用Service接口 说明: 通用 Service CRUD 封装IService接口进一步封装 CRUD 采用 get 查询单行 remove 删 除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆泛型 T 为任意实体对象建议如果存在自定义通用 Service 方法的可能请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类官网地址https://baomidou.com/pages/49cc81/#service-crud-%E6%8E%A5%E5%8F% A3 IService /** Copyright (c) 2011-2022, baomidou (jobobqq.com).** Licensed under the Apache License, Version 2.0 (the License);* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/ package com.baomidou.mybatisplus.extension.service;import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.conditions.query.ChainQuery; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.ChainUpdate; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; import com.baomidou.mybatisplus.extension.kotlin.KtQueryChainWrapper; import com.baomidou.mybatisplus.extension.kotlin.KtUpdateChainWrapper; import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import org.springframework.transaction.annotation.Transactional;import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors;/*** 顶级 Service** author hubin* since 2018-06-23*/ public interface IServiceT {/*** 默认批次提交数量*/int DEFAULT_BATCH_SIZE 1000;/*** 插入一条记录选择字段策略插入** param entity 实体对象*/default boolean save(T entity) {return SqlHelper.retBool(getBaseMapper().insert(entity));}/*** 插入批量** param entityList 实体对象集合*/Transactional(rollbackFor Exception.class)default boolean saveBatch(CollectionT entityList) {return saveBatch(entityList, DEFAULT_BATCH_SIZE);}/*** 插入批量** param entityList 实体对象集合* param batchSize 插入批次数量*/boolean saveBatch(CollectionT entityList, int batchSize);/*** 批量修改插入** param entityList 实体对象集合*/Transactional(rollbackFor Exception.class)default boolean saveOrUpdateBatch(CollectionT entityList) {return saveOrUpdateBatch(entityList, DEFAULT_BATCH_SIZE);}/*** 批量修改插入** param entityList 实体对象集合* param batchSize 每次的数量*/boolean saveOrUpdateBatch(CollectionT entityList, int batchSize);/*** 根据 ID 删除** param id 主键ID*/default boolean removeById(Serializable id) {return SqlHelper.retBool(getBaseMapper().deleteById(id));}/*** 根据 ID 删除** param id 主键(类型必须与实体类型字段保持一致)* param useFill 是否启用填充(为true的情况,会将入参转换实体进行delete删除)* return 删除结果* since 3.5.0*/default boolean removeById(Serializable id, boolean useFill) {throw new UnsupportedOperationException(不支持的方法!);}/*** 根据实体(ID)删除** param entity 实体* since 3.4.4*/default boolean removeById(T entity) {return SqlHelper.retBool(getBaseMapper().deleteById(entity));}/*** 根据 columnMap 条件删除记录** param columnMap 表字段 map 对象*/default boolean removeByMap(MapString, Object columnMap) {Assert.notEmpty(columnMap, error: columnMap must not be empty);return SqlHelper.retBool(getBaseMapper().deleteByMap(columnMap));}/*** 根据 entity 条件删除记录** param queryWrapper 实体包装类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default boolean remove(WrapperT queryWrapper) {return SqlHelper.retBool(getBaseMapper().delete(queryWrapper));}/*** 删除根据ID 批量删除** param list 主键ID或实体列表*/default boolean removeByIds(Collection? list) {if (CollectionUtils.isEmpty(list)) {return false;}return SqlHelper.retBool(getBaseMapper().deleteBatchIds(list));}/*** 批量删除** param list 主键ID或实体列表* param useFill 是否填充(为true的情况,会将入参转换实体进行delete删除)* return 删除结果* since 3.5.0*/Transactional(rollbackFor Exception.class)default boolean removeByIds(Collection? list, boolean useFill) {if (CollectionUtils.isEmpty(list)) {return false;}if (useFill) {return removeBatchByIds(list, true);}return SqlHelper.retBool(getBaseMapper().deleteBatchIds(list));}/*** 批量删除(jdbc批量提交)** param list 主键ID或实体列表(主键ID类型必须与实体类型字段保持一致)* return 删除结果* since 3.5.0*/Transactional(rollbackFor Exception.class)default boolean removeBatchByIds(Collection? list) {return removeBatchByIds(list, DEFAULT_BATCH_SIZE);}/*** 批量删除(jdbc批量提交)** param list 主键ID或实体列表(主键ID类型必须与实体类型字段保持一致)* param useFill 是否启用填充(为true的情况,会将入参转换实体进行delete删除)* return 删除结果* since 3.5.0*/Transactional(rollbackFor Exception.class)default boolean removeBatchByIds(Collection? list, boolean useFill) {return removeBatchByIds(list, DEFAULT_BATCH_SIZE, useFill);}/*** 批量删除(jdbc批量提交)** param list 主键ID或实体列表* param batchSize 批次大小* return 删除结果* since 3.5.0*/default boolean removeBatchByIds(Collection? list, int batchSize) {throw new UnsupportedOperationException(不支持的方法!);}/*** 批量删除(jdbc批量提交)** param list 主键ID或实体列表* param batchSize 批次大小* param useFill 是否启用填充(为true的情况,会将入参转换实体进行delete删除)* return 删除结果* since 3.5.0*/default boolean removeBatchByIds(Collection? list, int batchSize, boolean useFill) {throw new UnsupportedOperationException(不支持的方法!);}/*** 根据 ID 选择修改** param entity 实体对象*/default boolean updateById(T entity) {return SqlHelper.retBool(getBaseMapper().updateById(entity));}/*** 根据 UpdateWrapper 条件更新记录 需要设置sqlset** param updateWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper}*/default boolean update(WrapperT updateWrapper) {return update(null, updateWrapper);}/*** 根据 whereEntity 条件更新记录** param entity 实体对象* param updateWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper}*/default boolean update(T entity, WrapperT updateWrapper) {return SqlHelper.retBool(getBaseMapper().update(entity, updateWrapper));}/*** 根据ID 批量更新** param entityList 实体对象集合*/Transactional(rollbackFor Exception.class)default boolean updateBatchById(CollectionT entityList) {return updateBatchById(entityList, DEFAULT_BATCH_SIZE);}/*** 根据ID 批量更新** param entityList 实体对象集合* param batchSize 更新批次数量*/boolean updateBatchById(CollectionT entityList, int batchSize);/*** TableId 注解存在更新记录否插入一条记录** param entity 实体对象*/boolean saveOrUpdate(T entity);/*** 根据 ID 查询** param id 主键ID*/default T getById(Serializable id) {return getBaseMapper().selectById(id);}/*** 查询根据ID 批量查询** param idList 主键ID列表*/default ListT listByIds(Collection? extends Serializable idList) {return getBaseMapper().selectBatchIds(idList);}/*** 查询根据 columnMap 条件** param columnMap 表字段 map 对象*/default ListT listByMap(MapString, Object columnMap) {return getBaseMapper().selectByMap(columnMap);}/*** 根据 Wrapper查询一条记录 br/* p结果集如果是多个会抛出异常随机取一条加上限制条件 wrapper.last(LIMIT 1)/p** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default T getOne(WrapperT queryWrapper) {return getOne(queryWrapper, true);}/*** 根据 Wrapper查询一条记录** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}* param throwEx 有多个 result 是否抛出异常*/T getOne(WrapperT queryWrapper, boolean throwEx);/*** 根据 Wrapper查询一条记录** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/MapString, Object getMap(WrapperT queryWrapper);/*** 根据 Wrapper查询一条记录** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}* param mapper 转换函数*/V V getObj(WrapperT queryWrapper, Function? super Object, V mapper);/*** 查询总记录数** see Wrappers#emptyWrapper()*/default long count() {return count(Wrappers.emptyWrapper());}/*** 根据 Wrapper 条件查询总记录数** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default long count(WrapperT queryWrapper) {return SqlHelper.retCount(getBaseMapper().selectCount(queryWrapper));}/*** 查询列表** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default ListT list(WrapperT queryWrapper) {return getBaseMapper().selectList(queryWrapper);}/*** 查询所有** see Wrappers#emptyWrapper()*/default ListT list() {return list(Wrappers.emptyWrapper());}/*** 翻页查询** param page 翻页对象* param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default E extends IPageT E page(E page, WrapperT queryWrapper) {return getBaseMapper().selectPage(page, queryWrapper);}/*** 无条件翻页查询** param page 翻页对象* see Wrappers#emptyWrapper()*/default E extends IPageT E page(E page) {return page(page, Wrappers.emptyWrapper());}/*** 查询列表** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default ListMapString, Object listMaps(WrapperT queryWrapper) {return getBaseMapper().selectMaps(queryWrapper);}/*** 查询所有列表** see Wrappers#emptyWrapper()*/default ListMapString, Object listMaps() {return listMaps(Wrappers.emptyWrapper());}/*** 查询全部记录*/default ListObject listObjs() {return listObjs(Function.identity());}/*** 查询全部记录** param mapper 转换函数*/default V ListV listObjs(Function? super Object, V mapper) {return listObjs(Wrappers.emptyWrapper(), mapper);}/*** 根据 Wrapper 条件查询全部记录** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default ListObject listObjs(WrapperT queryWrapper) {return listObjs(queryWrapper, Function.identity());}/*** 根据 Wrapper 条件查询全部记录** param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}* param mapper 转换函数*/default V ListV listObjs(WrapperT queryWrapper, Function? super Object, V mapper) {return getBaseMapper().selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(mapper).collect(Collectors.toList());}/*** 翻页查询** param page 翻页对象* param queryWrapper 实体对象封装操作类 {link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}*/default E extends IPageMapString, Object E pageMaps(E page, WrapperT queryWrapper) {return getBaseMapper().selectMapsPage(page, queryWrapper);}/*** 无条件翻页查询** param page 翻页对象* see Wrappers#emptyWrapper()*/default E extends IPageMapString, Object E pageMaps(E page) {return pageMaps(page, Wrappers.emptyWrapper());}/*** 获取对应 entity 的 BaseMapper** return BaseMapper*/BaseMapperT getBaseMapper();/*** 获取 entity 的 class** return {link ClassT}*/ClassT getEntityClass();/*** 以下的方法使用介绍:** 一. 名称介绍* 1. 方法名带有 query 的为对数据的查询操作, 方法名带有 update 的为对数据的修改操作* 2. 方法名带有 lambda 的为内部方法入参 column 支持函数式的* 二. 支持介绍** 1. 方法名带有 query 的支持以 {link ChainQuery} 内部的方法名结尾进行数据查询操作* 2. 方法名带有 update 的支持以 {link ChainUpdate} 内部的方法名为结尾进行数据修改操作** 三. 使用示例,只用不带 lambda 的方法各展示一个例子,其他类推* 1. 根据条件获取一条数据: query().eq(column, value).one()* 2. 根据条件删除一条数据: update().eq(column, value).remove()**//*** 链式查询 普通** return QueryWrapper 的包装类*/default QueryChainWrapperT query() {return ChainWrappers.queryChain(getBaseMapper());}/*** 链式查询 lambda 式* p注意不支持 Kotlin /p** return LambdaQueryWrapper 的包装类*/default LambdaQueryChainWrapperT lambdaQuery() {return ChainWrappers.lambdaQueryChain(getBaseMapper());}/*** 链式查询 lambda 式* kotlin 使用** return KtQueryWrapper 的包装类*/default KtQueryChainWrapperT ktQuery() {return ChainWrappers.ktQueryChain(getBaseMapper(), getEntityClass());}/*** 链式查询 lambda 式* kotlin 使用** return KtQueryWrapper 的包装类*/default KtUpdateChainWrapperT ktUpdate() {return ChainWrappers.ktUpdateChain(getBaseMapper(), getEntityClass());}/*** 链式更改 普通** return UpdateWrapper 的包装类*/default UpdateChainWrapperT update() {return ChainWrappers.updateChain(getBaseMapper());}/*** 链式更改 lambda 式* p注意不支持 Kotlin /p** return LambdaUpdateWrapper 的包装类*/default LambdaUpdateChainWrapperT lambdaUpdate() {return ChainWrappers.lambdaUpdateChain(getBaseMapper());}/*** p* 根据updateWrapper尝试更新否继续执行saveOrUpdate(T)方法* 此次修改主要是减少了此项业务代码的代码量存在性验证之后的saveOrUpdate操作* /p** param entity 实体对象*/default boolean saveOrUpdate(T entity, WrapperT updateWrapper) {return update(entity, updateWrapper) || saveOrUpdate(entity);} } MyBatis-Plus中有一个接口 IService和其实现类 ServiceImpl封装了常见的业务层逻辑 详情查看源码IService和ServiceImpl 创建Service接口和实现类 UserService.interface package com.xxxx.mybatisplus.service;import com.baomidou.mybatisplus.extension.service.IService; import com.xxxx.mybatisplus.pojo.User;public interface UserService extends IServiceUser { } UserServiceImpl package com.xxxx.mybatisplus.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xxxx.mybatisplus.mapper.UserMapper; import com.xxxx.mybatisplus.pojo.User; import com.xxxx.mybatisplus.service.UserService; import org.springframework.stereotype.Service;Service public class UserServiceImpl extends ServiceImplUserMapper, User implements UserService {} 测试通过Service 查询总记录数 package com.xxxx.mybatisplus;import com.xxxx.mybatisplus.service.UserService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;SpringBootTest public class MyBatisPlusServiceTest {Autowiredprivate UserService userService;/*** 查询总记录数* SELECT COUNT( * ) FROM user*/Testpublic void testGetCount(){long count userService.count();System.out.println(总记录数 count);}} 批量添加功能 Testpublic void testInsertMore(){ListUser list new ArrayList();for (int i 1;i10;i){User user new User();user.setName(ybci);user.setAge(20i);list.add(user);}boolean b userService.saveBatch(list);System.out.println(b);}
http://wiki.neutronadmin.com/news/80278/

相关文章:

  • 站外推广营销方案wordpress清除所有评论
  • 网站建设及服务合同apache fastcgi wordpress
  • 做网站做手机站还是自适应站自己怎么做网站网页
  • 禁止拿我们的网站做宣传青岛易龙网站建设
  • 烟台h5网站制作公司wordpress最常用水印
  • 如何创建设计个人网站seo外链的常见措施
  • 登录功能网站怎么做织梦网站制作费用
  • 网站建设教程免费湖南岚鸿wordpress tagline
  • 郑州专业网站设计公司地址移动互联和网站开发哪个好
  • 目前网站软件wordpress 挂件
  • 云南网站制作报价适合0基础网站开发软件
  • 古风网站建设文字图片一键生成器
  • 上海网站推广优化公司国外服务器ip大全
  • 更改网站主题江苏提升关键词排名收费
  • 优化网站技术汶上做网站
  • 周口市做网站h5游戏网站建设
  • title 网站建设广州10大网站开发
  • 做网站要会写什么软件网站建设项目需求说明
  • 手机网站方案编写做网站企业
  • 网站首页的head标签内用wordpress做官网
  • 公司做网站费用和人员配备宜兴网站建设哪家好
  • 手机如何建免费网站武义网站建设
  • 做暧暧国外网站网站建设与管理出来工资
  • 同一个地方做几个网站win7搭建wordpress
  • 科技局网站查新怎么做网站前端设计是什么意思
  • 手机怎样做网站app开发软件价格
  • 无锡企业网站seowordpress相关问题
  • 网站建设的目的是什么如何建网站做传奇网友
  • 网站维护一般需要多久镇江vi设计
  • 有了公网ip如何做网站没网站做cpa广告联盟