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

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

網(wǎng)站建設(shè)前期預(yù)算端點(diǎn)seo博客

網(wǎng)站建設(shè)前期預(yù)算,端點(diǎn)seo博客,網(wǎng)址站,通過(guò)網(wǎng)站做詐騙立案嗎最近有個(gè)需求,需要將頁(yè)面的內(nèi)容生成excel或者word文檔,而且每次的修改都需要生成新的版本,同時(shí)需要記錄每次修改變化的內(nèi)容。我們會(huì)把每次的修改的內(nèi)容提交賦值給一個(gè)java對(duì)象,同時(shí)存儲(chǔ)到數(shù)據(jù)庫(kù)一條新數(shù)據(jù),對(duì)應(yīng)數(shù)據(jù)表一…

? ? ? ? 最近有個(gè)需求,需要將頁(yè)面的內(nèi)容生成excel或者word文檔,而且每次的修改都需要生成新的版本,同時(shí)需要記錄每次修改變化的內(nèi)容。我們會(huì)把每次的修改的內(nèi)容提交賦值給一個(gè)java對(duì)象,同時(shí)存儲(chǔ)到數(shù)據(jù)庫(kù)一條新數(shù)據(jù),對(duì)應(yīng)數(shù)據(jù)表一行數(shù)據(jù)記錄。有個(gè)功能需要每次對(duì)比兩個(gè)任意版本的數(shù)據(jù),前端傳遞兩個(gè)不同的版本號(hào)參數(shù)和其他對(duì)應(yīng)的文檔id參數(shù),然后后端對(duì)應(yīng)查出來(lái)這兩行數(shù)據(jù),一種方法是,將兩條數(shù)據(jù),轉(zhuǎn)換成json字符串返回給前端,前端去對(duì)比兩個(gè)字符串的不同的地方,然后高亮對(duì)比展示在頁(yè)面。其實(shí)也可以后端去作對(duì)比,將變化的內(nèi)容和兩條數(shù)據(jù)一起返回,這樣前端你可以直接按照后端返回的對(duì)比內(nèi)容,去高亮顯示兩次修改的不同。

? ? ? ? ? ?現(xiàn)在模擬這種情況,比如是修改一個(gè)user的數(shù)據(jù),第一次創(chuàng)建時(shí)候是1.0.0版本,然后又再次修改了一些字段的內(nèi)容,提交后,形成一條新紀(jì)錄,版本1.0.1版本,現(xiàn)在直接創(chuàng)建兩個(gè)user對(duì)象,就當(dāng)是從數(shù)據(jù)庫(kù)中根據(jù)一定條件加上版本號(hào)限制查出來(lái)的兩條數(shù)據(jù)。

? ? ? ? ?JaVers的官網(wǎng):https://javers.org/

? ? ? ? ?首先,引入需要的基礎(chǔ)Maven依賴:

<!-- 阿里JSON解析器 --><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.43</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.1-jre</version></dependency>

然后寫(xiě)個(gè)測(cè)試方法,模擬這種場(chǎng)景

import com.alibaba.fastjson2.JSONArray;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.javers.core.Javers;
import org.javers.core.JaversBuilder;
import org.javers.core.diff.Change;
import org.javers.core.diff.Diff;import java.util.List;/*** @author xiaomifeng1010* @version 1.0* @date: 2024-10-24 17:04* @Description*/
public class DiffCompareTest {public static void main(String[] args) {
//        模擬從數(shù)據(jù)庫(kù)中查出來(lái)了兩條數(shù)據(jù)User user1 = new User();user1.setName("張三");user1.setAge(18);user1.setAddress("北京");user1.setPhone("123456789");user1.setEmail("123456789@qq.com");user1.setPassword("123456789");user1.setVersion("1.0.0");User user2 = new User();user2.setName("李四");user2.setAge(18);user2.setAddress("廣州");user2.setPhone("123456789");user2.setEmail("123456789@qq.com");user2.setPassword("dfjdgdg");user2.setVersion("1.0.1");Javers javers = JaversBuilder.javers().build();Diff diff = javers.compare(user1, user2);System.out.println("對(duì)比:"+diff);List<Change> changes = diff.getChanges();System.out.println("變化:"+changes);//        轉(zhuǎn)換成json數(shù)組字符串StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("[");for (Change change : changes) {String valueChange = change.toString().replace("ValueChange", "");stringBuilder.append(valueChange);System.out.println("每一項(xiàng)的變化:"+change);}stringBuilder.append("]");String jsonArrayStr = stringBuilder.toString();
//        打印轉(zhuǎn)換之后的json數(shù)組字符串System.out.println("json數(shù)組:"+jsonArrayStr);
//        或者賦值給一個(gè)java對(duì)象if (StringUtils.isNotBlank(jsonArrayStr)) {JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);List<DiffChange> diffChanges = jsonArray.toJavaList(DiffChange.class);System.out.println("轉(zhuǎn)換后的對(duì)象:"+diffChanges);}}
}@Data
class User {private String name;private Integer age;private String address;private String phone;private String email;private String password;private String version;}@Data
class DiffChange{private String property;private String left;private String right;
}

?在實(shí)際項(xiàng)目中,數(shù)據(jù)中是從數(shù)據(jù)中查詢出來(lái)的,同時(shí)也是通過(guò)controller中的接口返回給前端的json數(shù)據(jù),根據(jù)情況,組合java對(duì)象,返回給前端就可以了。

這個(gè)示例的運(yùn)行輸出內(nèi)容如下:

非常好用,而且這個(gè)javers開(kāi)源框架還有對(duì)應(yīng)的各種數(shù)據(jù)庫(kù)的審計(jì)工具;可以在Maven中央倉(cāng)庫(kù)中找到:

?

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

相關(guān)文章:

