SpringBoot+Mybatis-Plus實現增刪改查超詳細步驟

目錄

一、介紹

二、前期準備工作

(一) 創建springboot項目和創建數據庫

三、項目配置

(一)pom.xl導入相關依賴?

1.導入依賴

(二)yml文件中配置連接數據庫

2.配置yml文件?

四、代碼的編寫

數據庫展示

項目提前展示!!!

(三)MySQL表綁定到spring boot(實體層)

3.1 創建實體包

?3.2編寫User類

(四)springboot綁定到mybatis-plus(數據層)

4.1創建mapper包

4.2編寫UserMapper接口

(五)把數據層加工處理成邏輯業務(service服務層)

5.1創建service包?

5.2編寫獲取內置增刪改查方法接口IUserService

5.3編寫自己定義的UserService

5.4編寫服務層合成邏輯業務UserServiceImpl

5.5故事解讀服務層接口和類

(六)調用服務層的皇帝

?6.1創建controller包

6.2 編寫調取業務層的UserController類

五、前端請求測試


一、介紹

本篇文章通過springboot整合mybatis-plus去實現后端對數據庫的增刪改查以及響應給前端的url,讓前端獲得數據。mybatis-plus技術是簡化了繁瑣的代碼操作,把增刪改查的語句都內置了,直接調用就可以實現數據庫的增刪改查了。還可以一定程度上防止SQL注入。缺點就是不夠靈活,不過這個靈活的問題也可以自己去創建代碼去彌補這個。

二、前期準備工作

(一) 創建springboot項目和創建數據庫

1. spring boot項目的介紹和創建方式:SpringBoot項目的快速創建方式(包含第一個程序的運行)_云邊的快樂貓的博客-CSDN博??????客

2.創建MySQL數據庫和新建表的詳細步驟:

?創建MySQL數據庫和創建表的詳細步驟(navicat)_云邊的快樂貓的博客-CSDN博客

三、項目配置

(一)pom.xl導入相關依賴?

這里面有幾個必須的依賴

1.web依賴,這個是創建時候就已經加入進去了,所以不用導入了(檢查一下)

2.lombok依賴 ,這個是創建時候就已經加入進去了,所以不用導入了(檢查一下)

3.mybatis-plus的依賴(來源baomidou)

4.mysql依賴

5.druid依賴(來源阿里巴巴德魯伊)

6.swagger2依賴(擁有這個,注解@ApiModelProperty才能用)

1.導入依賴

在pom.xml文件里面導入相關的依賴。如果依賴加入不成功,就要檢查自己的maven配置問題了

maven解決方案:

springboot添加maven環境詳細步驟_云邊的快樂貓的博客-CSDN博客

spring-boot-maven-plugin報紅的解決辦法_云邊的快樂貓的博客-CSDN博客

       <!--新加入的依賴1--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version></dependency><!--新加入的依賴2--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!--新加入的依賴3--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.16</version></dependency><!--新加入的依賴4  @ApiModelProperty這個才能用--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency>

?即:

(二)yml文件中配置連接數據庫

2.配置yml文件?

把application配置文件的后綴改為yml,這樣看著更分明一點,然后再里面寫入連接數據庫的配置,建立和數據庫的關聯。具體的端口號默認是8080的,但是我改成了80端口了。?

這里的第2、7、8、9行都要改為自己的??

server:port: 80
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/dndata?serverTimezone=GMT%2b8username: rootpassword: 123456

四、代碼的編寫

數據庫展示

項目提前展示!!!

(三)MySQL表綁定到spring boot(實體層)

為什么要建立這個類?

可以這樣理解,這一步驟是讓數據庫字段和后端代碼的綁定?

3.1 創建實體

在項目下新建一個entity包,再新建一個類。類的命名就是User

命名來源:類名和數據庫中的表名一樣,不過首字母要大寫,一個屬性類對應一張數據庫表。

?3.2編寫User類

這個實體類里面的屬性要和數據庫中的字段對應??

看著注釋去編寫,還是很簡單的,在最下面的注釋也解釋了每個注解的作用?

User

