Java開發(fā)中常用記錄
一、編程式事務(wù)
1.在執(zhí)行事務(wù)提交或者回滾之前,事務(wù)狀態(tài)不確定時,可以判斷一下事務(wù)是否已完成,避免重復(fù)提交或者回滾出現(xiàn)異常
舉例:
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); if (!transactionStatus.isCompleted()) { platformTransactionManager.commit(transactionStatus); }
2.由于編程式事務(wù)不會自動提交或者回滾,我們可以在try-catch之后加一個finally,判斷事務(wù)未完成時,進行回滾,保證每個事務(wù)一定會結(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)對象
最近,研究map與java對象之間的相互轉(zhuǎn)換,總結(jié)了5種方法
http://www.dbjr.com.cn/article/190478.htm
四、Linux常用命令
1.查看所有java進程
ps -ef | grep java
2.結(jié)束某個進程
kill -9 pid
到此這篇關(guān)于Java開發(fā)中常用記錄的文章就介紹到這了,更多相關(guān)Java開發(fā)記錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea使用spring Initializr 快速搭建springboot項目遇到的坑
這篇文章主要介紹了idea使用spring Initializr 快速搭建springboot項目遇到的坑,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Mybatis第三方PageHelper分頁插件的使用與原理
提到插件相信大家都知道,插件的存在主要是用來改變或者增強原有的功能,MyBatis中也一樣,下面這篇文章主要給大家介紹了關(guān)于Mybatis第三方PageHelper分頁插件的使用與原理,需要的朋友可以參考下2022-02-02Spring操作JdbcTemplate數(shù)據(jù)庫的方法學(xué)習(xí)
這篇文章主要為大家介紹了Spring操作JdbcTemplate數(shù)據(jù)庫方法學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05詳解Spring中實現(xiàn)接口動態(tài)的解決方法
最近在工作遇到的一個,發(fā)現(xiàn)網(wǎng)上的資料較少,所以想著總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于Spring中實現(xiàn)接口動態(tài)的解決方法,文中通過完整的示例代碼給大家介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)
在大型的項目中,如果你有非常多的接口需要統(tǒng)一管理,或者需要進行接口測試,那么我們通常會在繁雜地api中找到需要進行測試或者管理的接口,接下來通過本文給大家介紹springboot集成Swagger的方法讓你擁有屬于自己的api管理器,感興趣的朋友一起看看吧2021-11-11Spring AOP 對象內(nèi)部方法間的嵌套調(diào)用方式
這篇文章主要介紹了Spring AOP 對象內(nèi)部方法間的嵌套調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08解決idea?中?SpringBoot?點擊運行沒反應(yīng)按鈕成灰色的問題
在使用 Spring Boot 開發(fā)項目時,可能會遇到一個問題:點擊運行按鈕后,控制臺沒有任何輸出,項目界面也沒有顯示,這種情況可能是由多種原因?qū)е碌?,本文將介紹一些常見的解決方法,需要的朋友可以參考下2023-08-08