日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Springboot​ mybatis-plus

發布時間:2024/1/8 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot​ mybatis-plus 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.什么是Springboot

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的創建、運行、調試、部署等。使用Spring Boot可以做到專注于Spring應用的開發,而無需過多關注XML的配置。Spring Boot使用“習慣優于配置”的理念,簡單來說,它提供了一堆依賴打包,并已經按照使用習慣解決了依賴問題。使用Spring Boot可以不用或者只需要很少的Spring配置就可以讓企業項目快速運行起來。

2.SpringBoot的特點

(1) 用來簡化Spring應用的初始搭建以及開發過程,使用特定的方式來配置

(2)創建獨立的Spring引用程序main方法運行

(3)嵌入的tomcat無需部署war文件

(4)簡化maven配置

(5)自動配置Spring添加對應的功能starter自動化配置

3.使用idea快速搭建springboot工程

1.搭建環境

(1)jdk1.8

(2)idea 2022.2.2

(3)win11

2.在有網的情況下

?

3.創建一個controller

@RestController public class springController {@GetMapping("index")public Map<String, Object> spring() {Map<String, Object> map = new HashMap<>();map.put("name", "張明喆");map.put("age", 20);return map;}

瀏覽器訪問接口

4.springboot常用配置文件

  • properties和yml 兩種格式

  • (1)properties: #修改端口號 server.port=9999 #修改訪問路徑 server.servlet.context-path=/aaa

    (2)yml:

    server:port: 8888servlet:context-path: /bbb

    不管使用哪個配置文件,他們的名字必須叫application. 如果上面兩個配置文件同時存在,而且里面有相同的配置。則properties優先級高于yml優先級。

    5.java如何讀取配置文件中的內容

    1.第一種方式:

    使用@ConfigurationProperties獲取配置文件

  • @Data @Component @ConfigurationProperties(prefix = "student") public class Student {private String name;private Integer age;private String address;private List<String> hobby;private Map<String,Object> map; }

    ?

    2.第二種方式:使用@Value獲取配置文件--只能讀取基本類型和String類型

    @Value("${student.name}")private String name;@GetMapping("n")public String m() {return name;}@Value("${student.age}")private Integer age;@GetMapping("a")public Integer a() {return age;}

    6. springboot整合數據源

    連接數據庫

    (1)引入依賴

    <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.16</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>

    (2)配置數據源信息

    spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.url=jdbc:mysql://localhost:3306/aaa spring.datasource.druid.username=root spring.datasource.druid.password=17637422471 spring.datasource.druid.initial-size=5

    (3)測試類測試

    @SpringBootTest class Springbootqy163ApplicationTests { @Autowired private DataSource dataSource;@Testvoid contextLoads() throws SQLException {Connection connection = dataSource.getConnection();System.out.println(connection);System.out.println(dataSource);} } ?

    7.springboot整合mybatis

    (1)相關依賴

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.sws</groupId><artifactId>qy163-springboot02</artifactId><version>0.0.1-SNAPSHOT</version><name>qy163-springboot02</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> ?<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--mybatis和springboot整合的依賴 啟動依賴--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.16</version></dependency> ?<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies> ?<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build> ? </project>

    (2)修改配置文件

    #數據源 spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.username=root spring.datasource.druid.password=17637422471 spring.datasource.druid.url=jdbc:mysql://localhost:3306/aaa ? #指定映射文件所在的路徑-- mybatis.mapper-locations=classpath:mapper/*.xml ? #mybatis日志文件 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

    (3)mapper接口

    public interface EmpMapper {public List<Emp> findAll(); }

    (4)為mapper接口生成代理實現類

    (5)測試

    @SpringBootTest class DemoApplicationTests { ?@Autowiredprivate EmpMapper empMapper;@Testvoid contextLoads() {System.out.println(empMapper.findAll());} ? } ?

    2---springboot裝配原理mybatis-puls整合

    2.springboot自動裝配原理

    2.1springboot包掃描原理

    包建議大家放在主類所在包或者子包。默認包掃描的是主類所在的包以及子包。