package com.example.mybatis.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;/*
* 1.使用@Data注解
* 2.使用注解@TableName(value = "user") -----user這個是對應數據庫的表名
* 3.編寫和數據庫字段對應的屬性
* 4.加上文檔注解@ApiModelProperty("用戶的id")---里面的文字是相當于給自己看的備注
* 5.使用@TableId(value = "id", type = IdType.AUTO) //作用是標明當前屬性主鍵,并且type = IdType.AUTO這個代表id自增
* */
@Data  //1
@TableName(value = "user")    //2
public class User {@ApiModelProperty("用戶的id")  //4@TableId(value = "id", type = IdType.AUTO) //5private Integer id;  //3@ApiModelProperty("用戶名")  //4private String username;  //3@ApiModelProperty("密碼")  //4private String password;   //3
}/*
* 注解的解釋
* @Data:注解是這個來源于lombok,內置了set、get、ToString等屬性類里面我們需要寫的東西,就不用我們寫了* @TableName:注解是 MyBatis-Plus 框架中的一個注解,用于標識實體類與數據庫表之間的映射關系。
* 它的作用是告訴 MyBatis-Plus 框架這個實體類對應哪個數據庫表。* @ApiModelProperty:注解是 Swagger 框架中的一個注解,
* 用于給實體類的屬性(字段)添加額外的文檔說明,以便在生成 API 文檔時提供更詳細的描述和信息。
* Swagger是一個用于生成和展示 API 文檔的工具,可以幫助開發人員更好地理解和使用 API。
*
* @TableId 注解用于標識表的主鍵字段,幫助 MyBatis-Plus 框架了解哪個屬性在數據庫中扮演主鍵的角色,
* 以及如何生成主鍵值。這對于數據庫操作和映射非常重要。
* */

(四)springboot綁定到mybatis-plus(數據層)

為什么要創建這個接口呢?

因為為了把springboot獲得的屬性類再綁定給到mybatis-plus那邊,然后綁定的這個接口給其他層調用。

4.1創建mapper包

項目下創建一個mapper包

4.2編寫UserMapper接口

創建一個接口UserMapper,命名來源是屬性類名+mapper,駝峰命名

到這里就可以使用mybatis-plus內置最原始的增刪改查,但是不夠靈活,只能做最簡單的增刪改查。

UserMapper

package com.example.mybatis.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mybatis.entity.User;
import org.apache.ibatis.annotations.Mapper;
/*
* 1.使用@Mapper注解 ,代表這個接口被mybatis接管
* 2.繼承BaseMapper<屬性類名>
* */
@Mapper
public interface UserMapper extends BaseMapper<User> {
}/*
* @Mapper:注解是 MyBatis 框架中的一個重要標識,
* 它定義了 Mapper 接口,用于與數據庫交互。使用這個注解可以簡化數據庫操作代碼,并提供一些優勢,
* 如自動生成 SQL、類型安全性等。
* */

(五)把數據層加工處理成邏輯業務(service服務層)

為什么要這一層?

答:這一層次叫服務層,也叫業務層。因為上面的數據完全都綁定好了,可以實現增刪改查了,但是那只是最原始的,封裝的方法都很少,稍微復雜一點的分頁查詢方法里面都沒有,所以要在這一層使用別人封裝好的更好的方法以及各種邏輯都可以在這里寫?

5.1創建service包?

5.2編寫獲取內置增刪改查方法接口IUserService

MP官方的

為什么要寫這個接口?

繼承了MP(mybatis-plus)封裝好的接口,我們需要的各種增刪改查方法都在這里面給我們寫好了,這個接口編寫是為了給后面控制層去調用這個接口里面的增刪改查方法。

你說的增刪改查方法怎么看不到?

因為被MP封裝到了 這個IService接口里面了

在service包下建立這個IUserService接口

IUserService接口

package com.example.mybatis.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.example.mybatis.entity.User;//1.繼承IService這個接口,<實體類名>
public interface IUserService extends IService<User> {
}/*
IService接口里面有mybatis-plus封裝好我們經常會用到的增刪改查的一些方法
里面本質上還調用了上數據層mapper,是對mapper的封裝優化
*/
5.3編寫自己定義的UserService

?在service包下建立這個UserService類

MP官方+自定義邏輯+自己調用數據層---咱自己的

5.2不是已經有可以調用增刪改查的方法了嗎,為什么還要寫這個?

答:5.2那個接口是直接用MP內置的增刪改查方法,可以正常用,但是我想對內置的這些增刪改查再優化呢,比如數據的加密、數據的校驗等邏輯處理。

而且我想根據我自己的需求來去給這些內置的增刪改查嵌套或者升級自定義呢?

