當前位置:首頁 » 編程語言 » java事務隔離級別

java事務隔離級別

發布時間: 2022-08-01 09:58:48

1. java中的Connection是什麼,有哪些方法 每個方法的返回值是什麼意思

這個東西是java api中提供的一個介面,他的實現類由其他廠商完成,用於與資料庫的鏈接
void clearWarnings()
清除為此 Connection 對象報告的所有警告。
void close()
立即釋放此 Connection 對象的資料庫和 JDBC 資源,而不是等待它們被自動釋放。
void commit()
使自從上一次提交/回滾以來進行的所有更改成為持久更改,並釋放此 Connection 對象當前保存的所有資料庫鎖定。
Statement createStatement()
創建一個 Statement 對象來將 sql 語句發送到資料庫。
Statement createStatement(int resultSetType, int resultSetConcurrency)
創建一個 Statement 對象,該對象將生成具有給定類型和並發性的 ResultSet 對象。
Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
創建一個 Statement 對象,該對象將生成具有給定類型、並發性和可保存性的 ResultSet 對象。
boolean getAutoCommit()
檢索此 Connection 對象的當前自動提交模式。
String getCatalog()
檢索此 Connection 對象的當前目錄名稱。
int getHoldability()
檢索使用此 Connection 對象創建的 ResultSet 對象的當前可保存性。
DatabaseMetaData getMetaData()
獲取 DatabaseMetaData 對象,該對象包含關於 Connection 對象連接到的資料庫的元數據。
int getTransactionIsolation()
檢索此 Connection 對象的當前事務隔離級別。
Map<String,Class<?>> getTypeMap()
將給定的 TypeMap 對象安裝為此 Connection 對象的類型映射表。
SQLWarning getWarnings()
檢索此 Connection 對象上的調用報告的第一個警告。
boolean isClosed()
檢索此 Connection 對象是否已經被關閉。
boolean isReadOnly()
檢索此 Connection 對象是否處於只讀模式。
String nativeSQL(String sql)
將給定的 SQL 語句轉換成系統本機 SQL 語法。
CallableStatement prepareCall(String sql)
創建一個 CallableStatement 對象來調用資料庫存儲過程。
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)
創建一個 CallableStatement 對象,該對象將生成具有給定類型和並發性的 ResultSet 對象。
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
創建一個 CallableStatement 對象,該對象將生成具有給定類型和並發性的 ResultSet 對象。
PreparedStatement prepareStatement(String sql)
創建一個 PreparedStatement 對象來將參數化的 SQL 語句發送到資料庫。
PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
創建一個默認 PreparedStatement 對象,該對象能檢索自動生成的鍵。
PreparedStatement prepareStatement(String sql, int[] columnIndexes)
創建一個能夠返回由給定數組指定的自動生成鍵的默認 PreparedStatement 對象。
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
創建一個 PreparedStatement 對象,該對象將生成具有給定類型和並發性的 ResultSet 對象。
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
創建一個 PreparedStatement 對象,該對象將生成具有給定類型、並發性和可保存性的 ResultSet 對象。
PreparedStatement prepareStatement(String sql, String[] columnNames)
創建一個能夠返回由給定數組指定的自動生成鍵的默認 PreparedStatement 對象。
void releaseSavepoint(Savepoint savepoint)
從當前事務中移除給定 Savepoint 對象。
void rollback()
取消在當前事務中進行的所有更改,並釋放此 Connection 對象當前保存的所有資料庫鎖定。
void rollback(Savepoint savepoint)
取消設置給定 Savepoint 對象之後進行的所有更改。
void setAutoCommit(boolean autoCommit)
將此連接的自動提交模式設置為給定狀態。
void setCatalog(String catalog)
設置給定目錄名稱,以便選擇要在其中進行工作的此 Connection 對象資料庫的子空間。
void setHoldability(int holdability)
將使用此 Connection 對象創建的 ResultSet 對象的可保存性 (holdability) 更改為給定可保存性。
void setReadOnly(boolean readOnly)
將此連接設置為只讀模式,作為驅動程序啟用資料庫優化的提示。
Savepoint setSavepoint()
在當前事務中創建一個未命名的保存點 (savepoint),並返回表示它的新 Savepoint 對象。
Savepoint setSavepoint(String name)
在當前事務中創建一個具有給定名稱的保存點,並返回表示它的新 Savepoint 對象。
void setTransactionIsolation(int level)
試圖將此 Connection 對象的事務隔離級別更改為給定的級別。
void setTypeMap(Map<String,Class<?>> map)
安裝給定的 TypeMap 對象作為此 Connection 對象的特定類型映射。

2. 求java學習路線圖

/*回答內容很長,能看完的少走一個月彎路,絕不抖機靈*/

提前預警:本文適合Java新手閱讀(老手可在評論區給下建議),希望大家看完能有所收獲。

廢話不多少了,先了解一下Java零基礎入門學習路線:

第一階段:JavaSE階段

變數、數據類型、運算符

  • 二進制和十進制的轉化

  • 注釋、單行注釋、多行注釋、文本注釋、注釋內容和位元組碼的關系

  • 標識符、關鍵字、駝峰原則

  • 變數的本質、內存畫圖、變數聲明和初始化

  • 變數的分類和作用域(局部變數、成員變數、靜態變數)

  • 常量和Final

  • 基本數據類型介紹

  • 整型變數和整型常量

  • 浮點類型、float、double

  • char字元型、轉義字元

  • boolean布爾型、if語句使用要點、布爾類型佔用空間問題

  • 運算符介紹

  • 算數運算符(二元、自增、自減)

  • 賦值和賦值運算符

  • 關系運算符詳解

  • 邏輯運算符、短路運算符詳解

  • 位運算符詳解

  • 字元串連接符

  • 條件運算符(三元運算符)

  • 運算符優先順序問題

  • 自動類型轉換詳解

  • 強制類型裝換詳解

  • 基本數據類型裝換常見錯誤、溢出、L問題

  • 使用Scanner獲取鍵盤輸入