    主函數在運行時會加載一個使用@SpringBootApplication標記的類。而該注解是一個復合注解,包含@EnableAutoConfiguration,這個注解開啟了自動配置功能。 該注解也是一個復合注解,包含@AutoConfigurationPackage。 該注解中包含@Import({Registrar.class}),這個注解引入Registrar類。該類中存在registerBeanDefinitions,可以獲取掃描的包名。

    如果需要人為修改掃描包的名稱則需要在主類上@ComponentScan(basepackage={"包名"})

    2.2 springboot自動裝配原理

    思考: 有沒有自己使用DispatcherServlet. 為什么DispatcherServlet能用。

    主函數在運行會執行一個使用@SpringbootApplication注解的類,該注解是一個復合注解,包含@EnableAutoConfiguration, 該注解開啟自動配置功能,該注解也是一個復合注解,包含@Import() 該注解需要導入AutoConfigurationImportSelector類。 該類會加載很多自動裝配類,而這些自動裝配類完成相應的自動裝配原理。

    3.springboot整合mybatis-plus(MP)

    3.1mybatis-plus概述

    MyBatis-Plus (opens new window)(簡稱 MP)是一個 MyBatis (opens new window)的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。

    我們的愿景是成為 MyBatis 最好的搭檔,就像 魂斗羅 中的 1P、2P,基友搭配,效率翻倍。

    不能替代mybatis ,以后對于單表操作的所有功能,都可以使用mp完成。但是鏈表操作的功能還得要校驗mybatis.

    3.2如何使用mybatis-plus(MP)

    (1)創建表并加入數據

    DELETE FROM user; ? INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4@baomidou.com'), (5, 'Billie', 24, 'test5@baomidou.com');

    (2)創建一個springboot工程并引入相關的依賴

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.sws</groupId><artifactId>qy163-springboot02</artifactId><version>0.0.1-SNAPSHOT</version><name>qy163-springboot02</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> ?<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.16</version></dependency> ?<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies> ?<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build> ? </project>

    (3)配置數據源

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.username=root spring.datasource.password=17637422471 spring.datasource.url=jdbc:mysql:///aaa

    (4)創建實體類

    @Data @NoArgsConstructor @AllArgsConstructor public class User {private Long id;private String name;private Integer age;private String email; }

    (5)創建一個mapper接口

    public interface UserMapper extends BaseMapper<User> { }

    (6)為接口生成代理實現類

    @SpringBootApplication @MapperScan(basePackages = "com.sws.mapper") public class DemoApplicationTests {public static void main(String[] args) {SpringApplication.run(DemoApplicationTests.class, args);} ? }

    (7)測試

    @SpringBootTest class DemoApplicationTests { ?@Autowiredprivate UserMapper userMapper;@Testvoid test() {User user = userMapper.selectById(8);System.out.println(user);} ? }

    3.3 使用mp完成CRUD

    @SpringBootTest class DemoApplicationTests {@Autowiredprivate UserMapper userMapper; ? @Test public void ?select(){QueryWrapper<User> wrapper=new QueryWrapper<>();wrapper.likeRight("name","_明");wrapper.or();wrapper.between("age",18,24);List<User> list = userMapper.selectList(wrapper);System.out.println(list); }@Testpublic void deleteById(){int i = userMapper.deleteById(4);System.out.println(i);} @Test public void delete(){List<Integer> list=new ArrayList<>();list.add(2);list.add(3);userMapper.deleteBatchIds(list); ? }@Testpublic void ?insert(){User user = new User(9L,"張明喆",20,"111@@qq.com");int insert = userMapper.insert(user);System.out.println(insert); ?} ?@Testpublic void update(){User user = new User(8L,"張明喆1",22,"111");user.setId(7L);userMapper.updateById(user);} } ?

    3.4 使用mp完成條件查詢