總而言之,這個是類底層是就是5.2接口的實現類,也就是說這個類包含了5.2的接口。還能自定義方法和對mapper數據層的調用,就比5.2接口的方法更加豐富,用于加上自定義處理繁瑣的邏輯數據層

package com.example.mybatis.service;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.mybatis.entity.User;
import com.example.mybatis.mapper.UserMapper;
import org.springframework.stereotype.Service;/*
* 1.使用@Service注解,要不然咱自己定義的類,誰知道他是服務層
* 2.繼承ServiceImpl,這個是MP內置增刪改查接口的一個實現,牛逼的是還能自定義直接調取數據層的數據
* 3.定義需要的方法,根據自己的需要定義,定義MP內置里面沒有的
* */
@Service
public class UserService extends ServiceImpl<UserMapper, User> {//下面這個方法是對數據庫操作時候多加了一層封裝,用不到去掉也沒有影響。// 、作用可以定義密碼加密、數據校驗、關聯數據處理、日志記錄、通知或觸發事件等public boolean saveUser(User user){return saveOrUpdate(user);}
}
5.4編寫服務層合成邏輯業務UserServiceImpl

?在service包下建立這個UserServiceImpl類?

1.為什么要寫這個實現類?

因為把5.2和5.3的方法都拿來這里組成邏輯業務,比如登錄、校驗、權限等

2.為什么不直接用5.3,那個里面不是也可以定義邏輯方法嗎??

5.3那個自定義類主要用來處理一些對數據比較底層的方法,密碼加密,校驗這些底層。而這個類里面定義的是靠5.3那些小方法組起來的業務,比如登錄、權限驗證這些

總而言之,這里是業務的成型,調用5.3(主要)+5.2(次要)+一些邏輯組成業務

package com.example.mybatis.service.Impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.mybatis.entity.User;
import com.example.mybatis.mapper.UserMapper;
import com.example.mybatis.service.IUserService;
import org.springframework.stereotype.Service;
/*
* 1.@Service--------使用@Service注解,讓人知道這個是服務層
* 2.extends ServiceImpl<UserMapper, User> ---繼承和UserService類里面繼承的方法一樣,
* 但是這里面還偷偷藏了UserService自定義的方法
* 3.implements IUserService---實現接口
* */@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {//登錄業務//登錄校驗業務//創建用戶檢查業務等等
}

5.5故事解讀服務層接口和類

這么多服務層到底什么關系啊,這就來解讀?

這三個都是服務層的,看需要選擇調用哪個

5.2(地主家傻兒子)是一個服務接口,去嵌套了MP內置的常用CRUD

? ? ?地主家MP的傻兒子一樣,什么都沒有,只會調用他老爹寫好的方法,不過有個好老爹,大部分常用的CRUD他都有了,控制層可以直接調用他

5.3(傭人的兒子)是一個服務類,嵌套內置CRUD+自研調用方法

? ? ?這個類雖然和地主家傻兒子擁有一樣的內置方法,但是卻更上進,想要變得更強,所以可以自定義修煉很多方法:底層密碼加密、數據校驗、關聯數據處理、日志記錄、通知或觸發事件,還能直接和數據層進行交互。

這個類厲害吧?是不是很完美?控制層不會調用他的,因為他這些方法都會被他爹實現類去組成各種邏輯業務

5.4(傭人)是一個實現服務類,繼承有5.2地主家傻兒子,也實現了5.3親兒子。大一統

? ? ? 在這里面實現各種業務。能在這里編寫的都是業務了,比如拿5.3方法組成的登錄業務、權限校驗業務等等。

這個是老爹服務類。夠厲害了吧。但是這個也不能被控制層直接調用,因為這個不是接口,根據設計的依賴倒置原則,調用接口可以達到解耦的效果。但是這些寫的方法又不能浪費,只能繼承了5.2地主家的傻兒子接口,讓他幫我把這些邏輯都帶出去。通過控制層構造器注入

(六)調用服務層的皇帝

為什么要這一層?

因為叫控制層,是皇帝。你想要什么,告訴我,我讓服務層去弄邏輯業務。

要什么數據或者邏輯業務都要通過我控制層,直接找我拿就好了。

既然服務層都有了,那我為什么要你?

服務層的業務只有邏輯業務,涉及到導入導出這種正常的業務,還得是我來

那該去調用服務層的哪個?

找這個接口-----IUserService

這里面不但繼承了地主MP的CRUD,還繼承了實現類里面所有的業務邏輯