控制語句

  • 控制語句和實現邏輯對應

  • if單選結構

  • if_elseif_else多選結構

  • switch語句_IDEA更換主題

  • 循環_while

  • 循環_for循環_dowhile

  • 嵌套循環

  • break和continue語句_標簽_控制語句底層原理

  • 寫一個年薪計算機_網路查問題的秘訣(重要)

  • 個人所得稅計算器軟體

  • 方法核心詳解_天才思維模型教你高手學習思維模式

  • 方法的重載

  • 遞歸結構講解_遞歸頭_遞歸體

面向對象編程-基礎

  • 面向過程和面向對象的區別

  • 類和對象的概述

  • 類的屬性和方法

  • 創建對象內存分析

  • 構造方法(Construtor)及重載

  • 對象類型的參數傳遞

  • this關鍵字

  • static關鍵字詳解

  • 局部代碼塊、構造代碼塊和靜態代碼塊

  • package和import詳解

  • JavaDoc生成API文檔

面向對象編程-進階

  • 面向對象的三大特性

  • 面向對象之【封裝(Encapsulation)】

  • 訪問許可權修飾符

  • 面向對象之【繼承(Inheritance)】

  • Object類

  • 方法重寫Override

  • super關鍵字詳解

  • 重寫equals()和toString()

  • 繼承中對象創建的內存分析

  • 面向對象之【多態(Polymorphism)】

  • 向上轉型

  • 向下轉型

  • instanceof運算符

  • 編譯時和運行時詳解

  • final修飾符

  • 抽象類和抽象方法(abstrct)

  • 介面的定義和實現

  • JDK8的介面新特性

  • 介面應用:內部類比較器Comparable

  • 內部類詳解

  • Java的內存管理與垃圾回收

異常機制

  • 異常的概述

  • 異常的執行過程與分析

  • try-catch-finally捕捉異常

  • throw拋出異常

  • throws聲明異常

  • 異常繼承體系

  • 運行時異常和編譯異常

  • 自定義異常

Java常用類

Wrapper包裝類

  • 自動裝箱和自動拆箱

  • 包裝類的源碼分析

  • String類的使用與內存原理

  • String類的源碼分析

  • StringBuffer

  • StringBuilder

  • 字元串處理類性能分析

  • Date類

  • System類

  • DateFormat類

  • Calendat類

  • Math類

  • BigInteger類和BigDecimal類

  • Random類

  • 枚舉類

  • File類

  • 常見的面試題講述與分析

  • 數據結構演算法

  • 數據結構的概述

  • 線性表

  • 順序表

  • 鏈表

  • 棧和隊列

  • 二叉樹

  • 二叉查找樹

  • 二叉平衡樹

  • 黑紅樹

  • 冒泡排序

  • 選擇排序

  • 遞歸

  • 折半查找

  • 集合(容器)

  • 集合和數組的聯系和區別

  • 集合框架體系

  • ArrayList的使用和源碼分析

  • 集合中使用泛型

  • LinkedList的使用和源碼分析

  • HashSet的使用和源碼分析

  • 哈希表及原理

  • TreeSet的使用和源碼分析

  • 比較器Comparable和Comparator

  • HashMap的使用和源碼分析

  • TreeMap的使用和源碼分析

  • Iterator於ListIterator

  • Collections工具類

  • 舊集合類Vector、Hashtable

  • 集合總結和選擇依據

  • 泛型介面

  • 泛型類

  • 泛型方法

  • IO流

  • IO流的概念

  • IO流的分類及其原理分析

  • 文件流FlieInputStream、FileOutputStream

  • 緩沖流BufferedInputStream、BufferedOutputStream

  • 數據流ObjectInputStream、ObjectOutputStream

  • 序列化和反序列化

  • 轉換流InputStreamReader、OutputStreamWriter

  • 列印流PrintWrite和PrintStream

  • 數組流ByteArrayOutputStream、ByteArrayInputStream

  • 使用IO復制文件夾

  • 多線程

  • 進程和線程

  • 線程的創建與啟動

  • 創建線程的三種方式對比

  • 線程的生命周期

  • 線程式控制制

  • 多線程的安全問題與解決辦法

  • 線程的同步:同步代碼塊

  • 線程的同步:同步方法

  • 線程的同步:Lock鎖

  • 線程的死鎖問題

  • 線程通信

  • Condition

  • 線程的完整生命周期

  • 線程池ThreadPoolExecutor

  • ForkJoin框架

  • ThreadLocal類

  • 網路編程

  • 計算機網路基礎知識

  • 網路通信協議

  • OSI參考模型

  • TCP/IP參考模型

  • 數據的封裝與拆封原理解析

  • TCP協議

  • UDP協議

  • IP地址和埠號

  • URL和Socket

  • 使用TCP編程實現登錄功能

  • 使用UDP編程實現客服系統

  • 使用TCP編程實現文件上傳

  • 集合提升尋訓練

  • 手寫ArrayList

  • 手寫單鏈表

  • 手寫Linkedlist

  • 手寫HashMap

  • 手寫HashSet

  • 最新並發集合類

  • 多線程提升訓練

  • 生產者消費者模式擴展

  • Lock鎖和Condition

  • ReadWriteLock

  • BlockingQueue

  • volatile關鍵字

  • 多線程題目練習

  • JDK新特徵

  • 面試題詳解

  • 設計模式

  • 設計模式入門

  • 面向對象設計七大原則

  • 簡單工廠模式

  • 工廠方法模式

  • 單例模式

  • 原型模式

  • 裝飾模式

  • 適配器模式

  • 外觀模式

