欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文帶你掌握J(rèn)PA實(shí)體類注解

 更新時(shí)間:2023年01月04日 15:24:42   作者:指北君  
這篇文章主要給大家詳細(xì)介紹一下?JPA?實(shí)體類中的注解,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,感興趣的小伙伴可以了解一下

基本注解

@Entity

標(biāo)注于實(shí)體類聲明語句之前,指出該 Java 類為實(shí)體類,將映射到指定的數(shù)據(jù)庫表。

name(可選):實(shí)體名稱。 缺省為實(shí)體類的非限定名稱。該名稱用于引用查詢中的實(shí)體。

不與 @Table 結(jié)合時(shí),表名默認(rèn)為類名的 SnakeCase(蛇形命名法),若使用name屬性,則表名為 name 值。

//以下三個(gè)類皆映射表名?student_info?
@Entity??
public?class?StudentInfo{...}

@Entity(name="student_info")??
public?class?StudentInfo{...}

@Entity
@Table(name?=?'student_info')
public?class?StudentInfo{...}

@Table

當(dāng)實(shí)體類與其映射的數(shù)據(jù)庫表名不同名時(shí)需要使用@Table標(biāo)注說明,該標(biāo)注與@Entity標(biāo)注并列使用,置于實(shí)體類聲明語句之前。

  • name:用于指明數(shù)據(jù)庫的表名。
  • catalog、schema:用于設(shè)置表所屬的數(shù)據(jù)庫目錄或模式,通常為數(shù)據(jù)庫名。Mysql不支持catalog,schema是數(shù)據(jù)庫名。一般不需要設(shè)置。
  • uniqueConstraints:用來批量命名唯一鍵,其作用等同于多個(gè):@Column(unique = true),一般不需要設(shè)置。
@Entity
@Table(name?=?"student_info",?uniqueConstraints?=?{@UniqueConstraint(columnNames?=?"class_id")})
public?class?StudentInfo?{
????@Column(name?=?"class_id")
????private?String?classId;
}

@Basic(未加注解的默認(rèn)注解)

表示一個(gè)簡單的屬性到數(shù)據(jù)庫表的字段的映射,對(duì)于沒有任何注解的屬性,默認(rèn)即為 @Basic 。

  • fetch: 表示該屬性的讀取策略,其中 EAGER (默認(rèn))表示立即加載,LAZY 表示延遲加載。
  • optional:表示該屬性是否允許為 null ,默認(rèn)為 true 。

@Transient

  • 表示該屬性并非一個(gè)到數(shù)據(jù)庫表的字段的映射,ORM 框架將忽略該屬性。
  • 如果一個(gè)屬性并非數(shù)據(jù)庫表的字段映射,就務(wù)必將其標(biāo)示為@Transient,否則,ORM框架默認(rèn)其注解為@Basic 。

@Column

當(dāng)實(shí)體的屬性與其映射的數(shù)據(jù)庫表的列不同名時(shí)需要使用@Column 標(biāo)注說明,該注解通常置于實(shí)體的屬性前或?qū)傩缘膅etter方法之前,還可與 @Id 標(biāo)注一起使用。

  • name:用于設(shè)置映射數(shù)據(jù)庫表的列名。
  • unique:是否是唯一標(biāo)識(shí),默認(rèn)為 false(不唯一)
  • nullable:否允許為 null,默認(rèn)為true(null)
  • insertable:表示在 ORM 框架執(zhí)行插入操作時(shí),該字段是否應(yīng)出現(xiàn) INSERT 語句中,默認(rèn)為true
  • updatable:表示在 ORM 框架執(zhí)行更新操作時(shí),該字段是否應(yīng)該出現(xiàn)在 UPDATE 語句中,默認(rèn)為 true。對(duì)于一經(jīng)創(chuàng)建就不可以更改的字段,該屬性非常有用,如對(duì)于birthday字段。或者創(chuàng)建時(shí)間/注冊(cè)時(shí)間(可以將其設(shè)置為 false 不可修改)。
  • length:數(shù)據(jù)長度,僅對(duì)String類型的字段有效,默認(rèn)值255
  • precision、scale:表示精度,當(dāng)字段類型為double時(shí),precision表示數(shù)值的總長度,scale表示小數(shù)點(diǎn)所占的位數(shù),默認(rèn)值均為0。
  • columnDefinition:表示該字段在數(shù)據(jù)庫中的實(shí)際類型。通常ORM框架可以根據(jù)屬性類型自動(dòng)判斷數(shù)據(jù)庫中字段的類型,但是如果要將 String 類型映射到特定數(shù)據(jù)庫的 BLOB 或 TEXT 字段類型,該屬性非常有用。

