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

iis做的网站提示500学校的网站管理系统

iis做的网站提示500,学校的网站管理系统,网站设计与建设第一章,蓬莱有做网站的吗介绍 让 MybatisPlus 拥有像 Jpa 一样的直接在 mapper 接口中定义方法名(如 findByUserNameOrderByCreatedAsc )查询的能力(无需配置xml) 适用场景 假设有一个简单的场景,根据姓名查询用户并按照创建时间排序&#…
介绍

MybatisPlus 拥有像 Jpa 一样的直接在 mapper 接口中定义方法名(如 findByUserNameOrderByCreatedAsc )查询的能力(无需配置xml)

适用场景

假设有一个简单的场景,根据姓名查询用户并按照创建时间排序,如果用 mybatisplus 来写的话,需要用下面的代码来完成:

LambdaQueryWrapper<SysUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.orderByAsc(SysUser::getCreated);
lambdaQueryWrapper.like(SysUser::getUserName, "赵");
mapper.selectList(lambdaQueryWrapper);

但是如果用 Jpa 来实现,代码就很简单了,只需要在 Repository接口 定义下面的方法,在 service 里直接就可以调用:

List<SysUser> findByUserNameOrderByCreatedAsc(String userName);

所以说,在某些场景下, Jpa 确实是比 MybatisPlus 更简单实用的。为了让 Mybatisplus 拥有 Jpa 的能力,你的项目中非常需要 mybatis-plus-jpa-support !!!

Maven 引入

项目地址:mybatis-plus-jpa-support

<!--基于jdk21,想要低版本的自行下载源码打包-->
<dependency><groupId>com.xiaoyudeguang</groupId><artifactId>mybatis-plus-jpa-support</artifactId><version>1.0.2-SNAPSHOT</version>
</dependency>
使用教程
  1. 启动类声明 @EnableMybatisJpaSupport 注解
import com.xiaoyudeguang.mybatis.jpa.annotation.EnableMybatisJpaSupport;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan(basePackages = {"com.**.mapper"})
@EnableMybatisJpaSupport(basePackages = {"com.**.mapper"})
@SpringBootApplication
public class StartApp {public static void main(String[] args) {SpringApplication.run(StartApp.class, args);}
}
  1. 所有 mapper 接口的 @Mapper 注解都要替换为 @com.xiaoyudeguang.mybatis.jpa.support.annotation.Mapper 注解
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiaoyudeguang.mybatis.jpa.annotation.Mapper;import java.util.List;@Mapper
public interface SysUserMapper extends BaseMapper<SysUser> {List<SysUser> findByUserNoAndUserNameLike(String userNo, String userName);List<SysUser> findAllOrderByUserNoDesc(String userName);List<SysUser> findByUserNameLikeOrderByUserNoDesc(String userName);long countByUserName(String userName);List<SysUser> findByUserNameLike(String userName);List<SysUser> findByUserNameStartingWith(String userName);List<SysUser> findByUserNameContaining(String userName);void deleteByUserName(String userName);
}
  1. Service 中使用
