国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Eines Abends sah sie ein sehr lehrreiches Video über Douyin, ?Ein Mann, der seine Frau liebt, sollte die ganze Hausarbeit machen“, und dann wollte sie es herunterladen das Video, das sie mit der Gruppe ihrer Schwestern geteilt hat, um Erfahrungen zum Thema Controlling Husband auszutauschen. " >Lassen Sie mich Ihnen sagen, warum ich ein Douyin-Video-Wasserzeichen-Entfernungstool erstellen m?chte Sandskulpturen-Freundin. Sie hat mich tats?chlich gerade getroffen~Eines Abends sah sie ein sehr lehrreiches Video über Douyin, ?Ein Mann, der seine Frau liebt, sollte die ganze Hausarbeit machen“, und dann wollte sie es herunterladen das Video, das sie mit der Gruppe ihrer Schwestern geteilt hat, um Erfahrungen zum Thema Controlling Husband auszutauschen.
Heim Java JavaBase Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

Nov 27, 2020 pm 05:02 PM
java Wasserzeichen entfernen

Verwandte Lernempfehlungen: Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

Java-GrundlagenJede Ursache muss ihre Wirkung haben

Aber jeder wei?, dass die von Douyin heruntergeladenen Videos mit einem Wasserzeichen versehen sind. Wenn das nicht m?glich ist, dann suchen Sie nach einem Tool zum Entfernen von Wasserzeichen Entweder kann es nicht heruntergeladen werden und das L?cheln auf dem Gesicht des Meisters verschwindet allm?hlich.

Ich habe nebenbei gescherzt: Es ist gar nicht so schwer, wie w?re es, wenn ich eins für dich mache! ?Geht es dir gut?“ Dann warf er einen ver?chtlichen Blick zu. 教育意義 的視頻,“男人疼媳婦就該承包全部家務活”,然后它就想把視頻下載下來,分享到她的姐妹群交流 馭夫 心得。

可是大家都知道抖音下載的視頻是帶水印,作為一個重度強迫癥選手這是不被允許的,沒辦法那就找找有沒有去水印工具吧,找了一圈要不就是收費,要么下載不下來,主上臉上的笑容也在逐漸消失。

我在邊上調侃了一句:也沒多難,要不我給你做一個!“你行嗎?” 然后投來了一個不屑的眼神。

Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

哎呀!本來就開個玩笑,居然說我不行,這就不能忍了,我得證明給你看看!男人嘛,就受不了這話

先看下我做的去水印工具線上預覽效果: 47.93.6.5:8888/index

Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

下邊和大家一起分析下做這個去水印工具的思路,很多人乍一聽 去水印 ,下意識的覺得是一種什么牛比的算法,其實這是一種假象~

刨根問底

雖說要爭口氣,可剛開始做的時候我也真是一臉懵逼,因為根本不知道該從哪入手,去水印什么原理???難不成我還要寫個算法?

找了一個抖音視頻的分享鏈接,一點點分析,不難發(fā)現(xiàn)這是個經(jīng)過處理的短鏈接,那這個短鏈接一定會重定向到真實的視頻地址 URL

https://v.douyin.com/JSkuhE4/

瀏覽器中輸入短鏈接得到了下邊這個 URL ,以我的經(jīng)驗判斷URL中的 6820792802394262795 很有可能是視頻的唯一ID,而唯一ID通常用來作為獲取詳情接口的入?yún)?,哎嘿~ 好像有點頭緒了。

https://www.iesdouyin.com/share/video/6820792802394262795/

Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

趕緊祭出 F12 大法打開控制臺,在眾多請求中發(fā)現(xiàn)這么一個接口,它居然用到了上邊的唯一ID。

https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6820792802394262795


更驚喜的是接口返回的數(shù)據(jù)那叫一個詳細,作者信息、音頻地址、視頻地址、平面圖都有。但唯獨沒有無水印的視頻 URL。

只找到一個有水印的視頻 URL,有點小失落,我又看了看這個地址,發(fā)現(xiàn) wm 和我項目名有點像啊,不就是watermark 水印的縮寫嗎?

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f030000bqk54kg2saj3lso3oh20&ratio=720p&line=0


