国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

做網(wǎng)站自己租服務(wù)器還是網(wǎng)絡(luò)公司如何發(fā)布自己的廣告

做網(wǎng)站自己租服務(wù)器還是網(wǎng)絡(luò)公司,如何發(fā)布自己的廣告,自己做網(wǎng)站如何賺錢嗎,夢幻西游官方網(wǎng)站結(jié)構(gòu)直接看目錄 前言 MyBatis-Plus 是一個 MyBatis 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生。 愿景 我們的愿景是成為 MyBatis 最好的搭檔,就像 魂斗羅 中的 1P、2P,基友搭配,效…

結(jié)構(gòu)直接看目錄

前言

MyBatis-Plus?是一個?MyBatis?的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生。

愿景

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

Relationship Between MyBatis and MyBatis-Plus

特性:

  • 無侵入:只做增強(qiáng)不做改變,引入它不會對現(xiàn)有工程產(chǎn)生影響,如絲般順滑
  • 損耗小:啟動即會自動注入基本 CURD,性能基本無損耗,直接面向?qū)ο蟛僮?/li>
  • 強(qiáng)大的 CRUD 操作:內(nèi)置通用 Mapper、通用 Service,僅僅通過少量配置即可實現(xiàn)單表大部分 CRUD 操作,更有強(qiáng)大的條件構(gòu)造器,滿足各類使用需求
  • 支持 Lambda 形式調(diào)用:通過 Lambda 表達(dá)式,方便的編寫各類查詢條件,無需再擔(dān)心字段寫錯
  • 支持主鍵自動生成:支持多達(dá) 4 種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式調(diào)用,實體類只需繼承 Model 類即可進(jìn)行強(qiáng)大的 CRUD 操作
  • 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 內(nèi)置代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用
  • 內(nèi)置分頁插件:基于 MyBatis 物理分頁,開發(fā)者無需關(guān)心具體操作,配置好插件之后,寫分頁等同于普通 List 查詢
  • 分頁插件支持多種數(shù)據(jù)庫:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數(shù)據(jù)庫
  • 內(nèi)置性能分析插件:可輸出 SQL 語句以及其執(zhí)行時間,建議開發(fā)測試時啟用該功能,能快速揪出慢查詢
  • 內(nèi)置全局?jǐn)r截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預(yù)防誤操作

SpringBoot使用

將以下內(nèi)容引入pom.xml

      <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency>

以下內(nèi)容可自選

spring:#配置數(shù)據(jù)源信息datasource:type: com.zaxxer.hikari.HikariDataSource#配置數(shù)據(jù)庫連接信息driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhostusername: rootpassword: root#mybatisplus添加日志功能
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.stdOutImpl
global-config:db-config:#配置Mybatis-plus操作表的默認(rèn)前綴table-prefix: t_#配置Mybatis-plus的主鍵策略id-type: auto

配置文件注意事項


驅(qū)動類driver-class-name

spring boot 2.0(內(nèi)置jdbc5驅(qū)動),驅(qū)動類使用:driver-class-name: com.mysql.jdbc.Driver

spring boot 2.1及以上(內(nèi)置jdbc8驅(qū)動),驅(qū)動類使用:

driver-class-name: com.mysql.cj.jdbc.Driver

否則運行測試用例的時候會有 WARN 信息

連接地址url

MySQL5.7版本的url:

jdbc:mysql://localhost:3306/?characterEncoding=utf-8&useSSL=false

MySQL8.0版本的url:

jdbc:mysql://localhost:3306/?

serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false

?注意事項

// 這個屬性用于指定 MyBatis Mapper XML 文件的位置,例如:mybatis-plus: mapper-locations: classpath*:/mapper/*Mapper.xml
mybatis-plus.mapper-locations


// 這個屬性用于設(shè)置是否顯示 MyBatis-Plus 的啟動 banner。在示例中,該屬性被設(shè)置為 false,表示禁用啟動 banner
mybatis-plus.global-config.banner


