javascript
SpringBoot和Mybatis-Plus
? 1 正文
1. springboot自動裝配原理---
2. springboot整合mbatis-plus
3. springboot整合swagger2
4. springboot整合定時器
? 2? springboot自動裝配原理
? ? ?2.1? springboot包掃描原理
包建議大家放在主類所在包或者子包。默認包掃描的是主類所在的包以及子包。?
主函數 @SpringBootApplication 該注解是一個復合注解,包含@EnableAutoConfiguration,這個注解開啟了自動配置功能,?該注解也是一個復合注解,包含AutoConfigurationImportSelector該注解中包含@Import({Registrar.class}),這個注解引入Registrar類,該類中存在registerBeanDefinitions,可以獲取掃描的包名。
如果需要人為修改掃描包的名稱則需要在主類上@ComponentScan(basepackage={"包名"}) ?
??????2.2? springboot自動裝配原理
主函數在運行會執行一個使用@SpringbootApplication注解的類,該注解是一個復合注解,包含@EnableAutoConfiguration, 該注解開啟自動配置功能,該注解也是一個復合注解,包含@Import() 該注解需要導入AutoConfigurationImportSelector類。 該類會加載很多自動裝配類,而這些自動裝配類完成相應的自動裝配原理。
? 3? springboot 整合 mybatis-plus
????????3.1 mybatis-plus概述
MyBatis-Plus (opens new window)(簡稱 MP)是一個 MyBatis (opens new window)的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。
我們的愿景是成為 MyBatis 最好的搭檔,就像 魂斗羅 中的 1P、2P,基友搭配,效率翻倍。
?不能替代mybatis ,以后對于單表操作的所有功能,都可以使用mp完成。但是鏈表操作的功能還得要校驗mybatis.
? ? ? ? 3.2 如何使用mp
????????????????(1) 創建表并加入數據
DELETE FROM user;INSERT INTO user (id, name, age, sex) VALUES (1, '石', 23, '男'), (2, '喬', 24, '男'), (3, '王', 21, '男'), (4, '平', 22, '男');????????????????(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.3.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.syp</groupId><artifactId>springboot_mybatis-plus</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot_mybatis-plus</name><description>springboot_mybatis-plus</description><properties><java.version>1.8</java.version></properties><dependencies><!--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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></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.url=jdbc:mysql:///db1 spring.datasource.username=root spring.datasource.password=shi001104????????(4)? ?創建實體類
@Data @ToString @NoArgsConstructor public class User {@TableId(type = IdType.AUTO) // 自動增長private Integer id;private String name;private Integer age;private String sex;public User(String name, Integer age, String sex) {this.name = name;this.age = age;this.sex = sex;} }??????????(5)? ?創建一個dao接口
public interface UserMapper extends BaseMapper<User> { }? ? ? ? ? (6)??為接口生成代理實現類
@SpringBootApplication @MapperScan(basePackages = "com.syp.mapper") public class SpringbootMybatisPlusApplication {public static void main(String[] args) {SpringApplication.run(SpringbootMybatisPlusApplication.class, args);}}? ? ? ? ? (7)? 測試
@SpringBootTest class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// Id查詢@Testvoid select() {User user = userMapper.selectById(1);System.out.println(user);} }? ? ? ? 3.3? 使用mp完成CRUD
@SpringBootTest class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// Id查詢@Testvoid select() {User user = userMapper.selectById(1);System.out.println(user);}// 增加@Testvoid insect(){User user = new User("李",22,"男");System.out.println(userMapper.insert(user));}// 刪除@Testvoid delete(){// 刪除一個System.out.println(userMapper.deleteById(4));// 批量刪除List<Integer> integers = new ArrayList<>();integers.add(5);integers.add(6);System.out.println(userMapper.deleteBatchIds(integers));}// 修改@Testvoid update(){User user = new User("平",22,"男");user.setId(4);System.out.println(userMapper.updateById(user));}// 查詢所有@Testvoid select2(){System.out.println(userMapper.selectList(null)); // null 代表查詢所有}}? ? ? ?3.4? ?使用mp完成條件查詢
@SpringBootTest class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// 各種查詢條件@Testvoid select3(){QueryWrapper wrapper = new QueryWrapper();// wrapper.ge("age",23);wrapper.like("name","石");List list = userMapper.selectList(wrapper);list.forEach(System.out::println);} }? ? ? ? 3.5? ?聯表使用mp的分頁對象
@Autowiredprivate UserMapper userMapper;@Testvoid select4(){Page<User> page = new Page<>(1,3);QueryWrapper<User> wrapper=new QueryWrapper<>();wrapper.like("name","石");userMapper.findPage(page,wrapper);System.out.println("當前頁的記錄"+page.getRecords());System.out.println("獲取總頁數"+page.getPages());System.out.println("獲取總條數"+page.getTotal());}總結
以上是生活随笔為你收集整理的SpringBoot和Mybatis-Plus的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: np.array的axis进行横向纵向的
- 下一篇: Arcgis api for JavaS