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

专业app网站建设哪家好seo 知乎

专业app网站建设哪家好,seo 知乎,服务器与网站的关系,网站开发及建设初识SpringBoot 1、SpringBoot概述 Spring是什么#xff1f; Spring是一个于2003 年兴起的一个轻量级开源Java开发框架#xff0c;由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》。Spring是为了解决企业级应用开发的复杂性而创建的#xff0c;使…初识SpringBoot 1、SpringBoot概述 Spring是什么 Spring是一个于2003 年兴起的一个轻量级开源Java开发框架由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》。Spring是为了解决企业级应用开发的复杂性而创建的使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但是Spring不仅仅局限于服务器端开发任何Java应用都能在简单性、可测试性和松耦合性等方面从Spring中获益。 Spring官网Spring | Home SpringBoot是什么 Spring Boot是由Pivotal团队提供的全新框架其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 SpringBoot有什么用 简化Spring的配置。 使用Spring开发存在两个十分繁琐的地方 依赖设置繁琐。在开发Spring程序的时候特别是在整合SSM时一下就要导入一大推的依赖让我们的pom.xml文件显得很混乱配置繁琐。在开发Spring程序时我们通常都需要手动去编写配置类或配置文件比如Spring的配置文件、SpringMVC的配置文件配置文件需要配置的东西也很多但是大部分的东西都是可以服用的这就显得繁琐 Spring的核心功能 起步依赖简化依赖配置依赖配置的书写简化就是靠这个起步依赖达成的自动配置简化常用工程相关配置配置过于繁琐使用自动配置就可以做响应的简化但是内部还是很复杂的后面具体展开说辅助功能内置服务器……除了上面的功能其实SpringBoot程序还有其他的一些优势比如我们没有配置Tomcat服务器但是能正常运行这是SpringBoot程序的一个可以感知到的功能也是SpringBoot的辅助功能之一。一个辅助功能都能做的这么6太牛了 SpringBoot的优点 避免版本冲突。当一个项目使用了多个技术时如果版本不选择正确就会发生冲突而SpringBoot通过parent提供了很多套技术搭配然后我们只需要通过stater直接引入你想要的一套就行了此时就只需要引入一个stater依赖就可以了通过依赖传递能够引入这一套技术所有的依赖不用像以前一样写一个Spring程序要搞得pom.xml很混乱、臃肿 注意praent的目的是避免依赖冲突它提供很多套技术组合stater的目的是减少依赖配置只需要依赖一个stater通过依赖传递可以使用到其它的依赖 SpringBoot如何用 参考后文 2、快速入门 前置须知在创建SpringBoot项目之前必须先安装好Maven 推荐使用Maven3.6.1 方式一直接在IDEA中创建最常见也是最直接的方式 #mermaid-svg-5YpxxrxMkO92gxpI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5YpxxrxMkO92gxpI .error-icon{fill:#552222;}#mermaid-svg-5YpxxrxMkO92gxpI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5YpxxrxMkO92gxpI .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-5YpxxrxMkO92gxpI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5YpxxrxMkO92gxpI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5YpxxrxMkO92gxpI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5YpxxrxMkO92gxpI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5YpxxrxMkO92gxpI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5YpxxrxMkO92gxpI .marker.cross{stroke:#333333;}#mermaid-svg-5YpxxrxMkO92gxpI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5YpxxrxMkO92gxpI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-5YpxxrxMkO92gxpI .cluster-label text{fill:#333;}#mermaid-svg-5YpxxrxMkO92gxpI .cluster-label span{color:#333;}#mermaid-svg-5YpxxrxMkO92gxpI .label text,#mermaid-svg-5YpxxrxMkO92gxpI span{fill:#333;color:#333;}#mermaid-svg-5YpxxrxMkO92gxpI .node rect,#mermaid-svg-5YpxxrxMkO92gxpI .node circle,#mermaid-svg-5YpxxrxMkO92gxpI .node ellipse,#mermaid-svg-5YpxxrxMkO92gxpI .node polygon,#mermaid-svg-5YpxxrxMkO92gxpI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5YpxxrxMkO92gxpI .node .label{text-align:center;}#mermaid-svg-5YpxxrxMkO92gxpI .node.clickable{cursor:pointer;}#mermaid-svg-5YpxxrxMkO92gxpI .arrowheadPath{fill:#333333;}#mermaid-svg-5YpxxrxMkO92gxpI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5YpxxrxMkO92gxpI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5YpxxrxMkO92gxpI .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-5YpxxrxMkO92gxpI .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-5YpxxrxMkO92gxpI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5YpxxrxMkO92gxpI .cluster text{fill:#333;}#mermaid-svg-5YpxxrxMkO92gxpI .cluster span{color:#333;}#mermaid-svg-5YpxxrxMkO92gxpI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-5YpxxrxMkO92gxpI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 创建SpringBoot项目 编写SpringBoot项目 运行SpringBoot项目 访问运行的SpringBoot项目 Step1创建SpringBoot项目 备注这一步需要进行联网IDEA默认是访问https://start.spring.io这是Spring官方提供用来初始化SpringBoot项目的在线工具它和Github一样在服务器在国外访问起来有点慢推荐使用国内的淘宝镜像https://start.aliyun.com/ 备注SpringBoot2版本是当下最稳定的版本 Step2编写一个SpringBoot程序 package com.hhxy.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** author ghp* date 2022/12/16* title* description*/ RestController RequestMapping(/test) public class TestController {GetMappingpublic String test(){System.out.println(SpringBoot is running...);return SpringBoot is running...;} } Step3运行SpringBoot程序 Step4访问SpringBoot程序 使用浏览器访问localhost:8080/test/可以看到以下的页面 Spring和SpringBoot开发SpringMVC程序的比较 类配置文件SpringSpringBootpom文件中的坐标手工添加勾选添加web3.0配置类手工制作无Spring/SpringMVC配置类手工制作无控制器手工制作手工制作 Spring和SpringBoot相较而言更加简化、精炼现在市面上大量开发Java程序的都是选择SpringBoot 方式二在Spring光网初始化一个SpringBoot工程 直接在SpringBoot的官网创建SpringBoot项目IDEA本质也是使用SpringBoot官网创建Spring Boot项目的 方式三手工制作 先创建一个Maven工程然后手动编写、配置依赖 3、基础配置 3.1 基础配置 SpringBoot可以在application.properties文件中进行配置 # 配置服务器端口号 server.port 80# 修改bannerbanner就是那个控制台的那个Spring图标 spring.main.banner.modeoff # 关闭banner spring.banner.image.laction 图片地址 # 设置banner回自动识别图片然后用特殊符号进行转换替代原来的Spring图标# 日志 logging.level.rootinfo # 设置日志级别详细配置可以参考官方文档Spring Boot 3.2 配置文件的分类 SpringBoot的配置文件有三种格式*.properties默认、*.yml推荐、*.yaml 三种配置文件的优先级从左往右左边的优先级高。相同属性会根据优先级进行覆盖不同属性则都会保留 YAMLYAML Ain’t a Markup Language、YAML不是一种标记语言Yet Another Markup Language、仍是一种标记语言可能你看着这串英文很懵前一句想表达的意思是YAML的重心是以数据为中心而不是像其它标记语言一样以标记为中心后一句想表达的意思是YAML的确是一种标记语言所以用反向缩略语重命名。它的后缀名通常为.yml或.yaml 基础语法学习站点YAML 入门教程 | 菜鸟教程 (runoob.com) YAML配置文件中的数据可以通过SpEL表达式进行获取 Spring Expression Language简称 SpEL是一种功能强大的表达式语言支持运行时查询和操作对象图 。表达式语言一般是用最简单的形式完成最主要的工作以此减少工作量 对于统一数据可以使用引用类似于xml的${}引用 temp: student# 进行引用 temp2: ${temp}对于转义符的使用需要将数据使用包裹 temp: a \t b使用自动装配可以将配置文件中所有的数据封装到一个对象中 Autowire Environment env; //得到配置文件中student下的name属性的值 env.getProperty(student.name)一般开发中都是需要获取指定的数据的这里演示一下 #mermaid-svg-uibxqiPStY7CgQ9X {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uibxqiPStY7CgQ9X .error-icon{fill:#552222;}#mermaid-svg-uibxqiPStY7CgQ9X .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-uibxqiPStY7CgQ9X .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-uibxqiPStY7CgQ9X .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-uibxqiPStY7CgQ9X .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-uibxqiPStY7CgQ9X .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-uibxqiPStY7CgQ9X .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-uibxqiPStY7CgQ9X .marker{fill:#333333;stroke:#333333;}#mermaid-svg-uibxqiPStY7CgQ9X .marker.cross{stroke:#333333;}#mermaid-svg-uibxqiPStY7CgQ9X svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-uibxqiPStY7CgQ9X .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-uibxqiPStY7CgQ9X .cluster-label text{fill:#333;}#mermaid-svg-uibxqiPStY7CgQ9X .cluster-label span{color:#333;}#mermaid-svg-uibxqiPStY7CgQ9X .label text,#mermaid-svg-uibxqiPStY7CgQ9X span{fill:#333;color:#333;}#mermaid-svg-uibxqiPStY7CgQ9X .node rect,#mermaid-svg-uibxqiPStY7CgQ9X .node circle,#mermaid-svg-uibxqiPStY7CgQ9X .node ellipse,#mermaid-svg-uibxqiPStY7CgQ9X .node polygon,#mermaid-svg-uibxqiPStY7CgQ9X .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-uibxqiPStY7CgQ9X .node .label{text-align:center;}#mermaid-svg-uibxqiPStY7CgQ9X .node.clickable{cursor:pointer;}#mermaid-svg-uibxqiPStY7CgQ9X .arrowheadPath{fill:#333333;}#mermaid-svg-uibxqiPStY7CgQ9X .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-uibxqiPStY7CgQ9X .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-uibxqiPStY7CgQ9X .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-uibxqiPStY7CgQ9X .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-uibxqiPStY7CgQ9X .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-uibxqiPStY7CgQ9X .cluster text{fill:#333;}#mermaid-svg-uibxqiPStY7CgQ9X .cluster span{color:#333;}#mermaid-svg-uibxqiPStY7CgQ9X div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-uibxqiPStY7CgQ9X :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 准备数据 创建封装类 获取数据 测试 在配置文件中准备好一个待读取的对象 datasource:driver: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost/springbootusername: rootpassword: 123拓展解决IDEAyaml配置文件的编写时不给提示 4、整合第三方技术 4.1 整合Junit SpringBoot默认就整合了Junit具体步骤如下 Step1导入测试所对应的staterStep2测试类使用SpringBootTest注解修饰Step3使用Autowire自动装配要测试的对象Step4编写测试方法 注意事项当测试类和引导类属于同一包下或者属于引导类的子包下则按照上面的步骤可以直接进行测试如果不符合前面所说的要求则需要添加一个classes配置项 // 方式一 SpringBootTest(classes 引导类的类名.class) // 方式二 ContextConfiguration(引导类的类名.class)备注方式二是原生的Spring注解SpringBoot的测试类寻找引导类只是表象本质是要寻找到·SpringConfiguration注解它会现在本包及其子包下寻早是否含有某个类拥有SpringConfiguration注解因为这个类所标识的是类是创建IOC容器的类测试是需要获取Bean的这就需要先从IOC容器中获取到Bean而这个注解是引导类特有的需要点开SpringBootApplication才能看到所以就需要保障测试类能够找到引导类 4.2 整合MyBatis #mermaid-svg-z96oarLdGYmf27zX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-z96oarLdGYmf27zX .error-icon{fill:#552222;}#mermaid-svg-z96oarLdGYmf27zX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-z96oarLdGYmf27zX .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-z96oarLdGYmf27zX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-z96oarLdGYmf27zX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-z96oarLdGYmf27zX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-z96oarLdGYmf27zX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-z96oarLdGYmf27zX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-z96oarLdGYmf27zX .marker.cross{stroke:#333333;}#mermaid-svg-z96oarLdGYmf27zX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-z96oarLdGYmf27zX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-z96oarLdGYmf27zX .cluster-label text{fill:#333;}#mermaid-svg-z96oarLdGYmf27zX .cluster-label span{color:#333;}#mermaid-svg-z96oarLdGYmf27zX .label text,#mermaid-svg-z96oarLdGYmf27zX span{fill:#333;color:#333;}#mermaid-svg-z96oarLdGYmf27zX .node rect,#mermaid-svg-z96oarLdGYmf27zX .node circle,#mermaid-svg-z96oarLdGYmf27zX .node ellipse,#mermaid-svg-z96oarLdGYmf27zX .node polygon,#mermaid-svg-z96oarLdGYmf27zX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-z96oarLdGYmf27zX .node .label{text-align:center;}#mermaid-svg-z96oarLdGYmf27zX .node.clickable{cursor:pointer;}#mermaid-svg-z96oarLdGYmf27zX .arrowheadPath{fill:#333333;}#mermaid-svg-z96oarLdGYmf27zX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-z96oarLdGYmf27zX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-z96oarLdGYmf27zX .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-z96oarLdGYmf27zX .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-z96oarLdGYmf27zX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-z96oarLdGYmf27zX .cluster text{fill:#333;}#mermaid-svg-z96oarLdGYmf27zX .cluster span{color:#333;}#mermaid-svg-z96oarLdGYmf27zX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-z96oarLdGYmf27zX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 创建SpringBoot工程 编写配置文件 编写Java代码 测试 前期准备先准备好一张表用来测试 Step1创建SpringBoot工程 和快速入门种创建的方式差不多只是这里需要勾选一下数据库相关的依赖而SpringWeb的可以不配置因为没用到。其实这里也可以不用勾选任何的东西勾选只是为了让IDEA自动为我们添加所需要的依赖我们也可以等工程创建完成后直接手动在pom.xml中进行添加我们所需要的依赖 SpringBooot工程目录结构 Step2编写配置文件 # 配置数据连接信息 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_study?serverTimezoneUTCusername: rootpassword: 32345678Step3编写Java代码 1编写一个实体类用来存储数据库中的数据 Repository public class Book {private Integer id;private String type;private String name;private String description;//为节约篇幅构造函数、get、set、toString省略了 }2编写一个mapper用来执行SQL package com.hhxy.dao;import com.hhxy.domain.Book; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;/*** author ghp* date 2022/12/17* title* description*/ Mapper public interface BookDao {Select(select * from tb_book where id #{id})public Book getById(Integer id); }Step4编写测试类 package com.hhxy;import com.hhxy.dao.BookDao; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;SpringBootTest class Springboot03MybatisApplicationTests {Autowiredprivate BookDao bookDao;Testvoid contextLoads() {System.out.println(bookDao.getById(1));}}测试结果 4.3 整合MyBatisPlus MyBatisPlus的整合和MyBatis的整合类似两者唯一不同的就是在IDEA中无法通过勾选自动添加MyBatis的依赖因为MyBatisPlus是国人开发的相较而言中小型公司使用MyBatisPlus的概率要高的多 #mermaid-svg-y8AzlTPjHl2Ml5EZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .error-icon{fill:#552222;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .marker.cross{stroke:#333333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .cluster-label text{fill:#333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .cluster-label span{color:#333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .label text,#mermaid-svg-y8AzlTPjHl2Ml5EZ span{fill:#333;color:#333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .node rect,#mermaid-svg-y8AzlTPjHl2Ml5EZ .node circle,#mermaid-svg-y8AzlTPjHl2Ml5EZ .node ellipse,#mermaid-svg-y8AzlTPjHl2Ml5EZ .node polygon,#mermaid-svg-y8AzlTPjHl2Ml5EZ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .node .label{text-align:center;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .node.clickable{cursor:pointer;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .arrowheadPath{fill:#333333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .cluster text{fill:#333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ .cluster span{color:#333;}#mermaid-svg-y8AzlTPjHl2Ml5EZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-y8AzlTPjHl2Ml5EZ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 创建SpringBoot工程 编写配置文件 编写Java代码 测试 Step1创建SpringBoot工程 此处略和前面一样只是这里只能勾选MySQL驱动 !--SpringBoot整合MyBatisPlus对应的starter--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.3.4/version/dependencyStep2编写配置文件 # 配置数据连接信息 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_study?serverTimezoneUTCusername: rootpassword: 32345678# 设置表前缀MyBatisPlus会自动将数据库中所有表的前缀给去掉 mybatis-plus:global-config:db-config:table-prefix: tb_Step3编写Java代码 1编写实体类 略和前面一样 2编写Mapper package com.hhxy.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hhxy.domain.Book; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;/*** author ghp* date 2022/12/17* title* description*/ Mapper public interface BookDao extends BaseMapperBook { }备注BaseMapper是MyBatisPlus提供的一个类它里面含有很多常用的方法 Step4测试 package com.hhxy;import com.hhxy.dao.BookDao; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;SpringBootTest class SpringbootApplicationTests {Autowiredprivate BookDao bookDao;Testvoid contextLoads() {System.out.println(bookDao.selectById(1));}}测试结果 4.4 整合Druid #mermaid-svg-n8BblqD5RQphhy2E {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-n8BblqD5RQphhy2E .error-icon{fill:#552222;}#mermaid-svg-n8BblqD5RQphhy2E .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-n8BblqD5RQphhy2E .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-n8BblqD5RQphhy2E .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-n8BblqD5RQphhy2E .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-n8BblqD5RQphhy2E .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-n8BblqD5RQphhy2E .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-n8BblqD5RQphhy2E .marker{fill:#333333;stroke:#333333;}#mermaid-svg-n8BblqD5RQphhy2E .marker.cross{stroke:#333333;}#mermaid-svg-n8BblqD5RQphhy2E svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-n8BblqD5RQphhy2E .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-n8BblqD5RQphhy2E .cluster-label text{fill:#333;}#mermaid-svg-n8BblqD5RQphhy2E .cluster-label span{color:#333;}#mermaid-svg-n8BblqD5RQphhy2E .label text,#mermaid-svg-n8BblqD5RQphhy2E span{fill:#333;color:#333;}#mermaid-svg-n8BblqD5RQphhy2E .node rect,#mermaid-svg-n8BblqD5RQphhy2E .node circle,#mermaid-svg-n8BblqD5RQphhy2E .node ellipse,#mermaid-svg-n8BblqD5RQphhy2E .node polygon,#mermaid-svg-n8BblqD5RQphhy2E .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-n8BblqD5RQphhy2E .node .label{text-align:center;}#mermaid-svg-n8BblqD5RQphhy2E .node.clickable{cursor:pointer;}#mermaid-svg-n8BblqD5RQphhy2E .arrowheadPath{fill:#333333;}#mermaid-svg-n8BblqD5RQphhy2E .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-n8BblqD5RQphhy2E .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-n8BblqD5RQphhy2E .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-n8BblqD5RQphhy2E .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-n8BblqD5RQphhy2E .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-n8BblqD5RQphhy2E .cluster text{fill:#333;}#mermaid-svg-n8BblqD5RQphhy2E .cluster span{color:#333;}#mermaid-svg-n8BblqD5RQphhy2E div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-n8BblqD5RQphhy2E :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 创建SpringBoot项目 编写配置文件 编写Java代码 测试 Step1创建SpringBoot项目 和前面一致需要勾选上MyBatis和MySQL相关依赖Druid的依赖需要手动导入 !--德鲁伊数据源--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.6/version/dependencyStep2编写配置文件 # 配置数据连接信息 # 方式一 #spring: # datasource: # driver-class-name: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://localhost:3306/springboot_study?serverTimezoneUTC # username: root # password: 32345678 # type: com.alibaba.druid.pool.DruidDataSource# 方式二推荐使用 spring:datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_study?serverTimezoneUTCusername: rootpassword: 32345678Step3编写Java代码 1编写实体类略 2编写Mapper略 Step4测试 略…… 5、SpringBoot整合综合案例 主要实现了SSMP的整合实现了对tb_book表的增删改查、分页展示数据期间遇到两个bug都是数据不同步问题 多线程操作一个页面删除数据另一个页面没有来得及刷新就去操作已删除的数据就会导致没有反应 此时我们的做法是利用finally的特点将刷新操作(this.getAll())操作放入其中当页面发生异常时就进行刷新 当最后一页只有一条数据时我们将他删除但是去执行查询操作时当前页码仍然是之前的最后一页的页码这就导致查询出来的数据为null解决方法有两个 前端我们在执行查询操作时先对当前页码和最大页码进行一个比较如果当前页码最大页码我们就重新调用一下查询操作后端如果当前页码最大页码我们就重新调用一下查询操作 示例 参考资料 黑马程序员SpringBoot2全套视频教程springboot零基础到项目实战spring boot2完整版_哔哩哔哩_bilibili
http://www.hkea.cn/news/14455224/