// 這個屬性用于設(shè)置主鍵 ID 的生成策略。在示例中,auto 表示使用數(shù)據(jù)庫自動生成的主鍵 ID
mybatis-plus.global-config.db-config.id-type:auto


// 這些屬性用于設(shè)置全局的 SQL 過濾策略。在示例中,not_empty 表示只在參數(shù)值非空時才會生成對應(yīng)的 SQL 條件
mybatis-plus.global-config.db-config.where-strategy:not_empty
mybatis-plus.global-config.db-config.insert-strategy:not_empty
mybatis-plus.global-config.db-config.update-strategy:not_null


// 這個屬性用于設(shè)置在 SQL 中處理空值時使用的 JDBC 類型。在示例中,'null' 表示使用 NULL 類型
mybatis-plus.configuration.jdbc-type-for-null:'null'


// 這個屬性用于設(shè)置是否在設(shè)置屬性為 NULL 時調(diào)用對應(yīng)的 setter 方法。在示例中,該屬性被設(shè)置為 true,表示在設(shè)置屬性為 NULL 時會調(diào)用 setter 方法
mybatis-plus.configuration.call-setters-on-nulls:true

引導(dǎo)類中添加 @MapperScan 注解,掃描 Mapper 文件夾

@SpringBootApplication
@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
public class MPApplication {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

建立實體類

自行建立一個實體,可以是最簡單的 學(xué)生,姓名,班級,學(xué)號

建立Mapper層

繼承BaseMapper,后面的實體寫自己的實體

@Mapper
public interface UserMapper extends BaseMapper<UserEntity>{}

建立Service層

建立Service接口
public interface UserService extends IService<UserEntity> {}
建立Service接口實現(xiàn)類ServiceImpl
	@Slf4j@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements  UserService {}

Service Interface接口內(nèi)容說明

插入功能save

// 插入一條記錄(選擇字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);
// 插入(批量)
boolean saveBatch(Collection<T> entityList, int batchSize);

功能描述:插入記錄,根據(jù)實體對象的字段進(jìn)行策略性插入。
返回值:?boolean,表示插入操作是否成功。
參數(shù)說明:

類型參數(shù)名描述
Tentity實體對象
Collection<T>entityList實體對象集合
intbatchSize插入批次數(shù)量
示例?
// 假設(shè)有一個 User 實體對象
User user = new User();
user.setName("John Doe");
user.setEmail("john.doe@example.com");
boolean result = userService.save(user); // 調(diào)用 save 方法
if (result) {System.out.println("User saved successfully.");
} else {System.out.println("Failed to save user.");
}
?生成的 SQL:

INSERT INTO user (name, email) VALUES ('John Doe', 'john.doe@example.com')

如果存在就更新不存在就新增 saveOrUpdate

功能描述:?根據(jù)實體對象的主鍵 ID 進(jìn)行判斷,存在則更新記錄,否則插入記錄。
返回值:?boolean,表示插入或更新操作是否成功。
參數(shù)說明:

類型參數(shù)名描述
Tentity實體對象
Wrapper<T>updateWrapper實體對象封裝操作類 UpdateWrapper
Collection<T>entityList實體對象集合
intbatchSize插入批次數(shù)量
// TableId 注解屬性值存在則更新記錄,否插入一條記錄
boolean saveOrUpdate(T entity);
// 根據(jù)updateWrapper嘗試更新,否繼續(xù)執(zhí)行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);
示例
// 假設(shè)有一個 User 實體對象,其中 id 是 TableId 注解的屬性
User user = new User();
user.setId(1);
user.setName("John Doe");
user.setEmail("john.doe@example.com");
boolean result = userService.saveOrUpdate(user); // 調(diào)用 saveOrUpdate 方法
if (result) {System.out.println("User updated or saved successfully.");
} else {System.out.println("Failed to update or save user.");
}
生成的 SQL(假設(shè) id 為 1 的記錄已存在):
UPDATE user SET name = 'John Doe', email = 'john.doe@example.com' WHERE id = 1
生成的 SQL(假設(shè) id 為 1 的記錄不存在):
INSERT INTO user (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com')

刪除功能remove

// 根據(jù) queryWrapper 設(shè)置的條件,刪除記錄
boolean remove(Wrapper<T> queryWrapper);
// 根據(jù) ID 刪除
boolean removeById(Serializable id);
// 根據(jù) columnMap 條件,刪除記錄
boolean removeByMap(Map<String, Object> columnMap);
// 刪除(根據(jù)ID 批量刪除)
boolean removeByIds(Collection<? extends Serializable> idList);

功能描述:?通過指定條件刪除符合條件的記錄。
返回值:?boolean,表示刪除操作是否成功。
參數(shù)說明:

類型參數(shù)名描述
Wrapper<T>queryWrapper實體包裝類 QueryWrapper
Serializableid主鍵 ID
Map<String, Object>columnMap表字段 map 對象
Collection<? extends Serializable>idList主鍵 ID 列表
示例:
刪除
// 假設(shè)有一個 QueryWrapper 對象,設(shè)置刪除條件為 name = 'John Doe'
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John Doe");
boolean result = userService.remove(queryWrapper); // 調(diào)用 remove 方法
if (result) {System.out.println("Record deleted successfully.");
} else {System.out.println("Failed to delete record.");
}
?生成的 SQL:
DELETE FROM user WHERE name = 'John Doe'
根據(jù)ID刪除
// 假設(shè)要刪除 ID 為 1 的用戶
boolean result = userService.removeById(1); // 調(diào)用 removeById 方法
if (result) {System.out.println("User deleted successfully.");
} else {System.out.println("Failed to delete user.");
}
??生成的 SQL:
DELETE FROM user WHERE id = 1
批量刪除
// 假設(shè)有一組 ID 列表,批量刪除用戶
List<Integer> ids = Arrays.asList(1, 2, 3);
boolean result = userService.removeByIds(ids); // 調(diào)用 removeByIds 方法
if (result) {System.out.println("Users deleted successfully.");
} else {System.out.println("Failed to delete users.");
}
??生成的 SQL:
DELETE FROM user WHERE id IN (1, 2, 3)

更新功能update

// 根據(jù) UpdateWrapper 條件,更新記錄 需要設(shè)置sqlset
boolean update(Wrapper<T> updateWrapper);
// 根據(jù) whereWrapper 條件,更新記錄
boolean update(T updateEntity, Wrapper<T> whereWrapper);
// 根據(jù) ID 選擇修改
boolean updateById(T entity);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList, int batchSize);

功能描述:?通過指定條件更新符合條件的記錄。
返回值:?boolean,表示更新操作是否成功。
參數(shù)說明:

類型參數(shù)名描述
Wrapper<T>updateWrapper實體對象封裝操作類 UpdateWrapper
Tentity實體對象
Collection<T>entityList實體對象集合
intbatchSize更新批次數(shù)量
?根據(jù)元素進(jìn)行更新
// 假設(shè)有一個 UpdateWrapper 對象,設(shè)置更新條件為 name = 'John Doe',更新字段為 email
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name", "John Doe").set("email", "john.doe@newdomain.com");
boolean result = userService.update(updateWrapper); // 調(diào)用 update 方法
if (result) {System.out.println("Record updated successfully.");
} else {System.out.println("Failed to update record.");
}
???生成的 SQL:
UPDATE user SET email = 'john.doe@newdomain.com' WHERE name = 'John Doe'
根據(jù)ID進(jìn)行更新
// 假設(shè)有一個 User 實體對象,設(shè)置更新字段為 email,根據(jù) ID 更新
User updateEntity = new User();
updateEntity.setId(1);
updateEntity.setEmail("updated.email@example.com");
boolean result = userService.updateById(updateEntity); // 調(diào)用 updateById 方法
if (result) {System.out.println("Record updated successfully.");
} else {System.out.println("Failed to update record.");
}

????生成的 SQL:

UPDATE user SET email = 'updated.email@example.com' WHERE id = 1

查詢功能get

// 根據(jù) ID 查詢
T getById(Serializable id);
// 根據(jù) Wrapper,查詢一條記錄。結(jié)果集,如果是多個會拋出異常,隨機(jī)取一條加上限制條件 wrapper.last("LIMIT 1")
T getOne(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper,查詢一條記錄
T getOne(Wrapper<T> queryWrapper, boolean throwEx);
// 根據(jù) Wrapper,查詢一條記錄
Map<String, Object> getMap(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper,查詢一條記錄
<V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

功能描述:?根據(jù)指定條件查詢符合條件的記錄。
返回值:?查詢結(jié)果,可能是實體對象、Map 對象或其他類型。
參數(shù)說明:

類型參數(shù)名描述
Serializableid主鍵 ID
Wrapper<T>queryWrapper實體對象封裝操作類 QueryWrapper
booleanthrowEx有多個 result 是否拋出異常
Tentity實體對象
Function<? super Object, V>mapper轉(zhuǎn)換函數(shù)
根據(jù)id進(jìn)行查詢
// 假設(shè)要查詢 ID 為 1 的用戶
User user = userService.getById(1); // 調(diào)用 getById 方法
if (user != null) {System.out.println("User found: " + user);
} else {System.out.println("User not found.");
}
???生成的 SQL:
SELECT * FROM user WHERE id = 1
根據(jù)對象進(jìn)行查詢
// 假設(shè)有一個 QueryWrapper 對象,設(shè)置查詢條件為 name = 'John Doe'
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John Doe");
User user = userService.getOne(queryWrapper); // 調(diào)用 getOne 方法
if (user != null) {System.out.println("User found: " + user);
} else {System.out.println("User not found.");
}
生成的SQL:
SELECT * FROM user WHERE name = 'John Doe' LIMIT 1

查詢記錄功能list

// 查詢所有
List<T> list();
// 查詢列表
List<T> list(Wrapper<T> queryWrapper);
// 查詢(根據(jù)ID 批量查詢)
Collection<T> listByIds(Collection<? extends Serializable> idList);
// 查詢(根據(jù) columnMap 條件)
Collection<T> listByMap(Map<String, Object> columnMap);
// 查詢所有列表
List<Map<String, Object>> listMaps();
// 查詢列表
List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);
// 查詢?nèi)坑涗?List<Object> listObjs();
// 查詢?nèi)坑涗?<V> List<V> listObjs(Function<? super Object, V> mapper);
// 根據(jù) Wrapper 條件,查詢?nèi)坑涗?List<Object> listObjs(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper 條件,查詢?nèi)坑涗?<V> List<V> listObjs(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

功能描述:?查詢符合條件的記錄。
返回值:?查詢結(jié)果,可能是實體對象、Map 對象或其他類型。
參數(shù)說明:

類型參數(shù)名描述
Wrapper<T>queryWrapper實體對象封裝操作類 QueryWrapper
Collection<? extends Serializable>idList主鍵 ID 列表
Map<String, Object>columnMap表字段 map 對象
Function<? super Object, V>mapper轉(zhuǎn)換函數(shù)
示例:
查詢?nèi)?/h5>
// 查詢所有用戶
List<User> users = userService.list(); // 調(diào)用 list 方法
for (User user : users) {System.out.println("User: " + user);
}
生成的SQL:
SELECT * FROM user
根據(jù)實體進(jìn)行查詢
// 假設(shè)有一個 QueryWrapper 對象,設(shè)置查詢條件為 age > 25
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 25);
List<User> users = userService.list(queryWrapper); // 調(diào)用 list 方法
for (User user : users) {System.out.println("User: " + user);
}
生成的SQL:
SELECT * FROM user WHERE age > 25
批量查詢用戶
// 假設(shè)有一組 ID 列表,批量查詢用戶
List<Integer> ids = Arrays.asList(1, 2, 3);
Collection<User> users = userService.listByIds(ids); // 調(diào)用 listByIds 方法
for (User user : users) {System.out.println("User: " + user);
}

