Java開(kāi)發(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.過(guò)濾-filter
// 過(guò)濾所有女生
List<Student> studentListT = studentList.stream()
.filter(item -> "2".equals(item.getStudentSex())).collect(Collectors.toList());
// 過(guò)濾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());
// 過(guò)濾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開(kāi)發(fā)中常用記錄的文章就介紹到這了,更多相關(guān)Java開(kāi)發(fā)記錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea使用spring Initializr 快速搭建springboot項(xiàng)目遇到的坑
這篇文章主要介紹了idea使用spring Initializr 快速搭建springboot項(xiàng)目遇到的坑,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Mybatis第三方PageHelper分頁(yè)插件的使用與原理
提到插件相信大家都知道,插件的存在主要是用來(lái)改變或者增強(qiáng)原有的功能,MyBatis中也一樣,下面這篇文章主要給大家介紹了關(guān)于Mybatis第三方PageHelper分頁(yè)插件的使用與原理,需要的朋友可以參考下2022-02-02
Spring操作JdbcTemplate數(shù)據(jù)庫(kù)的方法學(xué)習(xí)
這篇文章主要為大家介紹了Spring操作JdbcTemplate數(shù)據(jù)庫(kù)方法學(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)的解決方法,文中通過(guò)完整的示例代碼給大家介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
Java使用BigDecimal公式精確計(jì)算及精度丟失問(wèn)題
在工作中經(jīng)常會(huì)遇到數(shù)值精度問(wèn)題,比如說(shuō)使用float或者double的時(shí)候,可能會(huì)有精度丟失問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Java使用BigDecimal公式精確計(jì)算及精度丟失問(wèn)題的相關(guān)資料,需要的朋友可以參考下2023-01-01
springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)
在大型的項(xiàng)目中,如果你有非常多的接口需要統(tǒng)一管理,或者需要進(jìn)行接口測(cè)試,那么我們通常會(huì)在繁雜地api中找到需要進(jìn)行測(cè)試或者管理的接口,接下來(lái)通過(guò)本文給大家介紹springboot集成Swagger的方法讓你擁有屬于自己的api管理器,感興趣的朋友一起看看吧2021-11-11
Spring 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)行沒(méi)反應(yīng)按鈕成灰色的問(wèn)題
在使用 Spring Boot 開(kāi)發(fā)項(xiàng)目時(shí),可能會(huì)遇到一個(gè)問(wèn)題:點(diǎn)擊運(yùn)行按鈕后,控制臺(tái)沒(méi)有任何輸出,項(xiàng)目界面也沒(méi)有顯示,這種情況可能是由多種原因?qū)е碌?,本文將介紹一些常見(jiàn)的解決方法,需要的朋友可以參考下2023-08-08