好像又看到了一絲希望,我趕緊修改URL在瀏覽器中又試了一下,果然真的沒水印了。

https://aweme.snssdk.com/aweme/v1/play/?video_id=v0200f030000bqk54kg2saj3lso3oh20&ratio=720p&line=0

Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen
到這才發(fā)現(xiàn)抖音去水印 簡單的讓人感動,哈哈哈~

身體力行

既然原理都清晰了,剩下的就是一步一步實現(xiàn)功能了,原理看著挺簡單的,但實現(xiàn)中還是遇到一點點小坑,浪費了不少時間。

實現(xiàn)過程只有簡單的三步:

  • 1、從輸入框中過濾取出視頻短連接
  • 2、短連接傳到后端解析出無水印的視頻 URL
  • 3、視頻 URL傳遞給前端預覽、下載

后端并沒有什么難度,一步一步按照上邊分析的流程解析真實視頻 URL

Bildbeschreibung hier einfügen????Ups! Es war nur ein Scherz, aber du hast tats?chlich gesagt, dass ich nicht gut bin. Das muss ich dir beweisen. M?nner, ich kann das nicht ertragen ??
?? Schauen Sie sich zun?chst den Online-Vorschaueffekt des Tools zum Entfernen von Wasserzeichen an, das ich erstellt habe: 47.93.6.5:8888/index??
??Vorschau der Wasserzeichenentfernung???? Lassen Sie uns die Idee dieser Wasserzeichenentfernung analysieren Viele Leute haben das gerade bemerkt. Als ich Wasserzeichenentfernung h?rte, dachte ich unbewusst, es sei eine Art gro?artiger Algorithmus ~ ????????Ich habe mir mehr gewünscht Informationen????Obwohl ich mit Ihnen streiten muss, war ich wirklich verwirrt, als ich damit anfing, weil ich nicht wusste, wo ich anfangen soll. Was ist das Prinzip der Wasserzeichenentfernung? Ist es m?glich, dass ich noch einen Algorithmus schreiben muss? ????Ich habe einen Freigabelink für ein Douyin-Video gefunden. Nach einer kleinen Analyse war es nicht schwer herauszufinden, dass es sich um einen verarbeiteten Kurzlink handelte. Dann würde dieser Kurzlink definitiv zur echten Videoadresse URLweiterleiten >. ??
/**
*?@param?url
*?@author?xiaofu
*?@description?獲取當前鏈接重定向后的url
*?@date?2020/9/15?12:43
*/public?static?String?getLocation(String?url)?{
????????try?{
????????????URL?serverUrl?=?new?URL(url);
????????????HttpURLConnection?conn?=?(HttpURLConnection)?serverUrl.openConnection();
????????????conn.setRequestMethod("GET");
????????????conn.setInstanceFollowRedirects(false);
????????????conn.setRequestProperty("User-agent",?"ua");//模擬手機連接
????????????conn.connect();
????????????String?location?=?conn.getHeaderField("Location");
????????????return?location;
????????}?catch?(Exception?e)?{
????????????e.printStackTrace();
????????}
????????return?"";
????}
?? Geben Sie den kurzen Link in den Browser ein und erhalten Sie die URL unten. Aufgrund meiner Erfahrung halte ich das für 6820792802394262795 in URL wahrscheinlich ein Video Die eindeutige ID, und die eindeutige ID wird normalerweise als Eingabeparameter der Schnittstelle zum Abrufen von Details verwendet. Hehe ~ Ich habe anscheinend einige Hinweise. ??
/**
?*?@author?xiaofu-公眾號:程序員內點事
?*?@description?抖音無水印視頻下載
?*?@date?2020/9/15?18:44
?*/@Slf4j
@Controllerpublic?class?DYController?{
????public?static?String?DOU_YIN_BASE_URL?=?"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=";
????/**
?????*?@param?url
?????*?@author?xiaofu
?????*?@description?解析抖音無水印視頻
?????*?@date?2020/9/15?12:43
?????*/
????@RequestMapping("/parseVideoUrl")
????@ResponseBody????public?String?parseVideoUrl(@RequestBody?String?url)?throws?Exception?{
????????DYDto?dyDto?=?new?DYDto();
????????try?{
????????????url?=?URLDecoder.decode(url).replace("url=",?"");
????????????/**
?????????????*?1、短連接重定向后的?URL
?????????????*/
????????????String?redirectUrl?=?CommonUtils.getLocation(url);

????????????/**
?????????????*?2、拿到視頻對應的?ItemId
?????????????*/
????????????String?videoUrl?=?"";
????????????String?musicUrl?=?"";
????????????String?videoPic?=?"";
????????????String?desc?=?"";
????????????if?(!StringUtils.isEmpty(redirectUrl))?{
????????????????/**
?????????????????*?3、用?ItemId?拿視頻的詳細信息,包括無水印視頻url
?????????????????*/
????????????????String?itemId?=?CommonUtils.matchNo(redirectUrl);
????????????????StringBuilder?sb?=?new?StringBuilder();
????????????????sb.append(DOU_YIN_BASE_URL).append(itemId);
????????????????String?videoResult?=?CommonUtils.httpGet(sb.toString());
????????????????DYResult?dyResult?=?JSON.parseObject(videoResult,?DYResult.class);
????????????????/**
?????????????????*?4、無水印視頻?url
?????????????????*/
????????????????videoUrl?=?dyResult.getItem_list().get(0)
????????????????????????.getVideo().getPlay_addr().getUrl_list().get(0)
????????????????????????.replace("playwm",?"play");
????????????????String?videoRedirectUrl?=?CommonUtils.getLocation(videoUrl);
????????????????dyDto.setVideoUrl(videoRedirectUrl);
????????????????/**
?????????????????*?5、音頻?url
?????????????????*/
????????????????musicUrl?=?dyResult.getItem_list().get(0).getMusic().getPlay_url().getUri();
????????????????dyDto.setMusicUrl(musicUrl);
????????????????/**
?????????????????*?6、封面
?????????????????*/
????????????????videoPic?=?dyResult.getItem_list().get(0).getVideo().getDynamic_cover().getUrl_list().get(0);
????????????????dyDto.setVideoPic(videoPic);
????????????????/**
?????????????????*?7、視頻文案
?????????????????*/
????????????????desc?=?dyResult.getItem_list().get(0).getDesc();
????????????????dyDto.setDesc(desc);
????????????}
????????}?catch?(Exception?e)?{
????????????log.error("去水印異常?{}",?e);
????????}
????????return?JSON.toJSONString(dyDto);
????}}
??Link mit Wasserzeichen????Beeilen Sie sich F12 Dafa ?ffnete die Konsole und fand unter vielen Anfragen eine solche Schnittstelle. Sie verwendete tats?chlich die obige eindeutige ID. ??
$.ajax({
????url:?'/parseVideoUrl',
????type:?'POST',
????data:?{"url":?link},
????success:?function?(data)?{
????????$('.qsy-submit').attr('disabled',?false);
????????try?{
????????????var?rows?=?JSON.parse(data);
????????????layer.close(index);
????????????layer.open({
????????????????type:?1,
????????????????title:?false,
????????????????closeBtn:?1,
????????????????shadeClose:?true,
????????????????skin:?'yourclass',
????????????????content:?`<p></p><p></p><p><a><button>下載視頻</button></a></p><p><textarea>${rows['videoUrl']}</textarea><button>復制鏈接</button></p><p><a><button>下載音頻</button></a></p><video><source>?</source></video>`
????????????????//content:?`<video><source>?</source></video>`
????????????});

????????}?catch?(error)?{
????????????layer.alert('錯誤信息:'?+?error,?{
????????????????title:?'異常',
????????????????skin:?'layui-layer-lan',
????????????????closeBtn:?0,
????????????????anim:?4?//動畫類型
????????????});
????????????return?false;
????????}
????},
????error:?function?(err)?{
????????console.log(err);
????????layer.close(index);
????????$('.qsy-submit').attr('disabled',?false);
????},
????done:?function?()?{
????????layer.close(index);
????}})})
??
Was noch überraschender ist die Schnittstelle Rückkehr Die Daten werden detailliert aufgerufen, einschlie?lich Autoreninformationen, Audioadresse, Videoadresse und Grundriss. Aber es gibt kein Video ohne Wasserzeichen URL.