@Id

用于聲明一個(gè)實(shí)體類的屬性映射為數(shù)據(jù)庫的主鍵列。

@GeneratedValue

JPA通用策略生成器,通過 strategy 屬性指定。

定義了以下幾種可供選擇的策略:

  • AUTO:JPA 自動(dòng)選擇合適的策略,是默認(rèn)選項(xiàng);
  • IDENTITY:采用數(shù)據(jù)庫 ID自增長的方式來自增主鍵字段,Oracle 不支持這種方式;
  • SEQUENCE:通過序列產(chǎn)生主鍵,通過 @SequenceGenerator 注解指定序列名,MySql 不支持這種方式
  • TABLE:通過表產(chǎn)生主鍵,框架借由表模擬序列產(chǎn)生主鍵,使用該策略可以使應(yīng)用更易于數(shù)據(jù)庫移植。該策略一般與另外一個(gè)注解一起使用@TableGenerator。

默認(rèn)情況下,JPA 自動(dòng)選擇一個(gè)最適合底層數(shù)據(jù)庫的主鍵生成策略:SqlServer 對(duì)應(yīng) IDENTITY,MySQL 對(duì)應(yīng) AUTO。

generator:使用指定的主鍵生成器時(shí),這里設(shè)置為生成器名稱。

@GenericGenerator

自定義主鍵生成策略

  • name:生成器名稱
  • strategy:預(yù)定義的 Hibernate 策略或完全限定的類名。