  • 物流企業(yè)網(wǎng)站有哪些百度網(wǎng)站優(yōu)化排名
  • 做公司網(wǎng)站 找誰(shuí)做網(wǎng)絡(luò)營(yíng)銷主要學(xué)什么
  • 做網(wǎng)站 信息集成過(guò)程的順序品牌營(yíng)銷策略案例
  • UE做的比較好的網(wǎng)站軟文的概念是什么
  • 開(kāi)獎(jiǎng)網(wǎng)站怎么做營(yíng)銷推廣網(wǎng)
  • 長(zhǎng)春老火車(chē)站圖片如何宣傳推廣自己的產(chǎn)品
  • 用網(wǎng)站做淘客怎么做株洲seo優(yōu)化推薦
  • 房地產(chǎn)銷售自我介紹大兵seo博客
  • 淘寶網(wǎng)站是什么語(yǔ)言做的qq群推廣
  • 政府大型門(mén)戶網(wǎng)站建設(shè)方案seo專業(yè)培訓(xùn)班
  • 如何做旅游網(wǎng)站的旅行家網(wǎng)址推廣
  • 網(wǎng)站規(guī)劃書(shū)包括哪些方面公司官網(wǎng)怎么制作
  • 教務(wù)系統(tǒng)網(wǎng)站怎么做南寧網(wǎng)站seo外包
  • 中企動(dòng)力制作的網(wǎng)站后臺(tái)怎樣搭建自己的網(wǎng)站
  • 做網(wǎng)站一個(gè)月30ip網(wǎng)絡(luò)推廣是網(wǎng)絡(luò)營(yíng)銷的基礎(chǔ)
  • 做cpa能用什么網(wǎng)站seo怎么優(yōu)化簡(jiǎn)述
  • 怎么創(chuàng)建網(wǎng)站論壇重慶seo公司
  • 網(wǎng)站建設(shè)企業(yè)的未來(lái)發(fā)展計(jì)劃十大少兒編程教育品牌
  • 網(wǎng)頁(yè)設(shè)計(jì)代碼模板海賊王網(wǎng)站優(yōu)化排名提升
  • 牛商網(wǎng)營(yíng)銷型網(wǎng)站建設(shè)廈門(mén)百度廣告開(kāi)戶
  • 網(wǎng)站建設(shè)免費(fèi)教程我是seo關(guān)鍵詞
  • 佛山建網(wǎng)站建網(wǎng)站找哪個(gè)公司
  • 業(yè)余學(xué)做衣服上哪個(gè)網(wǎng)站軟文網(wǎng)站大全
  • 廈門(mén)國(guó)外網(wǎng)站建設(shè)公司排名下載百度app最新版到桌面
  • 微信商城怎么進(jìn)鎮(zhèn)江交叉口優(yōu)化
  • 大連模板網(wǎng)站制作公司廣州網(wǎng)絡(luò)推廣外包
  • 上海最新傳染病疫情今天在線seo外鏈工具
  • 哪個(gè)網(wǎng)站可以做練習(xí)題百度收錄排名
  • 零售網(wǎng)站有哪些平臺(tái)信息流廣告代理商排名
  • 東莞網(wǎng)站seo推廣優(yōu)化網(wǎng)站統(tǒng)計(jì)哪個(gè)好用