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-11
Mybatis第三方PageHelper分頁插件的使用與原理
提到插件相信大家都知道,插件的存在主要是用來改變或者增強原有的功能,MyBatis中也一樣,下面這篇文章主要給大家介紹了關(guān)于Mybatis第三方PageHelper分頁插件的使用與原理,需要的朋友可以參考下2022-02-02
Spring操作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-07
springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)
在大型的項目中,如果你有非常多的接口需要統(tǒng)一管理,或者需要進行接口測試,那么我們通常會在繁雜地api中找到需要進行測試或者管理的接口,接下來通過本文給大家介紹springboot集成Swagger的方法讓你擁有屬于自己的api管理器,感興趣的朋友一起看看吧2021-11-11
Spring AOP 對象內(nèi)部方法間的嵌套調(diào)用方式
這篇文章主要介紹了Spring AOP 對象內(nèi)部方法間的嵌套調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
解決idea?中?SpringBoot?點擊運行沒反應(yīng)按鈕成灰色的問題
在使用 Spring Boot 開發(fā)項目時,可能會遇到一個問題:點擊運行按鈕后,控制臺沒有任何輸出,項目界面也沒有顯示,這種情況可能是由多種原因?qū)е碌模疚膶⒔榻B一些常見的解決方法,需要的朋友可以參考下2023-08-08

