Java開發(fā)中常用記錄
一、編程式事務(wù)
1.在執(zhí)行事務(wù)提交或者回滾之前,事務(wù)狀態(tài)不確定時(shí),可以判斷一下事務(wù)是否已完成,避免重復(fù)提交或者回滾出現(xiàn)異常
舉例:
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); if (!transactionStatus.isCompleted()) { platformTransactionManager.commit(transactionStatus); }
2.由于編程式事務(wù)不會(huì)自動(dòng)提交或者回滾,我們可以在try-catch之后加一個(gè)finally,判斷事務(wù)未完成時(shí),進(jìn)行回滾,保證每個(gè)事務(wù)一定會(huì)結(jié)束
舉例:
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); try { ... ... } catch (Exception ex) { ... ... } finally { if (!transactionStatus.isCompleted()) { platformTransactionManager.rollback(transactionStatus); } }
二、Stream
1.使用到的數(shù)據(jù)結(jié)構(gòu)及模擬數(shù)據(jù)
import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data public class Student { @ApiModelProperty(value = "學(xué)生ID") private String studentId; @ApiModelProperty(value = "學(xué)生姓名") private String studentName; @ApiModelProperty(value = "學(xué)生性別,1-男,2-女") private String studentSex; @ApiModelProperty(value = "學(xué)生年齡Integer") private Integer studentAgeInt; @ApiModelProperty(value = "學(xué)生年齡Double") private Double studentAgeDou; @ApiModelProperty(value = "學(xué)生年齡BigDecimal") private BigDecimal studentAgeDec; }
// 數(shù)據(jù)列表 List List<Student> studentList = new ArrayList<>(); Student student = new Student(); student.setStudentId("20220930000001"); student.setStudentName("趙甲"); student.setStudentSex("1"); student.setStudentAgeInt(11); student.setStudentAgeDou(11.11); student.setStudentAgeDec(new BigDecimal(11.11)); studentList.add(student); student = new Student(); student.setStudentId("20220930000002"); student.setStudentName("錢乙"); student.setStudentSex("2"); student.setStudentAgeInt(12); student.setStudentAgeDou(12.12); student.setStudentAgeDec(new BigDecimal(12.12)); studentList.add(student); student = new Student(); student.setStudentId("20220930000003"); student.setStudentName("孫丙"); student.setStudentSex("1"); student.setStudentAgeInt(13); student.setStudentAgeDou(13.13); student.setStudentAgeDec(new BigDecimal(13.13)); studentList.add(student); student = new Student(); student.setStudentId("20220930000004"); student.setStudentName("李丁"); student.setStudentSex("2"); student.setStudentAgeInt(14); student.setStudentAgeDou(14.14); student.setStudentAgeDec(new BigDecimal(14.14)); studentList.add(student); student = new Student(); student.setStudentId("20220930000005"); student.setStudentName("周戊"); student.setStudentSex("1"); student.setStudentAgeInt(15); student.setStudentAgeDou(15.15); student.setStudentAgeDec(new BigDecimal(15.15)); studentList.add(student);
// 數(shù)據(jù)Map Map<String,Student> studentMap = new HashMap<>(5); Student student = new Student(); student.setStudentId("20220930000001"); student.setStudentName("趙甲"); student.setStudentSex("1"); student.setStudentAgeInt(11); student.setStudentAgeDou(11.11); student.setStudentAgeDec(new BigDecimal(11.11)); studentMap.put(student.getStudentId(),student); student = new Student(); student.setStudentId("20220930000002"); student.setStudentName("錢乙"); student.setStudentSex("2"); student.setStudentAgeInt(12); student.setStudentAgeDou(12.12); student.setStudentAgeDec(new BigDecimal(12.12)); studentMap.put(student.getStudentId(),student); student = new Student(); student.setStudentId("20220930000003"); student.setStudentName("孫丙"); student.setStudentSex("1"); student.setStudentAgeInt(13); student.setStudentAgeDou(13.13); student.setStudentAgeDec(new BigDecimal(13.13)); studentMap.put(student.getStudentId(),student); student = new Student(); student.setStudentId("20220930000004"); student.setStudentName("李丁"); student.setStudentSex("2"); student.setStudentAgeInt(14); student.setStudentAgeDou(14.14); student.setStudentAgeDec(new BigDecimal(14.14)); studentMap.put(student.getStudentId(),student); student = new Student(); student.setStudentId("20220930000005"); student.setStudentName("周戊"); student.setStudentSex("1"); student.setStudentAgeInt(15); student.setStudentAgeDou(15.15); student.setStudentAgeDec(new BigDecimal(15.15)); studentMap.put(student.getStudentId(),student);
2.過濾-filter
// 過濾所有女生 List<Student> studentListT = studentList.stream() .filter(item -> "2".equals(item.getStudentSex())).collect(Collectors.toList()); // 過濾12歲以上學(xué)生(3種數(shù)據(jù)類型示例) studentListT = studentList.stream().filter(item -> item.getStudentAgeInt() > 12).collect(Collectors.toList()); studentListT = studentList.stream().filter(item -> item.getStudentAgeDou() > 12).collect(Collectors.toList()); studentListT = studentList.stream() .filter(item -> item.getStudentAgeDec().compareTo(new BigDecimal(12)) > 0).collect(Collectors.toList()); // 過濾12歲以上男生(2種方法示例) studentListT = studentList.stream().filter(item -> "1".equals(item.getStudentSex())) .filter(item -> item.getStudentAgeInt() > 12).collect(Collectors.toList()); studentListT = studentList.stream() .filter(item -> "1".equals(item.getStudentSex()) && item.getStudentAgeInt() > 12).collect(Collectors.toList());
三、Map轉(zhuǎn)對(duì)象
最近,研究map與java對(duì)象之間的相互轉(zhuǎn)換,總結(jié)了5種方法
http://www.dbjr.com.cn/article/190478.htm
四、Linux常用命令
1.查看所有java進(jìn)程
ps -ef | grep java
2.結(jié)束某個(gè)進(jìn)程
kill -9 pid
到此這篇關(guān)于Java開發(fā)中常用記錄的文章就介紹到這了,更多相關(guān)Java開發(fā)記錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea使用spring Initializr 快速搭建springboot項(xiàng)目遇到的坑
這篇文章主要介紹了idea使用spring Initializr 快速搭建springboot項(xiàng)目遇到的坑,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Mybatis第三方PageHelper分頁插件的使用與原理
提到插件相信大家都知道,插件的存在主要是用來改變或者增強(qiáng)原有的功能,MyBatis中也一樣,下面這篇文章主要給大家介紹了關(guān)于Mybatis第三方PageHelper分頁插件的使用與原理,需要的朋友可以參考下2022-02-02Spring操作JdbcTemplate數(shù)據(jù)庫的方法學(xué)習(xí)
這篇文章主要為大家介紹了Spring操作JdbcTemplate數(shù)據(jù)庫方法學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05詳解Spring中實(shí)現(xiàn)接口動(dòng)態(tài)的解決方法
最近在工作遇到的一個(gè),發(fā)現(xiàn)網(wǎng)上的資料較少,所以想著總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于Spring中實(shí)現(xiàn)接口動(dòng)態(tài)的解決方法,文中通過完整的示例代碼給大家介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07Java使用BigDecimal公式精確計(jì)算及精度丟失問題
在工作中經(jīng)常會(huì)遇到數(shù)值精度問題,比如說使用float或者double的時(shí)候,可能會(huì)有精度丟失問題,下面這篇文章主要給大家介紹了關(guān)于Java使用BigDecimal公式精確計(jì)算及精度丟失問題的相關(guān)資料,需要的朋友可以參考下2023-01-01springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)
在大型的項(xiàng)目中,如果你有非常多的接口需要統(tǒng)一管理,或者需要進(jìn)行接口測(cè)試,那么我們通常會(huì)在繁雜地api中找到需要進(jìn)行測(cè)試或者管理的接口,接下來通過本文給大家介紹springboot集成Swagger的方法讓你擁有屬于自己的api管理器,感興趣的朋友一起看看吧2021-11-11Spring AOP 對(duì)象內(nèi)部方法間的嵌套調(diào)用方式
這篇文章主要介紹了Spring AOP 對(duì)象內(nèi)部方法間的嵌套調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08解決idea?中?SpringBoot?點(diǎn)擊運(yùn)行沒反應(yīng)按鈕成灰色的問題
在使用 Spring Boot 開發(fā)項(xiàng)目時(shí),可能會(huì)遇到一個(gè)問題:點(diǎn)擊運(yùn)行按鈕后,控制臺(tái)沒有任何輸出,項(xiàng)目界面也沒有顯示,這種情況可能是由多種原因?qū)е碌模疚膶⒔榻B一些常見的解決方法,需要的朋友可以參考下2023-08-08