做图的ppt模板下载网站,网站建设经理岗位职责,桐城住房建设网站,网站优化制作文章目录1 环境搭建1.1 创建一个maven的project1.2 pom.xml文件导入web开发依赖1.3 创建SpringBoot项目的主程序入口2 代码生成器3 配置数据库4 导入前端页面5 开始前端控制器的编码5.1 wrapper构造器mybatis-plus(简称 MP)是一个 MyBatis的增强工具#xff0c;在 MyBatis 的基…
文章目录1 环境搭建1.1 创建一个maven的project1.2 pom.xml文件导入web开发依赖1.3 创建SpringBoot项目的主程序入口2 代码生成器3 配置数据库4 导入前端页面5 开始前端控制器的编码5.1 wrapper构造器mybatis-plus(简称 MP)是一个 MyBatis的增强工具在 MyBatis 的基础上只做增强不做改变为简化开发、提高效率而生。1 环境搭建
1.1 创建一个maven的project 1.2 pom.xml文件导入web开发依赖
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.6.6/version
/parentdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId
/dependency1.3 创建SpringBoot项目的主程序入口
SpringBootApplication
public class MainApplication {public static void main(String[] args) {SpringApplication.run(MainApplication.class, args);}
}2 代码生成器 顾名思义代码生成器就是用来直接生成代码的一个程序。首先导入相关依赖
!--Mybatis-Plus生成器依赖--
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.3.1.tmp/version
/dependency!--freemarker 模板引擎(没有用原生的模板引擎)--
dependencygroupIdorg.freemarker/groupIdartifactIdfreemarker/artifactIdversion2.3.31/version
/dependency生成的代码需要使用lombok简化实体类开发导入相关依赖
!--lombok简化实体类开发如果之前没有下载过依赖的同名插件的话需要下载安装然后重启一下idea--
dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional
/dependency创建utils包拷贝代码生成器需要修改的两个地方数据库连接的数据库名、项目目录名。运行main方法报错java.lang.ClassNotFoundException:com.mysql.jdbc.Driver没有驱动需要导入数据库连接依赖
!--数据库连接驱动--
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version
/dependency生成成功之后mapper层的接口上加mapper注解或者在主程序入口出添加简单说一下service的方法都从哪里来也就是Ctrl进源码看他继承方法内部又实现的接口里定义了后面需要使用到的所有方法。
3 配置数据库
导入mybatis-plus的场景启动器
!--mybatis-plus的场景启动器 内置了jdbc的启动器无需重复引用--
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version
/dependencyresources目录下创建配置文件application.yml配置数据库的相关信息
server:# 修改后端项目运行时的端口号信息port: 8888spring:# 配置数据源信息datasource:url: jdbc:mysql://localhost:3306/musicusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource上面使用到了pool(池子)数据库连接池也就是数据源所谓的数据库连接池从字面意思上翻译就是将数据库连接放到一个池子里。相比之前的好处就是只需要创建一次连接后面的都直接用不用一次次创建。数据源使用到了Druid的需要导入Druid的依赖
!--整合druid的数据源--
dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.17/version
/dependency4 导入前端页面 resources目录下创建templates文件夹将前端页面导入。由于SpringBoot默认的打包方式是jar包但是JSP不支持在jar包(一种压缩包)中编译所以SpringBoot默认不支持JSP于是我们需要引入第三方的模板引擎技术——Thymeleaf实现页面的渲染。 导入thymeleaf引擎的场景启动器
!--thymeleaf引擎的场景启动器--
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId
/dependency5 开始前端控制器的编码
复制controller层的框架整体和前端进行交互的页面
RequestMapping(/queryAll)
public ListSinger queryAll() {// 先演示普通的查询再逆序查询return null;
}RequestMapping(/queryByName)
public ListSinger queryByName(String name) {// 使用lambdaQueryWrapper 的like方法模糊查询// list方法查询到所有的符合条件值并返回return null;
}PostMapping(/save)
public String save(HttpServletRequest request) {Singer singer new Singer();singer.setName(request.getParameter(name)).setSex(Integer.parseInt(request.getParameter(sex))).setPic(request.getParameter(pic)).setBirth(new Date()).setLocation(request.getParameter(location)).setIntroduction(request.getParameter(introduction));// 调用save方法并判断返回值的正误返回前端对应的字符串return null;
}RequestMapping(/update)
public String update(int id, String introduction) {// 使用eq和set去设置条件构造器// 调用update传入条件构造器并判断返回值的正误返回前端对应的字符串return null;
}RequestMapping(/delete)
public String delete(Integer id) {// 调用removeById方法直接删return null;
}SQL语句是数据持久化技术的核心jdbc使用String字符串拼接SQL语句mybatis使用xml映射文件在标签里编写SQL语句但是MP无需使用SQL语句(一些复杂的业务可以使用SQL语句来完成)直接调用方法即可在框架的底层实现SQL语句的拼接和执行。 在这里来查看一下mp的官方开发文档大概讲一下几个方法的大概用处然后摁住Ctrl查看源码知道为什么可以使用这些方法完成相应的功能。
首先是注入SingerService对象
Autowired
private SingerService service;这里的用法是spring框架的控制反转即将设计好的类对象注册进spring的IOC容器中将对象的控制权交给容器当需要使用的时候就使用Autowired注解让容器创建一个对象出来使用。完成的作用相当于使用new的方式调用类的构造器创建一个对象
查询所有的记录
RequestMapping(/queryAll)
public ListSinger queryAll() {ListSinger singers service.list();return singers;
}逆序查询的话就需要在SQL语句拼接order by id desc这个拼接条件的功能就需要使用wrapper构造器来完成了
5.1 wrapper构造器 总而言之wrapper构造器的作用就是用来拼装whereorder by等条件语句的作用如果你的增删改查无需条件的话可以不用wrapper但凡需要使用SQL语句需要拼接条件的话就需要使用wrapper。更加具体的wrapper案例分析参考博客wrapper构造器的简要案例分析
逆序查询所有记录的方法
逆序查询所有
http://localhost:8888/singer/queryAllRequestMapping(/queryAll)
public ListSinger queryAll() {LambdaQueryWrapperSinger lambdaQueryWrapper new LambdaQueryWrapper();lambdaQueryWrapper.orderByDesc(Singer::getId);ListSinger singers service.list(lambdaQueryWrapper);return singers;
}按照id查询
按照id查询
http://localhost:8888/singer/queryByName?name王RequestMapping(/queryByName)
public ListSinger queryByName(String name) {LambdaQueryWrapperSinger lambdaQueryWrapper new LambdaQueryWrapper();lambdaQueryWrapper.like(Singer::getName,name);ListSinger singers service.list(lambdaQueryWrapper);return singers;
}编写添加记录的方法
PostMapping(/save)
public String save(HttpServletRequest request) {Singer singer new Singer();singer.setName(request.getParameter(name)).setSex(Integer.parseInt(request.getParameter(sex))).setPic(request.getParameter(pic)).setBirth(new Date()).setLocation(request.getParameter(location)).setIntroduction(request.getParameter(introduction));boolean save service.save(singer);String result save true ? 添加成功 : 添加失败;return result;}修改方法
修改
http://localhost:8888/singer/update?id64introduction歌声甜美RequestMapping(/update)
public String update(int id, String introduction, HttpServletRequest request) {LambdaUpdateWrapperSinger lambdaUpdateWrapper new LambdaUpdateWrapper();lambdaUpdateWrapper.eq(Singer::getId,id).set(Singer::getIntroduction,introduction);boolean update service.update(lambdaUpdateWrapper);String result update true ? 修改成功 : 修改失败;return result;
}删除方法
删除
http://localhost:8888/singer/delete?id64RequestMapping(/delete)
public String delete(Integer id) {boolean remove service.removeById(id);String result remove true ? 删除成功 : 删除失败;return result;}