@Data
@Entity
@Table(name?=?"student_info")
public?class?StudentInfo?{
????@Id
????@Column(name?=?"id")
????@GenericGenerator(name="idGenerator",?strategy="uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;

????@Transient
????private?String?age;

????@Column(name?=?"name")
????private?String?name;
}

其他注解

@Enumerated

直接映射枚舉類型的字段。

value:

  • ORDINAL:映射到數(shù)據(jù)庫字段為數(shù)字(默認(rèn))
  • String:映射到數(shù)據(jù)庫字段為字符串
@Entity
@Data
@Table(name?=?"StudentInfo")
public?class?Student?{
????@Column
????@Enumerated
????private?Sex?sex;
}

@Temporal

對(duì)于日期時(shí)間屬性映射時(shí),可使用 @Temporal 注解來調(diào)整精度。

  • DATE:日期
  • TIME:時(shí)間
  • TIMESTAMP:日期時(shí)間
@Data
@Entity
@Table(name?=?"student_info")
public?class?Student?{
????@Column
????@Temporal(TemporalType.DATE)
????private?Date?birthday;
}

@DynamicInsert、@DynamicUpdate

  • @DynamicInsert:設(shè)置為true,表示insert對(duì)象的時(shí)候,生成動(dòng)態(tài)的insert語句,如果這個(gè)字段的值是null就不會(huì)加入到insert語句中。
  • @DynamicUpdate:設(shè)置為true,表示update對(duì)象的時(shí)候,生成動(dòng)態(tài)的update語句,如果這個(gè)字段的值是null就不會(huì)被加入到update語句中。
@Data
@Entity
@Table(name?=?"user_info")
@DynamicInsert
@DynamicUpdate
public?class?User?{
????@Id
????@Column(name?=?"id")
????@GenericGenerator(name="idGenerator",?strategy="uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;

????@Column(name?=?"name")
????private?String?name;

????@Basic
????private?Integer?age;

????@Column(name?=?"create_time")
????private?Long?createTime;

????@Column(name?=?"remark")
????private?String?remark;
}

@Access

指定實(shí)體的訪問模式(Access mode),包括AccessType.FIELD及AccessType.PROPERTY。

  • AccessType.FIELD: 字段訪問(@Column注解在屬性上),通過字段來獲取或設(shè)置實(shí)體的狀態(tài),getter和setter方法可能存在或不存在。這樣JPA默認(rèn)的訪問類型為AccessType.FIELD。
  • AccessType.PROPERTY: 屬性訪問(@Column注解在get方法上),持久化屬性必須有g(shù)etter和setter方法,屬性的類型由getter方法的返回類型決定,同時(shí)必須與傳遞到setter方法的單個(gè)參數(shù)的類型相同。這樣JPA默認(rèn)的訪問類型為AccessType.PROPERTY。

復(fù)合主鍵

@EmbeddedId + @Embeddable

當(dāng)需要多個(gè)屬性作為復(fù)合主鍵時(shí),可以把該屬性做為一個(gè)內(nèi)部類嵌套在實(shí)體類中,使用@EmbeddedId + @Embeddable實(shí)現(xiàn):

@EmbeddedId:復(fù)合主鍵

@Embeddable:注釋Java類的,表示類是嵌入類:

  • 必須要實(shí)現(xiàn)Serializable接口
  • 需要有無參的構(gòu)造函數(shù)
//?復(fù)合主鍵類
@Data
@Embeddable
public?static?class?StudentId?implements?Serializable?{

????@Column(name?=?"id")
????private?Integer?id;

????@Column(name?=?"class_id")
????private?Integer?classId;
}

//實(shí)體類
@Data
@Entity
@Table(name?=?"student_info")
public?class?StudentInfo?{

????

????@EmbeddedId
????private?StudentId?studentId;

????@Column(name?=?"name")
????private?String?name;

}

@IdClass

注解復(fù)合主鍵的類,復(fù)合主鍵類必須滿足:

  • 實(shí)現(xiàn)Serializable接口;
  • 有默認(rèn)的public無參數(shù)的構(gòu)造方法;
  • 重寫equals和hashCode方法。
//?復(fù)合主鍵類
@Data
@Embeddable
public?static?class?StudentId?implements?Serializable?{

????@Column(name?=?"id")
????private?Integer?id;

????@Column(name?=?"class_id")
????private?Integer?classId;
}

//實(shí)體類
@Data
@Entity
@IdClass(StudentId.class)
@Table(name?=?"student_info")
public?class?StudentInfo?{

????@EmbeddedId
????private?StudentId?studentId;

????@Column(name?=?"name")
????private?String?name;

}

@Embedded + @AttributeOverride

  • @Embedded:注釋屬性的,表示該屬性的類是嵌入類。
  • @AttributeOverrides:里面只包含了@AttributeOverride類型數(shù)組。
  • @AttributeOverride:包含要覆蓋的@Embeddable類中字段名name和新增的@Column字段的屬性。
//?復(fù)合主鍵類
@Data
@Embeddable
public?static?class?StudentId?implements?Serializable?{
????private?Integer?id;
????private?Integer?classId;
}

@Data
@Entity
@Table(name?=?"student_info")
public?class?StudentInfo?{

????@Embedded
????@AttributeOverrides(?{
????????????@AttributeOverride(name?=?"id",?column?=?@Column(name?=?"id")),
????????????@AttributeOverride(name?=?"classId",?column?=?@Column(name?=?"class_id"))?
????????????})
????private?StudentId?id;

????@Column(name?=?"name")
????private?String?name;

}

實(shí)體間關(guān)聯(lián)關(guān)系

@OneToOne

實(shí)體間一對(duì)一的關(guān)系。

fetch:立即加載和延遲加載

cascade:當(dāng)前類對(duì)象操作了之后,級(jí)聯(lián)對(duì)象的操作。

  • REMOVE:級(jí)聯(lián)刪除操作。刪除當(dāng)前實(shí)體時(shí),與它有映射關(guān)系的實(shí)體也會(huì)跟著被刪除。
  • MERGE:級(jí)聯(lián)更新(合并)操作。當(dāng)前對(duì)象中的數(shù)據(jù)改變,會(huì)相應(yīng)地更新級(jí)聯(lián)對(duì)象中的數(shù)據(jù)。
  • DETACH:級(jí)聯(lián)脫管/游離操作。如果要?jiǎng)h除一個(gè)實(shí)體,但是它有外鍵無法刪除,你就需要這個(gè)級(jí)聯(lián)權(quán)限了。它會(huì)撤銷所有相關(guān)的外鍵關(guān)聯(lián)。
  • REFRESH:級(jí)聯(lián)刷新操作。更新數(shù)據(jù)前先刷新對(duì)象和級(jí)聯(lián)對(duì)象,再更新。
  • PERSIST:級(jí)聯(lián)持久化(保存)操作。持久保存擁有方實(shí)體時(shí),也會(huì)持久保存該實(shí)體的所有相關(guān)數(shù)據(jù)。
  • ALL,當(dāng)前類增刪改查改變之后,關(guān)聯(lián)類跟著增刪改查,擁有以上所有級(jí)聯(lián)操作權(quán)

mappedBy:擁有關(guān)聯(lián)關(guān)系的域,如果關(guān)系是單向的就不需要,雙向關(guān)系表,那么擁有關(guān)系的這一方有建立、解除和更新與另一方關(guān)系的能力,而另一方?jīng)]有,只能被動(dòng)管理,這 個(gè)屬性被定義在關(guān)系的被擁有方。