生成的SQL:

SELECT * FROM user WHERE id IN (1, 2, 3)
分頁查詢
// 無條件分頁查詢
IPage<T> page(IPage<T> page);
// 條件分頁查詢
IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);
// 無條件分頁查詢
IPage<Map<String, Object>> pageMaps(IPage<T> page);
// 條件分頁查詢
IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);

功能描述:?分頁查詢符合條件的記錄。
返回值:?分頁查詢結(jié)果,包含記錄列表和總記錄數(shù)。
參數(shù)說明:

類型參數(shù)名描述
IPage<T>page翻頁對象
Wrapper<T>queryWrapper實體對象封裝操作類 QueryWrapper
示例
分頁查詢
// 假設(shè)要進(jìn)行無條件的分頁查詢,每頁顯示10條記錄,查詢第1頁
IPage<User> page = new Page<>(1, 10);
IPage<User> userPage = userService.page(page); // 調(diào)用 page 方法
List<User> userList = userPage.getRecords();
long total = userPage.getTotal();
System.out.println("Total users: " + total);
for (User user : userList) {System.out.println("User: " + user);
}
?生成的SQL:
SELECT * FROM user LIMIT 10 OFFSET 0

http://aloenet.com.cn/news/39151.html

相關(guān)文章:

  • 建設(shè)網(wǎng)站的好處百度云服務(wù)器
  • 做宣傳網(wǎng)站需要多少錢附近電商培訓(xùn)班
  • 常用企業(yè)網(wǎng)站模板對比廣告聯(lián)盟下載app
  • 下載了網(wǎng)站建設(shè)asp深圳seo排名優(yōu)化
  • 怎樣搜網(wǎng)站seo工作流程
  • 清遠(yuǎn)做網(wǎng)站哪家好百度百家官網(wǎng)入口
  • 熊掌號網(wǎng)站怎么做百度的網(wǎng)頁地址
  • 上海網(wǎng)站制作軟件外鏈交易平臺
  • 攝影網(wǎng)站的規(guī)劃與設(shè)計seo網(wǎng)站排名查詢
  • 靜海區(qū)網(wǎng)站建設(shè)推廣老域名購買
  • 國內(nèi)優(yōu)秀網(wǎng)站網(wǎng)絡(luò)營銷專業(yè)是學(xué)什么的
  • 牛商網(wǎng)做的網(wǎng)站如何中國互聯(lián)網(wǎng)電視app下載安裝
  • 有個印度做網(wǎng)站的天天找我重慶網(wǎng)站開發(fā)公司
  • 淮安集團(tuán)網(wǎng)站建設(shè)鄭州seo代理商
  • 網(wǎng)站掃碼怎么做電腦培訓(xùn)班一般多少錢
  • 紹興 網(wǎng)站制作韓國網(wǎng)站
  • c 做網(wǎng)站需要什么知識高端seo服務(wù)
  • 淮安網(wǎng)站建設(shè)公司電話源碼交易平臺
  • 創(chuàng)建學(xué)校網(wǎng)站蘭州seo培訓(xùn)
  • 網(wǎng)站解析怎么做谷歌瀏覽器引擎入口
  • appui設(shè)計圖seo及網(wǎng)絡(luò)推廣招聘
  • 網(wǎng)站管理公司seo推廣排名平臺有哪些
  • 北京官方網(wǎng)站網(wǎng)百度seo收費
  • 動態(tài)網(wǎng)站后臺怎么做2021年最為成功的營銷案例
  • 建設(shè)銀行博士后招聘網(wǎng)站營銷推廣軟件有哪些
  • baiduspider無法訪問您的網(wǎng)站微信管理工具
  • 垂直網(wǎng)站建設(shè)東莞seo項目優(yōu)化方法
  • 做網(wǎng)站公司鄭州鄭州的網(wǎng)站建設(shè)公司百度貼吧網(wǎng)頁版登錄
  • 徐州優(yōu)化網(wǎng)站建設(shè)網(wǎng)絡(luò)工程師培訓(xùn)機(jī)構(gòu)排名
  • WordPress用戶認(rèn)證中心百度seo提高排名費用