相关文章:

  • 商城网站开发需求分析企业网站建设策划书方案范文
  • 博罗做网站报价网站引导页作用
  • 深圳做企业网站的公司推荐通河新村街道网站建设
  • 怎么查一个网站的外链和反链软件vs2010网站制作教程
  • 网站正在建设_敬请期待!上海网站建设有限公司
  • 企业网站怎么优化淮安做网站优化
  • 天津企悦在线网站建设广告设计图片赏析
  • 网站做百度小程序改造的好处太原it培训机构
  • 站长工具精华分析影响网站排名的因素
  • 现在的网站开发框架免费的舆情网站app
  • 网络营销网站规划建设周口logo设计公司
  • 开平网站建设c2c十大平台
  • 北京66中网站做的不怎么样呀湛江免费做网站
  • 建设银行官方网站登录入口重庆快速排名
  • 洪江市网站网站建设工作都包括哪些方面
  • 合肥中小企业网站制作建行企业银行app下载
  • 有哪些看设计做品的网站店面设计招聘
  • 网站配色的方案重庆网站推广大全
  • 做女装的看哪个网站好农产品电商网站建设的总体目标
  • 给企业建设网站的流程图No餐饮网站建设
  • 电子商务类网站有哪些南昌做网站的公司多不多
  • 有织梦后台系统怎么做网站新浪云部署wordpress
  • 延安网站建设推广wordpress code
  • dz 做企业网站网站建设万首先金手指14
  • 常用网站设置手机网站单页
  • 怎样进入国外网站访问wordpress数据库
  • 济南网站排名外包百度手机网站提交
  • wordpress去除 版权济南网站优化收费
  • 宝安区做网站网站怎么做点击广告
  • 深圳门户网站建设网站开发过程前端后端