import com.example.mapper.SysUserMapper;
import com.example.model.SysUser;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserServiceImpl {//注意,这里如果使用@Autowired注解,必须用@Qualifier("sysUserRepository")显示声明@Resourceprivate SysUserMapper sysUserRepository;@Overridepublic List<SysUser> testJpa(String userNo, String userName) {sysUserRepository.findByUserNoAndUserNameLike(userNo, userName);sysUserRepository.findByUserNameLike("findByUserNameLike");sysUserRepository.findAllOrderByUserNoDesc("findAllOrderByUserNoDesc");sysUserRepository.findByUserNameLikeOrderByUserNoDesc("findByUserNameLikeOrderByUserNoDesc");sysUserRepository.findByUserNameStartingWith("findByUserNameStartingWith");sysUserRepository.findByUserNameContaining("findByUserNameContaining");sysUserRepository.countByUserName("countByUserName");sysUserRepository.deleteByUserName("deleteByUserName");return List.of();}
}
  1. 通过继承抽象层 AbstractServiceImpl 类的来简化注入过程
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaoyudeguang.mybatis.jpa.annotation.Mapper;
import com.xiaoyudeguang.mybatis.jpa.web.mapper.AbstractMapper;
import com.xiaoyudeguang.mybatis.jpa.web.service.AbstractService;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.util.StringUtils;/*** AbstractServiceImpl类可以直接复制到项目中当做Service层的抽象类*/
public abstract class AbstractServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> implements AbstractService<M, T>, InitializingBean {@Autowiredprivate M baseMapper;protected M mapper;@Autowiredprotected ApplicationContext context;@Override@SuppressWarnings("unchecked")public void afterPropertiesSet() throws Exception {mapper = baseMapper;Class<?> mapperClass = baseMapper.getClass().getInterfaces()[0];String repositoryName = StringUtils.uncapitalize(mapperClass.getSimpleName().replace("Mapper", "Repository"));if (context.containsBean(repositoryName) && mapperClass.getDeclaredAnnotation(Mapper.class) != null) {mapper = (M) context.getBean(repositoryName);}}
}@Service
public class UserServiceImpl extends AbstractServiceImpl<SysUserMapper, SysUser> implements UserService {@Overridepublic List<SysUser> testJpa(String userNo, String userName) {//mapper接口中的自定义方法mapper.findByUserNoAndUserNameLike(userNo, userName);mapper.findByUserNameLike("findByUserNameLike");mapper.findAllOrderByUserNoDesc("findAllOrderByUserNoDesc");mapper.findByUserNameLikeOrderByUserNoDesc("findByUserNameLikeOrderByUserNoDesc");mapper.findByUserNameStartingWith("findByUserNameStartingWith");mapper.findByUserNameContaining("findByUserNameContaining");mapper.countByUserName("countByUserName");mapper.deleteByUserName("deleteByUserName");return List.of();}}
http://www.dtcms.com/a/590084.html

相关文章:

  • 13.POSIX信号量
  • 网站开发实习深圳外贸公司名单
  • Node.js后端框架Express.js
  • 网站建设不用备案的淘宝网网页版入口
  • 创意互动网站jsp做网站视频教程
  • 普中51单片机学习笔记-流水灯
  • 先备案先建网站运城市住房和城乡建设厅网站
  • 制作网站要什么软件app运营成本估算
  • MBSE与数字孪生:五大行业案例
  • 火狐安装uBlock广告拦截工具
  • AActor前面为什么要加A? UObject前面为什么要加U?
  • C++ 变量作用域 存储期 链接性:const / static / extern 全面解析
  • 五星酒店网站建设方案公司换网站换域名 备案
  • 阿里云虚拟主机装WordPress网站优化三要素
  • 用网站做淘客怎么赚钱奉化区建设局网站
  • 网站建设做什么抖音广告投放平台官网
  • 前端展示印度市场的核心股票
  • 宁波seo网站排名怎样在网站做友情链接
  • 国外网站大全帝国cms模板wordpress批量注册用户
  • Zabbix6聚合算法
  • 城阳做网站的公司在山东省建设监理协会网站
  • 瑞数——网上房地产补环境cookie及后缀XJlCTRRM获取
  • 韩国网站设计风格送菜上门网站app如何做
  • 在 Linux 中管理与安装字体(详细教程)
  • 中山哪里网站建设网站建设 壹起航
  • Python全栈项目:结合Puppeteer和AI模型操作浏览器
  • 中国建设银行 网站登录企业邮箱注册申请免费注册入口
  • 多输出电压条件下同步整流效率测试与优化
  • 六安市裕安区建设局网站wordpress导航栏颜色
  • 梨树县住房和城乡建设局网站在线短网址生成工具