Nur eines mit Wasserzeichen gefunden Die URL des Videos war etwas entt?uschend. Ich schaute mir die Adresse noch einmal an und stellte fest, dass wm dem Namen meines Projekts ?hnelte. Es war nur watermark. Die Abkürzung für Wasserzeichen? ??<pre class="brush:php;toolbar:false">?&lt;!-- 解決訪問視頻url 請求403異常 --&gt; ?&lt;meta&gt;</pre>??<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/f753acc2c65475f5e8ea8e4bbd4e253f-5.png" class="lazy" alt=""><br>Es scheint, als g?be es noch einen anderen Hoffnungsschimmer, ich habe schnell die <code>URL ge?ndert und es noch einmal im Browser versucht, und tats?chlich war da wirklich kein Wasserzeichen. ??rrreee??Kein Wasserzeichen-Link
Das war's Ich habe festgestellt, dass die Wasserzeichenentfernung von Douyin so einfach und berührend ist, hahaha~????????üben Sie es selbst????Jetzt, da die Prinzipien klar sind, müssen Sie nur noch die Funktion Schritt für Schritt implementieren Scheint recht einfach zu sein, aber wir sind bei der Implementierung auf einige kleine Fallstricke gesto?en und haben viel Zeit verschwendet. ????Der Implementierungsprozess umfasst nur drei einfache Schritte: ??
  • 1. Filtern Sie den kurzen Videolink aus dem Eingabefeld
  • 2. übergeben Sie den kurzen Link an das Backend, um ihn zu analysieren das Video ohne WasserzeichenURL
  • 3. Die Video-URL wird zur Vorschau und zum Download an das Frontend übergeben
  • ??Das Backend ist nicht schwierig, folgen Sie Schritt für Schritt. Der oben analysierte Prozess reicht aus, um die echte Video-URL zu analysieren. ??

    注意 :我們想得到的地址URL,都是當前短連接URL 經(jīng)過重定向后的URL。而抖音有些鏈接是不支持瀏覽器訪問的,所以要手動修改 User-agent 屬性模擬移動端訪問才可以。

    /**
    *?@param?url
    *?@author?xiaofu
    *?@description?獲取當前鏈接重定向后的url
    *?@date?2020/9/15?12:43
    */public?static?String?getLocation(String?url)?{
    ????????try?{
    ????????????URL?serverUrl?=?new?URL(url);
    ????????????HttpURLConnection?conn?=?(HttpURLConnection)?serverUrl.openConnection();
    ????????????conn.setRequestMethod("GET");
    ????????????conn.setInstanceFollowRedirects(false);
    ????????????conn.setRequestProperty("User-agent",?"ua");//模擬手機連接
    ????????????conn.connect();
    ????????????String?location?=?conn.getHeaderField("Location");
    ????????????return?location;
    ????????}?catch?(Exception?e)?{
    ????????????e.printStackTrace();
    ????????}
    ????????return?"";
    ????}

    下邊是完整的后端實現(xiàn),可以看到代碼量非常的少。

    /**
    ?*?@author?xiaofu-公眾號:程序員內點事
    ?*?@description?抖音無水印視頻下載
    ?*?@date?2020/9/15?18:44
    ?*/@Slf4j
    @Controllerpublic?class?DYController?{
    ????public?static?String?DOU_YIN_BASE_URL?=?"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=";
    ????/**
    ?????*?@param?url
    ?????*?@author?xiaofu
    ?????*?@description?解析抖音無水印視頻
    ?????*?@date?2020/9/15?12:43
    ?????*/
    ????@RequestMapping("/parseVideoUrl")
    ????@ResponseBody????public?String?parseVideoUrl(@RequestBody?String?url)?throws?Exception?{
    ????????DYDto?dyDto?=?new?DYDto();
    ????????try?{
    ????????????url?=?URLDecoder.decode(url).replace("url=",?"");
    ????????????/**
    ?????????????*?1、短連接重定向后的?URL
    ?????????????*/
    ????????????String?redirectUrl?=?CommonUtils.getLocation(url);
    
    ????????????/**
    ?????????????*?2、拿到視頻對應的?ItemId
    ?????????????*/
    ????????????String?videoUrl?=?"";
    ????????????String?musicUrl?=?"";
    ????????????String?videoPic?=?"";
    ????????????String?desc?=?"";
    ????????????if?(!StringUtils.isEmpty(redirectUrl))?{
    ????????????????/**
    ?????????????????*?3、用?ItemId?拿視頻的詳細信息,包括無水印視頻url
    ?????????????????*/
    ????????????????String?itemId?=?CommonUtils.matchNo(redirectUrl);
    ????????????????StringBuilder?sb?=?new?StringBuilder();
    ????????????????sb.append(DOU_YIN_BASE_URL).append(itemId);
    ????????????????String?videoResult?=?CommonUtils.httpGet(sb.toString());
    ????????????????DYResult?dyResult?=?JSON.parseObject(videoResult,?DYResult.class);
    ????????????????/**
    ?????????????????*?4、無水印視頻?url
    ?????????????????*/
    ????????????????videoUrl?=?dyResult.getItem_list().get(0)
    ????????????????????????.getVideo().getPlay_addr().getUrl_list().get(0)
    ????????????????????????.replace("playwm",?"play");
    ????????????????String?videoRedirectUrl?=?CommonUtils.getLocation(videoUrl);
    ????????????????dyDto.setVideoUrl(videoRedirectUrl);
    ????????????????/**
    ?????????????????*?5、音頻?url
    ?????????????????*/
    ????????????????musicUrl?=?dyResult.getItem_list().get(0).getMusic().getPlay_url().getUri();
    ????????????????dyDto.setMusicUrl(musicUrl);
    ????????????????/**
    ?????????????????*?6、封面
    ?????????????????*/
    ????????????????videoPic?=?dyResult.getItem_list().get(0).getVideo().getDynamic_cover().getUrl_list().get(0);
    ????????????????dyDto.setVideoPic(videoPic);
    ????????????????/**
    ?????????????????*?7、視頻文案
    ?????????????????*/
    ????????????????desc?=?dyResult.getItem_list().get(0).getDesc();
    ????????????????dyDto.setDesc(desc);
    ????????????}
    ????????}?catch?(Exception?e)?{
    ????????????log.error("去水印異常?{}",?e);
    ????????}
    ????????return?JSON.toJSONString(dyDto);
    ????}}

    前端實現(xiàn)也比較簡單,拿到后端解析出來的視頻URL 預覽播放、下載就OK了。

    Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

    為快速實現(xiàn)我用了老古董JQuery,我這個年紀的人對它感情還是很深厚的,UI 框架用的 layer.js。源碼后邊會分享給大家,就不全貼出來了。

    $.ajax({
    ????url:?'/parseVideoUrl',
    ????type:?'POST',
    ????data:?{"url":?link},
    ????success:?function?(data)?{
    ????????$('.qsy-submit').attr('disabled',?false);
    ????????try?{
    ????????????var?rows?=?JSON.parse(data);
    ????????????layer.close(index);
    ????????????layer.open({
    ????????????????type:?1,
    ????????????????title:?false,
    ????????????????closeBtn:?1,
    ????????????????shadeClose:?true,
    ????????????????skin:?'yourclass',
    ????????????????content:?`<p></p><p></p><p><a><button>下載視頻</button></a></p><p><textarea>${rows['videoUrl']}</textarea><button>復制鏈接</button></p><p><a><button>下載音頻</button></a></p><video><source>?</source></video>`
    ????????????????//content:?`<video><source>?</source></video>`
    ????????????});
    
    ????????}?catch?(error)?{
    ????????????layer.alert('錯誤信息:'?+?error,?{
    ????????????????title:?'異常',
    ????????????????skin:?'layui-layer-lan',
    ????????????????closeBtn:?0,
    ????????????????anim:?4?//動畫類型
    ????????????});
    ????????????return?false;
    ????????}
    ????},
    ????error:?function?(err)?{
    ????????console.log(err);
    ????????layer.close(index);
    ????????$('.qsy-submit').attr('disabled',?false);
    ????},
    ????done:?function?()?{
    ????????layer.close(index);
    ????}})})

    注意:我們在自己的網(wǎng)站中引用其它網(wǎng)站的資源URL,由于不在同一個域名下referrer 不同,通常會遇到三方網(wǎng)站的防盜鏈攔截,所以要想正常訪問三方資源,必須要隱藏請求的referrer,頁面中設置如下參數(shù)。

    ?<!-- 解決訪問視頻url 請求403異常 -->
    ?<meta>

    還簡單做了下移動端適配,樣式看著還可以,但是功能使用起來有點差強人意,后邊在做優(yōu)化了。

    Java-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen

    總結

    很多東西就是這樣,沒認真研究之前總感覺深不可測,可一旦接觸到技術的本質,又開始笑自己之前好蠢,懂與不懂有時就查那么一層窗戶紙。

    Das obige ist der detaillierte Inhalt vonJava-Programmierer schreiben von Hand ein Tool zum Entfernen von Douyin-Video-Wasserzeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erkl?rung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Hei?e KI -Werkzeuge

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

    Hei?e Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Hei?e Themen

    PHP-Tutorial
    1502
    276
    Wie gehe ich mit Transaktionen in Java mit JDBC um? Wie gehe ich mit Transaktionen in Java mit JDBC um? Aug 02, 2025 pm 12:29 PM

    Um JDBC -Transaktionen korrekt zu verarbeiten, müssen Sie zun?chst den automatischen Komiti -Modus ausschalten und dann mehrere Vorg?nge ausführen und schlie?lich entsprechend den Ergebnissen festlegen oder rollen. 1. Nennen Sie Conn.SetAutoCommit (False), um die Transaktion zu starten. 2. Führen Sie mehrere SQL -Operationen aus, z. B. einfügen und aktualisieren. 3. Rufen Sie Conn.Commit () an, wenn alle Vorg?nge erfolgreich sind, und rufen Sie Conn.Rollback () auf, wenn eine Ausnahme auftritt, um die Datenkonsistenz zu gew?hrleisten. Gleichzeitig sollten Try-with-Ressourcen verwendet werden, um Ressourcen zu verwalten, Ausnahmen ordnungsgem?? zu behandeln und Verbindungen zu schlie?en, um Verbindungsleckage zu vermeiden. Darüber hinaus wird empfohlen, Verbindungspools zu verwenden und Save -Punkte zu setzen, um teilweise Rollback zu erreichen und Transaktionen so kurz wie m?glich zu halten, um die Leistung zu verbessern.

    Wie arbeite man mit Kalender in Java? Wie arbeite man mit Kalender in Java? Aug 02, 2025 am 02:38 AM

    Verwenden Sie Klassen im Java.Time -Paket, um das alte Datum und die Kalenderklassen zu ersetzen. 2. Erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit durch LocalDate, LocalDatetime und Local Time; 3. Erstellen Sie ein bestimmtes Datum und eine bestimmte Uhrzeit mit der von () Methode; 4.. Verwenden Sie die Plus/Minus -Methode, um die Zeit nicht zu erh?hen und zu verkürzen. 5. Verwenden Sie ZonedDatetime und zoneId, um die Zeitzone zu verarbeiten. 6. Format und analysieren Sie Datumszeichenfolgen über DateTimeFormatter; 7. Verwenden Sie sofortige, um bei Bedarf mit den alten Datumstypen kompatibel zu sein. Die Verarbeitung der Datum in der modernen Java sollte der Verwendung von Java.Timeapi vorrangig machen, was klare, unver?nderliche und linear ist

    Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Aug 04, 2025 pm 12:48 PM

    Pre-Formancetartuptimemoryusage, QuarkusandmicronautleadduToCompile-Time-foringandgraalvSupport, WithQuarkusofttenperformLightBetterin serverloser Szenarien.2. Thyvelopecosystem,

    Verst?ndnis von Netzwerkports und Firewalls Verst?ndnis von Netzwerkports und Firewalls Aug 01, 2025 am 06:40 AM

    Networkportsandfirewallsworktogethertoenablecommunicationwhileensuringsecurity.1.Networkportsarevirtualendpointsnumbered0–65535,withwell-knownportslike80(HTTP),443(HTTPS),22(SSH),and25(SMTP)identifyingspecificservices.2.PortsoperateoverTCP(reliable,c

    Wie funktioniert die Müllsammlung in Java? Wie funktioniert die Müllsammlung in Java? Aug 02, 2025 pm 01:55 PM

    Die Müllsammlung von Java (GC) ist ein Mechanismus, der automatisch den Speicher verwaltet, der das Risiko eines Speicherlecks verringert, indem unerreichbare Objekte zurückgeführt werden. 1.GC beurteilt die Zug?nglichkeit des Objekts aus dem Stammobjekt (z. B. Stapelvariablen, aktive Threads, statische Felder usw.) und nicht erreichbare Objekte als Müll markiert. 2. Basierend auf dem markierten Algorithmus markieren Sie alle erreichbaren Objekte und l?schen Sie nicht markierte Objekte. 3.. Verfolgen Sie eine Generationskollektionsstrategie: Die neue Generation (Eden, S0, S1) führt h?ufig MollGC aus; Die ?lteren Menschen erzielen weniger, dauert jedoch l?nger, um MajorGC durchzuführen. MetaPace speichert Klassenmetadaten. 4. JVM bietet eine Vielzahl von GC -Ger?ten: SerialGC ist für kleine Anwendungen geeignet; ParallelgC verbessert den Durchsatz; CMS reduziert sich

    Verwenden von HTML `Input` -Typen für Benutzerdaten Verwenden von HTML `Input` -Typen für Benutzerdaten Aug 03, 2025 am 11:07 AM

    Durch die Auswahl des richtigen HTMlinput -Typs kann die Datengenauigkeit verbessert, die Benutzererfahrung verbessert und die Benutzerfreundlichkeit verbessert werden. 1. W?hlen Sie die entsprechenden Eingabetypen gem?? dem Datentyp aus, z. B. Text, E -Mail, Tel, Nummer und Datum, die automatisch überprüft und an die Tastatur anpassen k?nnen. 2. Verwenden Sie HTML5, um neue Typen wie URL, Farbe, Reichweite und Suche hinzuzufügen, die eine intuitivere Interaktionsmethode bieten k?nnen. 3.. Verwenden Sie Platzhalter und erforderliche Attribute, um die Effizienz und Genauigkeit der Formulierung zu verbessern. Es sollte jedoch beachtet werden, dass der Platzhalter das Etikett nicht ersetzen kann.

    Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Aug 03, 2025 am 11:35 AM

    HTTP-Protokoll Middleware in Go kann Anforderungsmethoden, Pfade, Client-IP und zeitaufw?ndiges Aufzeichnen aufzeichnen. 1. Verwenden Sie http.Handlerfunc, um den Prozessor zu wickeln, 2. Nehmen Sie die Startzeit und die Endzeit vor und nach dem Aufrufen als n?chstes auf. Der vollst?ndige Beispielcode wurde überprüft, um auszuführen und eignet sich zum Starten eines kleinen und mittelgro?en Projekts. Zu den Erweiterungsvorschl?gen geh?ren das Erfassen von Statuscodes, die Unterstützung von JSON -Protokollen und die Nachverfolgung von ID -IDs.

    Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

    GradleStheBetterChoiceFormostnewProjectsDuetoitSuperiorFlexibilit?t, Leistung und ModerntoolingSupport.1.GRADLE'SGROOVY/KOTLINDSLISMORECONCISEANDEIPRESSIVETHANMANMANBOSEXML.2.GRAGRECONCISEANDEPRPRESSIVETHANMAVENSVOSEXML.2.

    See all articles