第二階段:資料庫

    MySQL基礎

  • 資料庫基礎知識

  • MySQL基礎知識

  • MySQL8新特徵

  • 安裝和卸載MySQL8

  • 使用navicat訪問資料庫

  • SQL語言入門

  • 創建資料庫表

  • DML

  • 修改刪除資料庫表

  • 表的完整性約束

  • 表的外鍵約束

  • DML擴展

  • MySQL 查詢語句

  • 基本select查詢

  • where子句

  • 函數

  • group by

  • having

  • SQL99-內連接查詢

  • SQL99-外連接查詢

  • SQL99-自連接查詢

  • SQL92-連接查詢

  • 不相關子查詢

  • 相關子查詢

  • 分頁查詢

  • 資料庫對象

  • 索引

  • 事務及其特徵

  • 事務的並發問題

  • 事務的隔離級別

  • 存儲過程

  • 導入導出數據

  • JDBC

  • JDBC概述

  • 使用JDBC完成添加/更新/刪除操作

  • 使用JDBC完成查詢操作

  • JDBC常用介面

  • 使用PreparedStatement

  • 使用事務完成銀行轉賬

  • 提取DBUtil工具類

  • 使用Properties讀寫屬性文件

  • 日誌框架log4j

  • 開發員工管理系統

第三階段:JavaEE階段

      Servlet

    • web開發概述

    • B/S和C/S架構簡介

    • HTTP協議

    • HTTP請求頭和響應頭

    • Tomcat安裝使用

    • Tomcat目錄結構

    • Servlet概述

    • Servlet快速入門

    • Servlet生命周期

    • 讀取配置文件信息

    • HttpServletRequest

    • HttpServletResponse

    • GET和POST區別

    • 解決中文亂碼

    • 請求轉發與重定向

    • 絕對路徑和相對路徑

    • Cookie

    • Session

    • ServletContext

    • ServletConfig

    • JSP

    • JSP技術介紹

    • JSP的執行過程

    • scriptlet

    • 表達式

    • 聲明

    • JSP指令元素

    • JSP動作元素

    • JSP隱式對象

    • JSP底層原理

    • 九大內置對象

    • 四個作用域

    • Servlet和JSP的關系和區別

    • MVC模式

    • 合並Servlet

    • JavaScript

    • JavaScript概述與特點

    • JS基礎語法

    • 函數

    • 數組

    • Math對象

    • String對象

    • Date對象

    • 事件event

    • 瀏覽器開發者工具

    • console

    • DOM和BOM

    • window

    • location

    • navigator

    • history

    • 認識DOM

    • DOM獲取元素

    • jQuery

    • jQuery簡介及快速入門

    • jQuery入口函數

    • jQuery對象與DOM對象互相轉換

    • 基本選擇器

    • 屬性選擇器

    • 位置選擇器

    • 表單選擇器

    • 內容選擇器

    • jQuery事件

    • jQuery動畫效果

    • DOM操作-操作文本

    • DOM操作-操作屬性

    • DOM操作-操作元素

    • 直接操作CSS樣式

    • 操作CSS類樣式

    • 購物車案例

    • 表單驗證

    • 正則表達式

    • EL+JSTL+過濾器+監聽器

    • EL介紹及使用

    • EL取值原理

    • EL隱含對象

    • EL邏輯運算

    • JSTL介紹-核心標簽庫

    • JSTL核心標簽庫

    • JSTL-格式標簽庫

    • Filter原理

    • Filter生命周期

    • Filter鏈

    • Filter登錄驗證

    • Filter許可權控制

    • Listener概述及分類

    • Listener監聽在線用戶

    • Ajax和JSON

    • Ajax非同步請求和局部刷新的原理

    • 使用原生Ajax驗證用戶唯一性

    • jQuery Ajax

    • JSON的格式和使用

    • 主要JSON解析器

    • Jackson的使用

    • Jackson的實現原理

    • 使用jQuery Ajax實現三級聯動

    • 使用jQuery Ajax實現自動補全

    • 分頁和文件上傳/下載

    • 分頁的意義

    • 理解分頁工具類

    • 實現基本分頁

    • 實現帶查詢的分頁

    • 文件上傳原理

    • 文件上傳API

    • 實現文件上傳

    • 文件下載原理

    • 文件下載響應頭

    • 實現文件下載

    第四階段:框架階段

      MyBatis

    • MyBatis概述

    • MyBatis入門配置

    • 基本的CRUD操作

    • 核心配置文件詳解

    • Mapper.xml基礎詳解

    • 模糊查詢

    • 分頁的實現及插件PageHelper的使用

    • 動態sql+sql片段的使用

    • 一對多、多對一的關系處理

    • 註解的使用

    • 一級緩存和二級緩存說明及使用

    • generator逆向工程使用

    • Spring

    • Spring框架簡介

    • Spring官方壓縮包目錄介紹

    • Spring環境搭建

    • IoC/DI容器詳解

    • Spring創建Bean的三種方式

    • scope屬性講解

    • Spring中幾種注入方式

    • 靜態代理設計模式

    • 動態代理設計模式

    • AOP詳解

    • AOP中幾種通知類型

    • AOP兩種實現方式

    • 自動注入

    • 聲明式事務

    • 事務傳播行為

    • 事務隔離級別

    • 只讀事務

    • 事務回滾

    • 基於註解式配置

    • 常用註解

    • Spring 整合MyBatis

    • i18n

    • Spring整合Junit

    • SpringMVC

    • MVC架構模式

    • 手寫MVC框架

    • SpringMVC簡介

    • SpringMVC運行原理

    • 基於配置文件方式搭建環境

    • 基於註解方式搭建環境

    • SpringMVC的跳轉及視圖解析器的配置

    • SpringMVC和Ajax的交互

    • Spring 參數注入

    • SpringMVC作用域傳值

    • 視圖解析器

    • 文件下載

    • 文件上傳

    • Spring攔截器/攔截器棧

    • 登錄狀態驗證

    • SpringMVC容器和Spring容器介紹

    • 異常處理4種方式

    • SpringMVC5其他常用註解

    • Maven

    • Maven簡介

    • Maven原理

    • Linux安裝及注意事項

    • Maven項目結構

    • POM模型

    • Maven 中項目類型

    • 創建WAR類型的Maven項目

    • scope屬性可取值

    • SSM項目拆分演示

    • Maven的常見插件講解

    • 熱部署

    • BootStrap

    • BootStrap概述

    • BootStrap柵格系統

    • BootStrap常用全局CSS樣式

    • 常用組件

    • 常用JavaScript插件

    • RBAC

    • RBAC概述

    • RBAC發展歷史

    • 基於RBAC的資料庫表設計

    • URL攔截實現

    • 動態菜單實現

    • 密碼學

    第五階段:前後端分離階段

      Spring Boot

    • Spring Boot簡介

    • Spring Boot實現Spring MVC

    • 配置文件順序及類型講解

    • Spring Boot項目結構

    • Spring Boot 整合MyBatis

    • Spring Boot 整合Druid

    • Spring Boot 整合PageHelper

    • Spring Boot 整合logback

    • Spring Boot 整合JSP

    • Spring Boot 整合Thymeleaf

    • Spring Boot 開發者工具

    • Spring Boot 異常顯示頁面

    • Spring Boot 整合Junit4

    • Spring Boot 項目打包部署

    • Spring Boot 整合Quartz

    • Spring Boot 中Interceptor使用

    • Spring Boot Actuator

    • HikariCP

    • Logback

    • Logback簡介

    • Logback依賴說明

    • Logback 配置文件講解

    • Logback 控制台輸出

    • Logback 文件輸出

    • Logback 資料庫輸出

    • Spring Security

    • Spring Security簡介

    • Spring Security架構原理

    • 什麼是認證和授權

    • 基礎環境搭建

    • 自定義認證流程

    • UserDetailsService和UserDetails

    • PasswordEncoder

    • 自定義認證結果

    • 授權-訪問路徑匹配方式

    • 授權-許可權管理

    • 基於註解實現許可權管理

    • Thymeleaf整合Security許可權管理

    • Rememberme 實現

    • 退出實現

    • CSRF

    • Linux - CentOS 8

    • Linux簡介

    • VMWare安裝及使用

    • Linux安裝及注意事項

    • Linux目錄結構及路徑

    • Linux常用命令

    • VMWare常用配置

    • XShell安裝及使用

    • Xftp安裝及使用

    • JDK解壓版配置步驟

    • Tomcat配置步驟

    • 安裝MySQL

    • WAR包部署

    • Docker

    • Docker簡介

    • Docker與VM對比

    • Docker特點

    • Docker架構

    • Docker安裝與啟動

    • 鏡像加速器配置

    • Docker鏡像操作常用命令

    • Docker容器操作常用命令

    • DockerFile

    • 搭建本地鏡像倉庫

    • 推送鏡像到阿里雲及本地倉庫

    • Docker容器生命周期

    • Docker數據管理

    • Redis

    • Redis簡介

    • Redis 單機版安裝

    • Redis 數據類型介紹

    • Redis 常用命令

    • Redis 持久化方案

    • Redis 的主從搭建

    • Redis的哨兵搭建

    • Redis 的集群搭建

    • Spring Boot整合Spring Data Redis

    • Redis的緩存穿透

    • Redis的緩存雪崩

    • Redis的緩存擊穿

    • Vue

    • vsCode和插件安裝

    • webpack介紹

    • Vue項目創建

    • Vue模板語法

    • Vue條件渲染

    • Vue列表渲染

    • Vue事件處理

    • Vue計算屬性

    • Vue Class與Style

    • Vue表單處理

    • Vue組件

    • Vue組件生命周期

    • Vue 路由配置

    • Vue Axios網路請求

    • Vue跨域處理

    • Vue Element

    • Mock.js

    • Swagger

    • Swagger2簡介

    • Springfox

    • Swagger2基本用法

    • Swagger-UI用法

    • Swagger2配置

    • Swagger2常用配置

    • Git/GitEE

    • Git的下載和安裝

    • Git和SVN對比

    • Git創建版本庫

    • Git版本控制

    • Git遠程倉庫

    • Git分支管理

    • Git標簽管理

    • GitEE建庫

    • GitEE 連接及使用

    • GitEE 組員及管理員配置

    第六階段:微服務架構

      FastDFS

    • 分布式文件系統概述

    • FastDFS簡介

    • FastDFS架構

    • Tracker Server

    • Storage Server

    • FastDFS安裝

    • 安裝帶有FastDFS模塊的Nginx

    • Fastdfs-java-client的使用

    • 創建Fastdfs-java-client工具類

    • 實現文件上傳與下載

    • KindEditor介紹

    • 通過KindEditor實現文件上傳並回顯

    • RabbitMQ

    • AMQP簡介

    • RabbitMQ簡介

    • 安裝Erlang

    • 安裝RabbitMQ

    • RabbitMQ原理

    • Spring Boot 集成RabbitMQ

    • RabbitMQ的交換器

    • Spring AMQP的使用

    • Spring Cloud Netflix Eureka

    • Eureka簡介

    • Eureka和Zookeeper 對比

    • 搭建Eureka注冊中心

    • Eureka 服務管理平台介紹

    • 搭建高可用集群

    • 集群原理

    • Eureka優雅停服

    • Spring Cloud Netflix Ribbon

    • Ribbon簡介

    • 集中式與進程內負載均衡區別

    • Ribbon常見的負載均衡策略

    • Ribbon的點對點直連

    • Spring Cloud OpenFeign

    • Feign簡介

    • Feign的請求參數處理

    • Feign的性能優化

    • 配置Feign負載均衡請求超時時間

    • Spring Cloud Netflix Hystrix

    • Hystrix簡介

    • 服務降級

    • 服務熔斷

    • 請求緩存

    • Feign的雪崩處理

    • 可視化的數據監控Hystrix-dashboard

    • Spring Cloud Gateway

    • Spring Cloud Gateway簡介

    • Gateway基於配置文件實現路由功能

    • Gateway基於配置類實現路由功能

    • Gateway中內置過濾器的使用

    • Gateway中自定義GatewayFilter過濾器的使用

    • Gateway中自定義GlobalFilter過濾器的使用

    • Gateway中使用過濾器實現鑒權

    • Gateway結合Hystrix實現熔斷功能

    • Spring Cloud Config

    • 什麼是分布式配置中心

    • 創建配置中心服務端

    • 創建配置中心客戶端

    • 基於Gitee存儲配置文件

    • 基於分布式配置中心實現熱刷新

    • Spring Cloud Bus

    • 什麼是消息匯流排

    • 基於消息匯流排實現全局熱刷新

    • ELK

    • ElasticSearch介紹

    • ElasticSearch單機版安裝

    • ElasticSearch集群版安裝

    • ElasticSearch索引管理

    • ElasticSearch文檔管理

    • ElasticSearch文檔搜索

    • SpringDataElasticSearch訪問ElasticSearch

    • LogStash介紹

    • 基於LogStash收集系統日誌

    • TX-LCN

    • 分布式事務簡介

    • 分布式事務兩大理論依據

    • 分布式事務常見解決方案

    • LCN簡介

    • TX-LCN的3種模式

    • LCN原理

    • LCN環境搭建及Demo演示

    • Nginx

    • Nginx的簡介

    • 什麼是正向代理、反向代理

    • Nginx的安裝

    • Nginx配置虛擬主機

    • Nginx配置服務的反向代理

    • Nginx的負載均衡配置

    • Spring Session

    • Spring Session介紹

    • 通過Spring Session共享session中的數據

    • 通過Spring Session同步自定義對象

    • Spring Session的Redis存儲結構

    • 設置Session失效時間

    • Spring Session序列化器

    • MyBatis Plus

    • MyBatis Plus簡介

    • Spring整合MyBatis Plus

    • MyBatis Plus的全局策略配置

    • MyBatis 的主鍵生成策略

    • MyBatis Plus的CRUD操作

    • 條件構造器EntityWrapper講解

    • MyBatis Plus的分頁插件配置

    • MyBatis Plus的分頁查詢

    • MyBatis Plus的其他插件講解

    • MyBatis Plus的代碼生成器講解

    • MyBatis Plus的公共欄位自動填充

    • ShardingSphere

    • 簡介

    • 資料庫切分方式

    • 基本概念

    • MySQL主從配置

    • 切片規則

    • 讀寫分離

    • 實現分庫分表

    第七階段:雲服務階段

      Kafka

    • Kafka簡介

    • Kafka架構

    • 分區和日誌

    • Kafka單機安裝

    • Kafka集群配置

    • 自定義分區

    • 自動控制

    • Spring for Apache Kafka

    • Zookeeper

    • Zookeeper簡介和安裝

    • Zookeeper 數據模型

    • Zookeeper 單機版安裝

    • Zookeeper常見命令

    • ZClient操作Zookeeper

    • Zookeeper 集群版安裝

    • Zookeeper 客戶端常用命令

    • Zookeeper分布式鎖

    • RPC

    • 什麼是分布式架構

    • 什麼是RFC、RPC

    • HttpClient實現RPC

    • RestTemplate

    • RMI實現RPC

    • 基於Zookeeper實現RPC 遠程過程調用

    • Dubbo

    • SOA架構介紹

    • Dubbo簡介

    • Dubbo結構圖

    • Dubbo注冊中心

    • Dubbo 支持的協議

    • Dubbo 注冊中心搭建

    • Spring Boot 整合 Dubbo

    • Admin管理界面

    • Dubbo 搭建高可用集群

    • Dubbo 負載均衡

    • Spring Cloud Alibaba Dubbo

    • Spring Cloud Alibaba Dubbo簡介

    • 基於Zookeeper發布服務

    • 基於Zookeeper訂閱服務

    • 實現遠程服務調用處理

    • Spring Cloud Alibaba Nacos

    • Spring Cloud Alibaba Nacos簡介

    • 搭建Nacos伺服器

    • 基於Nacos發布|訂閱服務

    • 實現遠程服務調用處理

    • Nacos Config配置中心

    • Spring Cloud Alibaba Sentinel

    • Spring Cloud Alibaba Sentinel簡介

    • 搭建Sentinel伺服器

    • Sentinel-實時監控

    • Sentinel-簇點鏈路

    • Sentinel-授權規則

    • Sentinel-系統規則

    • @SentinelResource註解

    • 持久化規則

    • Spring Cloud Alibaba Seata

    • Spring Cloud Alibaba Seata簡介

    • 搭建Seata伺服器

    • Seata支持的事務模式-AT模式

    • Seata支持的事務模式-TCC模式

    • Seata支持的事務模式-Saga模式

    • Seata支持的事務模式-XA模式

    • SeataAT事務模式應用方式

    • SeataTCC事務模式應用方式

    3. java怎麼學

    第一階段

    • · Java入門語法· 線程機制

    • · 流程式控制制結構· IO流

    • · 面向對象核心· 網路編程

    • · 異常體系· 設計模式

    • · 集合與泛型· JDK8/9/10新特性

    • · 反射體系· 綜合項目:客戶管理系統

    • /考試管理系統/銀行管理系統

    第二階段

    • · DB、DBMS、SQL的理解· 常見函數

    • · 常見資料庫關系系統的· 存儲過程和視圖

    • 對比和認識· 事務以及事務的隔離級別

    • · DML、DQL、DCL、DDL· 觸發器

    • · 數據的增刪改查· 索引和優化

    • · DQL數據查詢語言· 貫穿案例:Employees員工

    • · 分組查詢、子查詢、 管理系統

    • join查詢、union查詢等

    第三階段

    • · HTML與CSS· XML與Tomcat

    • · HTTP協議與Servlet· Thymeleaf

    • · 會話控制· JavaScript

    • · Vue.js· Ajax

    • · 貫穿項目:尚矽谷書城· Filter

    • · Listener:ServletContextListener

    第四階段

    • Spring· Linux

    • · SpringMVC· Redis

    • · MyBatis· SSM整合案例

    • · SSM整合

    第五階段

    • · GC演算法· Git與GitHub

    • · Mysql高級· Mycat

    • · Nginx· Docker

    • · ElasticSearch· RabbitMQ

    • · SpringBoot· SpringCloud

    • · 分布式事務· JVM

    • · JUC· Zookeeper

    • · Dubbo· 密碼學

    第六階段

    • · 在線預約掛號平台:尚醫通

    • · Spring全家桶項目:尚籌網

    • · 大型金融項目:尚融寶

    • · 分布式項目:美年旅遊

    • · 前後端分離項目:尚課吧

    • · 微服務架構項目:尚品匯

    第七階段

    • · 基礎系列面試題· 並發編程專題

    • · 開源框架源碼解析專題· 微服務架構專題

    • · 高性能架構專題· 大廠面試題真實題目詳解

    • · 性能優化專題

    4. javaweb並發的問題,一個電商項目,同一時間很多人一起使用增刪改查等

    你好。
    涉及到高並發的問題,需要根據實際業務情景來分析。
    具體到問題中描述的:一個電商項目,同一時間很多人一起使用增刪改查等功能

    應該需要考慮資料庫事務和資料庫的隔離級別了,根據需求保證合適的資料庫隔離級別,多個表操作的業務中使用資料庫事務控制提交和回滾。

    有興趣可以深入了解下 「資料庫事務四種隔離級別」

    5. 我用java寫了一個網站,有對資料庫的讀與寫,怎麼實現這個網站的讀寫互斥與寫寫互斥

    資料庫讀寫的程度,這是事務控制資料庫隔離裡面的內容。
    建議你使用spring聲明式事務,並使用符合你的要求的事務隔離級別即可。
    spring目前的提供支持的資料庫事務隔離級別有:

    資料庫提供了四種事務隔離級別, 不同的隔離級別採用不同的鎖類開來實現.
    在四種隔離級別中, Serializable的級別最高, Read Uncommited級別最低.
    大多數資料庫的默認隔離級別為: Read Commited,如Sql Server , Oracle.
    少數資料庫默認的隔離級別為Repeatable Read, 如MySQL InnoDB存儲引擎
    即使是最低的級別,也不會出現 第一類 丟失 更新問題 .
    Read Uncommited :讀未提交數據( 會出現臟讀,不可重復讀,幻讀 ,避免了 第一類丟失 更新 )
    Read Commited :讀已提交的數據(會出現不可重復讀,幻讀)
    Repeatable Read :可重復讀(會出現幻讀)
    Serializable :串列化

    6. java ee項目中 spring託管的事務應該怎麼設置隔離級別

    可以在XML文件中進行配置,下面的代碼是個示意代碼

    <tx:adviceid="txAdvice"transaction-manager="txManager">
    <tx:attributes>
    <tx:methodname="add*"propagation="REQUIRED"isolation="READ_COMMITTED"/>增加記錄的方法
    <tx:methodname="get*"propagation="REQUIRED"isolation="READ_COMMITTED"/>獲取記錄的方法
    <tx:methodname="delete*"propagation="REQUIRED"isolation="READ_COMMITTED"/>刪除的方法
    <tx:methodname="update*"propagation="REQUIRED"isolation="SERIALIZABLE"/>更改記錄的方法
    </tx:attributes>
    </tx:advice>


    下面擴展將一下spring裡面事務的傳播屬性和事務隔離級別。

    一、Propagation (事務的傳播屬性)

    Propagationkey屬性確定代理應該給哪個方法增加事務行為。這樣的屬性最重要的部份是傳播行為。有以下選項可供使用:PROPAGATION_REQUIRED--支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。
    PROPAGATION_SUPPORTS--支持當前事務,如果當前沒有事務,就以非事務方式執行。
    PROPAGATION_MANDATORY--支持當前事務,如果當前沒有事務,就拋出異常。
    PROPAGATION_REQUIRES_NEW--新建事務,如果當前存在事務,把當前事務掛起。
    PROPAGATION_NOT_SUPPORTED--以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。
    PROPAGATION_NEVER--以非事務方式執行,如果當前存在事務,則拋出異常。

    1: PROPAGATION_REQUIRED
    加入當前正要執行的事務不在另外一個事務里,那麼就起一個新的事務
    比如說,ServiceB.methodB的事務級別定義為PROPAGATION_REQUIRED, 那麼由於執行ServiceA.methodA的時候,
    ServiceA.methodA已經起了事務,這時調用ServiceB.methodB,ServiceB.methodB看到自己已經運行在ServiceA.methodA
    的事務內部,就不再起新的事務。而假如ServiceA.methodA運行的時候發現自己沒有在事務中,他就會為自己分配一個事務。
    這樣,在ServiceA.methodA或者在ServiceB.methodB內的任何地方出現異常,事務都會被回滾。即使ServiceB.methodB的事務已經被
    提交,但是ServiceA.methodA在接下來fail要回滾,ServiceB.methodB也要回滾

    2: PROPAGATION_SUPPORTS
    如果當前在事務中,即以事務的形式運行,如果當前不再一個事務中,那麼就以非事務的形式運行

    3: PROPAGATION_MANDATORY
    必須在一個事務中運行。也就是說,他只能被一個父事務調用。否則,他就要拋出異常

    4: PROPAGATION_REQUIRES_NEW
    這個就比較繞口了。 比如我們設計ServiceA.methodA的事務級別為PROPAGATION_REQUIRED,ServiceB.methodB的事務級別為PROPAGATION_REQUIRES_NEW,
    那麼當執行到ServiceB.methodB的時候,ServiceA.methodA所在的事務就會掛起,ServiceB.methodB會起一個新的事務,等待ServiceB.methodB的事務完成以後,
    他才繼續執行。他與PROPAGATION_REQUIRED 的事務區別在於事務的回滾程度了。因為ServiceB.methodB是新起一個事務,那麼就是存在
    兩個不同的事務。如果ServiceB.methodB已經提交,那麼ServiceA.methodA失敗回滾,ServiceB.methodB是不會回滾的。如果ServiceB.methodB失敗回滾,
    如果他拋出的異常被ServiceA.methodA捕獲,ServiceA.methodA事務仍然可能提交。

    5: PROPAGATION_NOT_SUPPORTED
    當前不支持事務。比如ServiceA.methodA的事務級別是PROPAGATION_REQUIRED ,而ServiceB.methodB的事務級別是PROPAGATION_NOT_SUPPORTED ,
    那麼當執行到ServiceB.methodB時,ServiceA.methodA的事務掛起,而他以非事務的狀態運行完,再繼續ServiceA.methodA的事務。

    6: PROPAGATION_NEVER
    不能在事務中運行。假設ServiceA.methodA的事務級別是PROPAGATION_REQUIRED, 而ServiceB.methodB的事務級別是PROPAGATION_NEVER ,
    那麼ServiceB.methodB就要拋出異常了。

    7: PROPAGATION_NESTED
    理解Nested的關鍵是savepoint。他與PROPAGATION_REQUIRES_NEW的區別是,PROPAGATION_REQUIRES_NEW另起一個事務,將會與他的父事務相互獨立,
    而Nested的事務和他的父事務是相依的,他的提交是要等和他的父事務一塊提交的。也就是說,如果父事務最後回滾,他也要回滾的。
    而Nested事務的好處是他有一個savepoint。
    *****************************************
    ServiceA {

    /**
    * 事務屬性配置為 PROPAGATION_REQUIRED
    */
    void methodA() {
    try {
    //savepoint
    ServiceB.methodB(); //PROPAGATION_NESTED 級別
    } catch (SomeException) {
    // 執行其他業務, 如 ServiceC.methodC();
    }
    }

    }
    ********************************************
    也就是說ServiceB.methodB失敗回滾,那麼ServiceA.methodA也會回滾到savepoint點上,ServiceA.methodA可以選擇另外一個分支,比如
    ServiceC.methodC,繼續執行,來嘗試完成自己的事務。
    但是這個事務並沒有在EJB標准中定義。




    二、Spring事務的隔離級別
    1. ISOLATION_DEFAULT: 這是一個PlatfromTransactionManager默認的隔離級別,使用資料庫默認的事務隔離級別。另外四個與JDBC的隔離級別相對應
    2. ISOLATION_READ_UNCOMMITTED: 這是事務最低的隔離級別,它充許令外一個事務可以看到這個事務未提交的數據。這種隔離級別會產生臟讀,不可重復讀和幻像讀。
    3. ISOLATION_READ_COMMITTED: 保證一個事務修改的數據提交後才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據
    4. ISOLATION_REPEATABLE_READ: 這種事務隔離級別可以防止臟讀,不可重復讀。但是可能出現幻像讀。它除了保證一個事務不能讀取另一個事務未提交的數據外,還保證了避免下面的情況產生(不可重復讀)。
    5. ISOLATION_SERIALIZABLE 這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止臟讀,不可重復讀外,還避免了幻像讀。



    什麼是臟數據,臟讀,不可重復讀,幻覺讀?


    臟讀: 指當一個事務正在訪問數據,並且對數據進行了修改,而這種修改還沒有提交到資料庫中,這時,另外一個事務也訪問這個數據,然後使用了這個數據。因為這個數據是還沒有提交的數據, 那麼另外一個事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。


    不可重復讀: 指在一個事務內,多次讀同一數據。在這個事務還沒有結束時,另外一個事務也訪問該同一數據。那麼,在第一個事務中的兩次讀數據之間,由於第二個事務的修改,那麼第一個事務兩次讀到的數據可能是不一樣的。這樣就發生了在一個事務內兩次讀到的數據是不一樣的,因此稱為是不可重復讀。

    幻覺讀: 指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據進行了修改,這種修改涉及到表中的全部數據行。同時,第二個事務也修改這個表中的數據,這種修改是向表中插入一行新數據。那麼,以後就會發生操作第一個事務的用戶發現表中還有沒有修改的數據行,就好象發生了幻覺一樣。

    7. 怎麼查看資料庫隔離級別

    修改方法

    有兩種方法可以對配置了 systemd 的程序進行資源隔離:1. 命令行修改:通過執行systemctl set-property命令實現,形式為systemctl set-propertyname parameter=value;修改默認即時生效。2. 手工修改文件:直接編輯程序的 systemd unit file 文件,完成之後需手工執行systemctldaemon-reload更新配置,並重啟服務systemctl restart name.service。

    systemd unit file 里支持的資源隔離配置項,如常見的:

    • CPUQuota=value

      該參數表示服務可以獲取的最大 CPU 時間,value 為百分數形式,高於 100% 表示可使用1 核以上的CPU。與 cgroup cpu 控制器cpu.cfs_quota_us配置項對應。

    • MemoryLimit=value

      該參數表示服務可以使用的最大內存量,value 可以使用 K, M, G, T 等後綴表示值的大小。與 cgroupmemory 控制器memory.limit_in_bytes配置項對應。

    • 事務的4種隔離級別

      READ UNCOMMITTED 未提交讀,可以讀取未提交的數據。

      READ COMMITTED 已提交讀,對於鎖定讀(select with for update 或者 for share)、update 和 delete 語句,InnoDB 僅鎖定索引記錄,而不鎖定它們之間的間隙,因此允許在鎖定的記錄旁邊自由插入新記錄。

      Gap locking 僅用於外鍵約束檢查和重復鍵檢查。

      REPEATABLE READ 可重復讀,事務中的一致性讀取讀取的是事務第一次讀取所建立的快照。

      SERIALIZABLE 序列化在了解了 4 種隔離級別的需求後,在採用鎖控制隔離級別的基礎上,我們需要了解加鎖的對象(數據本身&間隙),以及了解整個數據范圍的全集組成。

      數據范圍全集組成

      SQL 語句根據條件判斷不需要掃描的數據范圍(不加鎖);

      SQL 語句根據條件掃描到的可能需要加鎖的數據范圍;

      以單個數據范圍為例,數據范圍全集包含:(數據范圍不一定是連續的值,也可能是間隔的值組成)

    8. 解釋什麼是隔離級別,以db2為例,資料庫提供了哪幾種隔離級別每種隔離級別都避

    1.查看當前會話隔離級別

    select @@tx_isolation;

    2.查看系統當前隔離級別

    select @@global.tx_isolation;

    3.設置當前會話隔離級別

    set session transaction isolatin level repeatable read;

    4.設置系統當前隔離級別

    set global transaction isolation level repeatable read;

    5.命令行,開始事務時

    set autocommit=off 或者 start transaction

    關於隔離級別的理解

    1.read uncommitted

    可以看到未提交的數據(臟讀),舉個例子:別人說的話你都相信了,但是可能他只是說說,並不實際做。

    2.read committed

    讀取提交的數據。但是,可能多次讀取的數據結果不一致(不可重復讀,幻讀)。用讀寫的觀點就是:讀取的行數據,可以寫。

    3.repeatable read(MySQL默認隔離級別)

    可以重復讀取,但有幻讀。讀寫觀點:讀取的數據行不可寫,但是可以往表中新增數據。在MySQL中,其他事務新增的數據,看不到,不會產生幻讀。採用多版本並發控制(MVCC)機制解決幻讀問題。

    4.serializable

    可讀,不可寫。像java中的鎖,寫數據必須等待另一個事務結束。

    熱點內容
    mud源碼下載 發布:2025-01-23 21:19:46 瀏覽:134
    反恐精英15游戲伺服器ip 發布:2025-01-23 21:13:38 瀏覽:850
    起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:141
    企業級安卓手機防毒軟體哪個好 發布:2025-01-23 20:59:28 瀏覽:243
    資料庫精美 發布:2025-01-23 20:37:05 瀏覽:235
    mysql怎麼編譯驅動 發布:2025-01-23 20:35:15 瀏覽:467
    修改資料庫的語句是 發布:2025-01-23 20:26:17 瀏覽:762
    linuxping域名 發布:2025-01-23 20:24:34 瀏覽:479
    神經網路演算法應用 發布:2025-01-23 20:18:36 瀏覽:219
    冒險島按鍵精靈腳本下載 發布:2025-01-23 19:46:50 瀏覽:751