    @Testpublic void page2(){QueryWrapper<User> wrapper=new QueryWrapper<>();wrapper.gt("age",18);//gt表示>List<User> list = userMapper.selectList(wrapper);list.forEach(System.out::println);} //分頁查詢@Testpublic void page(){Page<User> page=new Page<>(1,3);//1:當前第幾頁 3:每頁顯示條數userMapper.selectPage(page,null);//把查詢分頁的結果封裝到page對象中System.out.println("當前頁的數據"+page.getRecords());//獲取當前頁的數據System.out.println("當前的頁數:"+page.getPages());System.out.println("所有數據日條數:"+page.getTotal());}

    3.5 聯表使用mp的分頁對象

    @Autowiredprivate EmpMapper empMapper;@Testpublic ?void page2(){Page<Emp> page=new Page<>(1,3);QueryWrapper<Emp> wrapper=new QueryWrapper<>();wrapper.gt("sal",1000);empMapper.findPage(page,wrapper);System.out.println("當前頁的數據"+page.getRecords());//獲取當前頁的數據System.out.println("當前的頁數:"+page.getPages());System.out.println("所有數據日條數:"+page.getTotal());}

    3----springboot整合swagger2

    3.1 swagger2概述

    編寫和維護接口文檔是每個程序員的職責,根據Swagger2可以快速幫助我們編寫最新的API接口文檔,再也不用擔心開會前仍忙于整理各種資料了,間接提升了團隊開發的溝通效率。

    3.2 常用注解

    @Api:修飾整個類,描述Controller的作用 @ApiOperation:描述一個類的一個方法,或者說一個接口 @ApiParam:單個參數描述 @ApiModel:用對象來接收參數 @ApiModelProperty:用對象接收參數時,描述對象的一個字段 @ApiImplicitParam:一個請求參數 @ApiImplicitParams:多個請求參數

    3.3為什么用swagger2

    為什么要用swagger,我的理由是方便,作為后端開放人員,最煩的事就是自己寫接口文檔和前端交互是不是需要各種參數很繁瑣,項目集成swagger后就能自動生成接口文檔,做到前端、后端聯調接口文檔的及時性和便利性。

    1.支持 API 自動生成同步的在線文檔:使用 Swagger 后可以直接通過代碼生成文檔,不再需要自己手動編寫接口文檔了,對程序員來說非常方便。 2.提供 Web 頁面在線測試 API:有文檔還不夠,Swagger 生成的文檔還支持在線測試。參數和格式都定好了,直接在界面上輸入參數對應的值即可在線測試接口。

    3.4如何使用接口文檔swagger2

    (1)引入依賴

    <!--swagger2依賴--><dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId><version>1.9.1.RELEASE</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.7.8</version></dependency>

    (2)創建配置類-swagger2

    @Configuration @EnableSwagger2//開啟swagger注解驅動 public class SwaggerConfig { @Bean //把方法返回的數據對象 交于spring容器管理public Docket docket(){Docket docket = new Docket(DocumentationType.SWAGGER_2).groupName("QY163").apiInfo(getInfo()).select().apis(RequestHandlerSelectors.basePackage("com.sws.controller")).build();return docket; } private ApiInfo getInfo(){Contact contact = new Contact("張明喆", "http://www.baidu.com", "110@qq.com");ApiInfo apiInfo = new ApiInfo("QY163心理健康測試", "QY163心理健康測試", "1.2.0", "http://www.jd.com",contact, "明哲科技有限公司", "http://www.mingzhe.com", new ArrayList<VendorExtension>());return apiInfo; } } ?

    (3)訪問swagger在線文檔

    http://ip:port/swagger-ui.html路徑

    http://ip:port/doc.html (**推薦**)

    4---springboot整合定時器-quartz

    在線Cron表達式生成器

    定時器: 在指定的時間執行相應的業務代碼。

    應用場景: 比如: 定時刪除OSS中冗余的文件

    三十分鐘未支付---->取消訂單。

    定時發送短信---->11.11====>

    4.1配置

    (1)引入quartz依賴

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency>

    (2)配置定時器任務

    @Component//交給spring容器 public class QuarzConfig {@Scheduled(cron = "0/5 * * * * ? ")//每5秒觸發一次public void show(){System.out.println("111");}@Autowiredprivate Stundent1Mapper student1Mapper;@@Scheduled(cron = "0 0/5 * * * ?")//每5分鐘觸發一次public void show(){List<Stundent1> student1 = student1Mapper.selectList(null);System.out.println(student1);} }

    (3)開啟定時器注解驅動

    @SpringBootApplication @MapperScan("com.sws.mapper") @EnableScheduling//開啟定時任務 public class SpringbootMpApplication { ?public static void main(String[] args) {SpringApplication.run(SpringbootMpApplication.class, args);} ? }

    總結

    以上是生活随笔為你收集整理的Springboot​ mybatis-plus的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。