orphanRemoval:如果設(shè)置為true,當(dāng)關(guān)系被斷開時(shí),多方實(shí)體將被刪除。否則會(huì)將對(duì)象的引用置為null。

targetEntity:表示該屬性關(guān)聯(lián)的實(shí)體類型。該屬性通常不必指定,ORM 框架根據(jù)屬性類型自動(dòng)判斷。

一對(duì)一關(guān)系的例子

people 表(id,name,sex,birthday,address_id) address 表(id,phone,zipcode,address)

People和Address是一對(duì)一的關(guān)系。

方式一:通過外鍵的方式(一個(gè)實(shí)體通過外鍵關(guān)聯(lián)到另一個(gè)實(shí)體的主鍵)

@JoinColum:保存表與表之間關(guān)系的字段,它要標(biāo)注在實(shí)體屬性上。一般修飾在主控方,用來定義一對(duì)一,一對(duì)多等關(guān)系列。

關(guān)聯(lián)的實(shí)體的主鍵一般是用來做外鍵的。但如果此時(shí)不想主鍵作為外鍵,則需要設(shè)置referencedColumnName屬性。

@Entity
public?class?People?{
?
????@Id
????@Column(name?=?"id")
????@GenericGenerator(name?=?"idGenerator",?strategy?=?"uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;
?
????@Column(name?=?"name")
????private?String?name;//姓名
?
????@Column(name?=?"sex")
????private?String?sex;//性別
?
????@Column(name?=?"birthday")
????private?Date?birthday;//出生日期
?
????@OneToOne(cascade=CascadeType.ALL)//People是關(guān)系的維護(hù)端,當(dāng)刪除?people,會(huì)級(jí)聯(lián)刪除?address
????@JoinColumn(name?=?"address_id",?referencedColumnName?=?"id")
????private?Address?address;//地址
?
}

@Entity
public?class?Address?{
????@Id
????@Column(name?=?"id")
????@GenericGenerator(name?=?"idGenerator",?strategy?=?"uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;
?
????@Column(name?=?"phone")
????private?String?phone;//手機(jī)
?
????@Column(name?=?"zipcode")
????private?String?zipcode;//郵政編碼
?
????@Column(name?=?"address")
????private?String?address;//地址
}

方式二:通過關(guān)聯(lián)表的方式來保存一對(duì)一的關(guān)系。

關(guān)聯(lián)表:people_address (people_id,address_id)

@JoinTable:用于構(gòu)建一對(duì)多,多對(duì)多時(shí)的連接表,默認(rèn)會(huì)以主控表加下劃線加反轉(zhuǎn)表為表名。

  • JoinColumns:該屬性值可接受多個(gè)@JoinColumn,用于配置連接表中外鍵列的信息,這些外鍵列參照當(dāng)前實(shí)體對(duì)應(yīng)表的主鍵列。
  • inverseJoinColumns:該屬性值可接受多個(gè)@JoinColumn,用于配置連接表中外鍵列的信息,這些外鍵列參照當(dāng)前實(shí)體的關(guān)聯(lián)實(shí)體對(duì)應(yīng)表的主鍵列。
@Entity
public?class?People?{
?
????@Id
????@GeneratedValue(strategy?=?GenerationType.IDENTITY)
????@Column(name?=?"id",?nullable?=?false)
????private?Long?id;//id
?
????@Column(name?=?"name")
????private?String?name;//姓名
?
????@Column(name?=?"sex")
????private?String?sex;//性別
?
????@Column(name?=?"birthday")
????private?Timestamp?birthday;//出生日期
?
????@OneToOne(cascade=CascadeType.ALL)//People是關(guān)系的維護(hù)端
????@JoinTable(name?=?"people_address",
????????????joinColumns?=?@JoinColumn(name="people_id"),
????????????inverseJoinColumns?=?@JoinColumn(name?=?"address_id"))
????private?Address?address;//地址
?
}

@Entity
public?class?Address?{
????@Id
????@Column(name?=?"id")
????@GenericGenerator(name?=?"idGenerator",?strategy?=?"uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;
?
????@Column(name?=?"phone")
????private?String?phone;//手機(jī)
?
????@Column(name?=?"zipcode")
????private?String?zipcode;//郵政編碼
?
????@Column(name?=?"address")
????private?String?address;//地址
}

@OneToMany和@ManyToOne

注解一對(duì)多和多對(duì)一關(guān)系。

  • JPA使用@OneToMany和@ManyToOne來標(biāo)識(shí)一對(duì)多的雙向關(guān)聯(lián)。一端(One)使用@OneToMany,多端(Many)使用@ManyToOne。
  • 在JPA規(guī)范中,一對(duì)多的雙向關(guān)系由多端(Many)來維護(hù)。就是說多端(Many)為關(guān)系維護(hù)端,負(fù)責(zé)關(guān)系的增刪改查。一端(One)則為關(guān)系被維護(hù)端,不能維護(hù)關(guān)系。
  • 一端(One)使用@OneToMany注釋的mappedBy屬性表明是關(guān)系被維護(hù)端。
  • 多端(Many)使用@ManyToOne和@JoinColumn來注釋屬性,@ManyToOne表明是多端,@JoinColumn設(shè)置在表中的關(guān)聯(lián)字段(外鍵)。

例子

  • 文章表 article (id,title,content,author_id)
  • 作者表 author (id,name)
@Entity
public?class?Author?{
?
????@Id
????@Column(name?=?"id")
????@GenericGenerator(name?=?"idGenerator",?strategy?=?"uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;
?
????@Column
????private?String?name;//姓名
?
????//級(jí)聯(lián)保存、更新、刪除、刷新;延遲加載。當(dāng)刪除用戶,會(huì)級(jí)聯(lián)刪除該用戶的所有文章
????//擁有mappedBy注解的實(shí)體類為關(guān)系被維護(hù)端
????//mappedBy="author"中的author是Article中的author屬性
????@OneToMany(mappedBy?=?"author",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
????private?List<Article>?articleList;//文章列表
}
?
@Entity
public?class?Article?{
?
????@Id
????@Column(name?=?"id")
????@GenericGenerator(name?=?"idGenerator",?strategy?=?"uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;
?
????@Column
????private?String?title;
?
????@Lob??//?大對(duì)象,映射?MySQL?的?Long?Text?類型
????@Basic(fetch?=?FetchType.LAZY)?//?懶加載
????@Column(nullable?=?false)?
????private?String?content;//文章全文內(nèi)容
?
????//可選屬性optional=false,表示author不能為空。刪除文章,不影響用戶
????@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
????//設(shè)置在article表中的關(guān)聯(lián)字段(外鍵)
????@JoinColumn(name="author_id")
????private?Author?author;//所屬作者
?
}

@ManyToMany

注解多對(duì)多的關(guān)系。

角色和權(quán)限是多對(duì)多的關(guān)系。一個(gè)角色可以有多個(gè)權(quán)限,一個(gè)權(quán)限也可以被很多角色擁有。

JPA中使用@ManyToMany來注解多對(duì)多的關(guān)系,由一個(gè)關(guān)聯(lián)表來維護(hù)。這個(gè)關(guān)聯(lián)表的表名默認(rèn)是:主表名+下劃線+從表名。

這個(gè)關(guān)聯(lián)表只有兩個(gè)外鍵字段,分別指向主表ID和從表ID。字段的名稱默認(rèn)為:主表名+下劃線+主表中的主鍵列名,從表名+下劃線+從表中的主鍵列名。

例子

  • 權(quán)限表 user_permission(id,permission_name)
  • 角色表 user_role(id,department_id, create_time, description, name, update_time)
  • 關(guān)聯(lián)表 user_role_permission 表(role_id, permission_id)

注意

  • 多對(duì)多關(guān)系中一般不設(shè)置級(jí)聯(lián)保存、級(jí)聯(lián)刪除、級(jí)聯(lián)更新等操作。
  • 本例中,由于加了@JoinTable注解,關(guān)聯(lián)關(guān)系表會(huì)按照注解指定的生成。否則去掉注解,指定Role為關(guān)系維護(hù)端,所以生成的關(guān)聯(lián)表名稱為:user_role_permission,關(guān)聯(lián)表的字段為:role_id 和permission_id。
@Data
@Entity
@Table(name?=?"user_permission")
public?class?Permission?implements?Comparable<Permission>?{

????@Id
????@Column(name?=?"id")
????private?String?id;

????@Column(name?=?"permission_name")
????private?String?permissionName;

????@ManyToMany(mappedBy="permissions")
????private?Set<Role>?roles;

}

@Data
@Entity
@Table(name?=?"user_role")
public?class?Role?{

????@Id
????@Column(name?=?"id")
????@GenericGenerator(name?=?"idGenerator",?strategy?=?"uuid")
????@GeneratedValue(generator?=?"idGenerator")
????private?String?id;

????@Column(name?=?"create_time")
????private?Long?createTime;

????@Column(name?=?"update_time")
????private?Long?updateTime;

????@Column(name?=?"name")
????private?String?name;

????@Column(name?=?"description")
????private?String?description;

????@Column(name?=?"department_id")
????private?String?departmentId;

????@ManyToMany(fetch?=?FetchType.EAGER,?cascade?=?CascadeType.ALL)
????@JoinTable(name?=?"user_role_permission",?joinColumns?=?{@JoinColumn(name?=?"role_id")},
????????????inverseJoinColumns?=?{@JoinColumn(name?=?"permission_id")})
????private?List<Permission>?permissions;

}

到此這篇關(guān)于一文帶你掌握J(rèn)PA實(shí)體類注解的文章就介紹到這了,更多相關(guān)JPA實(shí)體類注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java追加寫入txt文件的方法總結(jié)

    java追加寫入txt文件的方法總結(jié)

    在本篇文章里我們給大家整理了關(guān)于java如何追加寫入txt文件的方法和代碼,需要的朋友們可以參考下。
    2020-02-02
  • 一篇文章帶你復(fù)習(xí)java知識(shí)點(diǎn)

    一篇文章帶你復(fù)習(xí)java知識(shí)點(diǎn)

    以下簡單介紹了下我對(duì)于這些java基本知識(shí)點(diǎn)和技術(shù)點(diǎn)的一些看法和心得,這些內(nèi)容都源自于我這些年來使用java的一些總結(jié),希望能夠給你帶來幫助
    2021-06-06
  • Java十大經(jīng)典排序算法圖解

    Java十大經(jīng)典排序算法圖解

    這篇文章主要介紹了Java十大經(jīng)典排序算法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • java設(shè)計(jì)模式之單例模式的詳解及優(yōu)點(diǎn)

    java設(shè)計(jì)模式之單例模式的詳解及優(yōu)點(diǎn)

    這篇文章主要介紹了java設(shè)計(jì)模式之單例模式的詳解及優(yōu)點(diǎn)的相關(guān)資料,如果一個(gè)類始終只能創(chuàng)建一個(gè)實(shí)例,那么這個(gè)類被稱為單例類,這種設(shè)計(jì)模式被稱為單例模式,需要的朋友可以參考下
    2017-08-08
  • MyBatis動(dòng)態(tài)SQL標(biāo)簽用法實(shí)例詳解

    MyBatis動(dòng)態(tài)SQL標(biāo)簽用法實(shí)例詳解

    本文通過實(shí)例代碼給大家介紹了MyBatis動(dòng)態(tài)SQL標(biāo)簽用法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-07-07
  • java8中parallelStream性能測(cè)試及結(jié)果分析

    java8中parallelStream性能測(cè)試及結(jié)果分析

    本篇文章給大家用代碼實(shí)例做了segmentfaultjava8中parallelStream性能測(cè)試,并對(duì)測(cè)試結(jié)果做了說明,需要的朋友學(xué)習(xí)下吧。
    2018-01-01
  • SpringBoot中獲取微信用戶信息的方法

    SpringBoot中獲取微信用戶信息的方法

    這篇文章主要介紹了SpringBoot中獲取微信用戶信息的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java 詳解異常的處理機(jī)制

    Java 詳解異常的處理機(jī)制

    異常是程序中的一些錯(cuò)誤,但并不是所有的錯(cuò)誤都是異常,并且錯(cuò)誤有時(shí)候是可以避免的。比如你的代碼少一個(gè)分號(hào),那運(yùn)行出來結(jié)果是提示是錯(cuò)誤 java.lang.Error;如果你用System.out.println(11/0),那你是因?yàn)橛?做了除數(shù),會(huì)拋出 java.lang.ArithmeticException 的異常
    2021-11-11
  • springboot發(fā)送request請(qǐng)求的方式小結(jié)

    springboot發(fā)送request請(qǐng)求的方式小結(jié)

    在Java中,發(fā)送HTTP請(qǐng)求是常見需求,hutool工具包和RestTemplate類是實(shí)現(xiàn)此功能的兩種主流方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • 測(cè)試springboot項(xiàng)目出現(xiàn)Test Ignored的解決

    測(cè)試springboot項(xiàng)目出現(xiàn)Test Ignored的解決

    這篇文章主要介紹了測(cè)試springboot項(xiàng)目出現(xiàn)Test Ignored的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論