?6.1創建controller包

6.2 編寫調取業務層的UserController類

?第一種理解方式

增刪改查方法通用公式:

? ? 1

public? 2? 自定義類名( 3?? ?4的數據類型? ?4? ? )

? ?return? ?當前的全局服務類.服務類中的方法(4

服務中的方法:查全部:list根據ID查詢:getById新增和修改saveOrUpdate刪除:removeById

1.數據查詢一般用@GetMapping、對數據進行修改操作用@PostMapping、刪除用@PostMapping。

前端:我要刪除或者根據id查詢,

后端:那你get給我id就好了,其他的交給我,就是在注解的后面加("/{id}")。如果是直接查詢全部的,你連id都不用給我,我懂

前端:我要修改和增加東西,有很多字段的數據都要

后端:那你不能放請求頭里面,不安全,用post請求,放到請求體里面吧

2.這個是希望后端給我的數據,增刪改什么的只要告訴我是否成功就好,所以用布爾值。查詢你就要告訴我查詢到什么了,就用屬性類名

3.這個是和1相關,post請求用@RequestBody,其他的都用@PathVariable去解析請求頭的id變成json傳給后端

4.這個也看1,前端傳什么數據過來,這里就用什么數據。什么都沒有寫就是全部---就是屬性類名

第二種理解方式

@注解?---這個就是前端要給后端的傳輸定義

public? 希望后端給前端的? ?自定義類名? ( post注解使用@RequestBody-反之???數據類型? ? 對應前端傳過來的??)

?????????return??當前的全局服務類.服務類中的方法(數據類型對應前端傳過來的)

package com.example.mybatis.controller;import com.example.mybatis.entity.User;
import com.example.mybatis.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;
/*
* 1.@RestController---添加控制層注解,讓springboot知道這是控制層
* 2.@RequestMapping("/user")--- user代表默認訪問路徑在/user下可以訪問
* */@RestController
@RequestMapping("/user")
public class UserController {@Autowired  //4.自動注解private IUserService userService;  //3.定義調用服務層的接口/**5.查詢全部的數據5.1使用 @GetMapping注解,沒有括號不定義就代表使用get方式,url訪問上面默認路徑/user5.2查詢全部肯定使用的方法是集合<實體類>方式去自定義一個findAll方法名5.3再用服務層返回一個集合就好了*/@GetMappingpublic List<User> findAll(){return userService.list();}/*6.根據id查詢一條6.1查詢使用@GetMapping注解,既然是根據id查詢,那么就要把id傳給后端。但是get是不能傳遞請求體的,只能傳遞請求頭,那么只能把這個值放在請求頭上面,就是這樣("/{id}")放6.2自定義一個方法名(@PathVariable 類型 id),為什么要用id呢?這不是你前端這個"/{id}"說要嗎@PathVariable這個注解的方式就是把請求頭中的數字以Json傳遞給后端去識別,后端不能直接識別url上面的數字6.3 再用服務層返回獲取id的方法就好了*/@GetMapping("/{id}")public User findById(@PathVariable Integer id){return userService.getById(id);}/*7.新增和修改需要傳遞body傳遞全部參數,7.1對數據的操作使用@PostMapping,括號里面不定義就代表使用post方式,url訪問上面默認路徑/user7.2自定義一個方法,括號里面使用(@RequestBody 屬性類 自定義屬性昵稱)為什么這里用Boolean而不是User,因為對數據的修改希望返回的結果就兩種,要么成功,要么失敗,所以用布爾值@RequestBody這個注解用于映射傳遞來的json參數映射為到java對象里面,特別是適用與請求體的參數7.3然后再用服務層返回獲取的saveOrUpdate方法就好了*/@PostMappingpublic Boolean add(@RequestBody User user){return userService.saveOrUpdate(user);}/*8.刪除的方法8.1使用@DeleteMapping注解,因為刪除只需要傳遞一個特定的id給后端就可以了,所以括號里面使用("/{id}")8.2創建一個自定義的方法,刪除也是要么成功要么失敗,所以使用Boolean作為返回值@PathVariable在上面已經解釋過了8.3再用服務層次返回對應的方法,括號里面的值就是上面括號里面需要的值* */@DeleteMapping("/{id}")public Boolean delete(@PathVariable Integer id){return userService.removeById(id);}}/*    //修改數據的另一種寫法@PostMapping("/update")public Boolean update(@RequestBody User user){return userService.updateById(user);}*/

到這里代碼就全部編寫完成了,不懂的去看上面的代碼提前展示圖和注釋解釋

MySQL--->屬性類--->數據層mapper接口--->業務服務層service接口--->控制層(前后端交互)?

按照規范,不能跨級調用接口,屬性類除外

五、前端請求測試

測試的工具可以使用idea自帶的,也可以使用postman等請求測試工具。

postman官網下載安裝登錄詳細教程_云邊的快樂貓的博客-CSDN博客

具體的測試方法

postman測試后端增刪改查_云邊的快樂貓的博客-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37952.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37952.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37952.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

推斷統計(配對樣本t檢驗)

根據題目我們也可以看出配對樣本 t 檢驗是用來檢驗兩配對正態總體的均值是否存在顯著差異的一種假設檢驗方法&#xff0c;雖然是兩組數據但是其來自同一部分個體在兩個時間段內的測試數據&#xff0c;是同一部份個體&#xff01; 進行配對樣本 t 檢驗之后也是分別做出原假設和備…

【基礎學習筆記 enum】TypeScript 中的 enum 枚舉類型介紹

因為之前網上查好多博客都是只說最基礎的&#xff0c;所以這里記錄一下&#xff0c;最基礎的放在最后面。 這里重點要記錄的是枚舉成員的值可以是字符串&#xff08;字符串枚舉&#xff0c;因為網上大部分只介紹常數枚舉&#xff09;&#xff0c;需要注意的一點是&#xff0c;…

ADC實驗

查看VR1鏈接的絲印&#xff1a;XadcAIN3 設置相關寄存器 使用的是通道3&#xff0c;要設置相應的通道寄存器 #include "exynos_4412.h"int main() {unsigned int AdcValue 0;/*將ADC的精度設置成 12bit*/ADCCON ADCCON | (1 << 16);/*使能ADC的分頻器*…

SAP ABAP 直接把內表轉換成PDF格式(smartform的打印函數輸出OTF格式數據)

直接上代碼&#xff1a; REPORT zcycle055.DATA: lt_tab TYPE TABLE OF zpps001. DATA: ls_tab TYPE zpps001.ls_tab-werks 1001. ls_tab-gamng 150.00. ls_tab-gstrp 20201202. ls_tab-aufnr 000010000246. ls_tab-auart 標準生產. ls_tab-gltrp 20201205. ls_tab-matn…

MyBatis面試題

MyBatis面試題&#xff1a; 1、MyBatis是什么&#xff1f; Mybatis是一個半ORM&#xff08;對象關系映射&#xff09;框架&#xff0c;它內部封裝了JDBC&#xff0c;加載驅動、創建連接、創建statement等繁雜的過程&#xff0c;開發者開發時只需要關注如何編寫SQL語句&#xf…

榮耀X40 GT真機調試APP,HBuilder X刷新不到設備

今天使用榮耀X40GT進行真機調試App的時候&#xff0c;hbuilder怎么都刷不出來設備&#xff0c;經歷一番風雨最終連接成功&#xff0c;特此記錄一下。 我的設備Android版本12&#xff0c;MagicOS版本7.0&#xff0c;進行了如下配置&#xff1a; 1、打開“設置”-》“系統和更新”…

keil5突然編譯輸出框build output 不見了

今天keil5突然編譯輸出框build output 不見了&#xff0c;但可以編譯和下載。 首先嘗試&#xff0c;在view里面打開和關閉build output window&#xff0c;沒有反應&#xff1b; 其次&#xff0c;點擊window-reset view to defaults&#xff0c;果然build output又恢復了&#…

數據結構---圖

這里寫目錄標題 圖的基本概念和術語基本概念和術語1基本概念和術語2 圖的類型定義抽象數據類型定義二級目錄二級目錄 一級目錄二級目錄二級目錄二級目錄二級目錄二級目錄二級目錄 圖的基本概念和術語 基本概念和術語1 V代表頂點的有窮非空集合 E代表邊的有窮集合 n為頂點 有向…

數據結構與算法-棧(LIFO)(經典面試題)

一&#xff1a;面試經典 1. 如何設計一個括號匹配的功能&#xff1f;比如給你一串括號讓你判斷是否符合我們的括號原則&#xff0c; 棧 力扣 2. 如何設計一個瀏覽器的前進和后退功能&#xff1f; 思想&#xff1a;兩個棧&#xff0c;一個棧存放前進棧&…

Python爬蟲之解決瀏覽器等待與代理隧道問題

作為專業爬蟲程序員&#xff0c;我們往往需要應對一些限制性挑戰&#xff0c;比如瀏覽器等待和使用代理隧道。在Python爬蟲開發中&#xff0c;這些問題可能會導致我們的爬蟲受阻。本文將為你分享解決這些問題的方案&#xff0c;幫助你順利應對瀏覽器等待和代理隧道的挑戰&#…

【vue3】固定上導航欄和左側導航欄,只顯示其他內容在主內容區域

實現思路&#xff1a; 在一個單獨的vue組件文件中只寫出上導航欄和左側導航欄的內容將你想要展示的頁面主內容寫到單獨的組件中在index.js寫路由&#xff0c;將【想要展示的頁面主內容的路由】作為【子路由】寫在【只寫出上導航欄和左側導航欄的路由】的下面&#xff1b; 在el…

Oracle 開發篇+Java通過共享模式訪問Oracle數據庫

標簽&#xff1a;共享服務器進程、shared server process釋義&#xff1a;shared server process是Oracle的一種數據庫連接技術&#xff0c;類似的還有專用模式和DRCP ★ 數據庫配置 alter system set shared_server_sessions1 scopespfile; alter system set max_shared_serv…

AIGC|AGI究竟是什么?為什么大家都在爭先入場?

一、AI大語言模型進入爆發階段 2022年12月ChatGPT突然爆火&#xff0c;原因是其表現出來的智能化已經遠遠突破了我們的常規認知。雖然其呈現在使用者面前僅僅只是一個簡單的對話問答形式&#xff0c;但是它的內容化水平非常強大&#xff0c;甚至在某些方面已經超過人類了&#…

運動控制系統::幾篇大佬的文章

運動規劃 - 知乎 (zhihu.com) 運動規劃、運動控制 & 運動感知 - 知乎 (zhihu.com)

電腦屏幕閃爍?別慌!解決方法在這!

“我新買了一臺電腦&#xff0c;還沒用幾天呢&#xff0c;就出現了電腦屏幕閃爍的情況&#xff0c;這讓我感到很煩躁。有什么方法可以解決電腦屏幕閃爍的問題呢&#xff1f;” 使用電腦的過程中&#xff0c;我們不難發現電腦屏幕有時候會出現閃爍的情況&#xff0c;這會導致使用…

在線預覽Word、Excel、PowerPoint等文件

在我們工作時&#xff0c;經常會有在線查看各種不同類型的文件的需要&#xff0c;如Word文檔、Excel表格、PowerPoint幻燈片和PDF等。可以直接在這里預覽&#xff1a;https://www.compdf.com/webviewer/demo Word 文件實現前端預覽 方案一&#xff1a; 使用 XDOC 可以實現預…

vscode|pycharm + docker + python

1&#xff0c;docker run的時候要加上port docker run -it --gpusall -p 2222:22 -v /掛載目錄/:/docker 目錄1/ -v /掛載目錄/:/docker 目錄2/ --namexxx image:v2 /bin/bash 2&#xff0c;docker 內部要安裝ssh 2.1方法命令&#xff1a; apt-get update apt-get install…

使用藍牙外設卻不小心把臺式機電腦藍牙關了

起因 今天犯了一個賊SB的錯誤&#xff0c;起因是藍牙鍵盤突然就不能輸入了&#xff08;雖然是連接狀態&#xff0c;但是按什么鍵都沒有反應&#xff09; 原來我的解決方法就是重啟一下電腦&#xff0c;但是那會電腦開了賊多的軟件。我就想重啟也太麻煩了&#xff0c;既然重啟…

Linux版本 centOS 7,java連接mysql

在Linux下 使用java 訪問數據庫 &#xff0c; java 1.7版本&#xff0c; mysql 8.0.33版本&#xff0c; 連接驅動 mysql-connector-java-5.1.49.jar 代碼如下&#xff1a; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import ja…

C#學習,反射

目錄 C#學習 .NET的體系結構 二次編譯 反射 什么是反射&#xff1f; 什么是Type&#xff1f; 什么是程序集&#xff1f; 反射API&#xff1a; 一&#xff0c;程序集 1&#xff0c; Load 2&#xff0c;LoadFrom 3&#xff0c;LoadFile 二&#xff0c;類型實例 1&a…