更新時間:2023-01-13 14:00:42 來源:動力節(jié)點 瀏覽1885次
1.什么是Java Persistence API?
Java Persistence API(JPA)是Java的規(guī)范, 用于在Java對象和關(guān)系數(shù)據(jù)庫之間持久化數(shù)據(jù)。 JPA充當(dāng)面向?qū)ο蟮挠蚰P秃完P(guān)系數(shù)據(jù)庫系統(tǒng)之間的橋梁。由于JPA只是一個規(guī)范, 因此它本身不會執(zhí)行任何操作。它需要一個實現(xiàn)。因此, 諸如Hibernate, TopLink和iBatis之類的ORM工具實現(xiàn)了JPA規(guī)范以實現(xiàn)數(shù)據(jù)持久性。 Java Persistence API的第一個版本JPA 1.0于2006年發(fā)布, 它是EJB 3.0規(guī)范的一部分。
2.JPA是否執(zhí)行諸如訪問, 保留和管理數(shù)據(jù)之類的實際任務(wù)?
不, JPA只是一個規(guī)范。 Hibernate, iBatis和TopLink等ORM工具實現(xiàn)JPA規(guī)范并執(zhí)行這些類型的任務(wù)。
3.什么是對象關(guān)系映射?
對象關(guān)系映射是一種機制, 用于通過將對象狀態(tài)映射到數(shù)據(jù)庫列中來開發(fā)和維護對象與關(guān)系數(shù)據(jù)庫之間的關(guān)系。它將編程代碼的屬性轉(zhuǎn)換為表的列。它能夠輕松處理各種數(shù)據(jù)庫操作, 例如插入, 更新, 刪除等。
4.JPA的優(yōu)點是什么?
JPA的優(yōu)點如下。
5.有哪些可嵌入類?
可嵌入類表示實體的狀態(tài), 但沒有自己的持久標(biāo)識。這樣的類的對象共享擁有它的實體類的標(biāo)識。實體可以具有單值或多值可嵌入類屬性。
6.列出一些ORM框架。
以下是在ORM機制上起作用的各種框架:-
7.什么是JPQL?
JPQL是JPA規(guī)范中定義的Java Persistence查詢語言。它用于構(gòu)造查詢。
8.插入實體有哪些步驟?
我們可以輕松地通過實體將數(shù)據(jù)插入數(shù)據(jù)庫。 EntityManager提供了persist()方法來添加記錄。以下步驟用于將記錄插入數(shù)據(jù)庫。
創(chuàng)建一個具有屬性Student_name的實體類, 例如Student.java。
package com.srcmini.jpa.student;
import javax.persistence.*;
@Entity
@Table(name="student")
public class Student {
@Id
private String s_name;
public StudentEntity(String s_name) {
super();
this.s_name = s_name;
}
public StudentEntity() {
super();
}
public String getS_name() {
return s_name;
}
public void setS_name(String s_name) {
this.s_name = s_name;
}
}
現(xiàn)在, 在Persistence.xml文件中映射實體類和其他數(shù)據(jù)庫配置。
<persistence>
<persistence-unit name="Student_details">
<class>com.srcmini.jpa.student.StudentEntity</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/studentdata"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="eclipselink.logging.level" value="SEVERE"/>
<property name="eclipselink.ddl-generation" value="create-or-extend-tables"/>
</properties>
</persistence-unit>
</persistence>
在com.srcmini.jpa.persist包下創(chuàng)建一個名為PersistStudent.java的持久性類, 以將實體對象與數(shù)據(jù)持久化
package com.srcmini.jpa.persist;
import com.srcmini.jpa.student.*;
import javax.persistence.*;
public class PersistStudent {
public static void main(String args[])
{
EntityManagerFactory emf=Persistence.createEntityManagerFactory("Student_details");
EntityManager em=emf.createEntityManager();
em.getTransaction().begin();
StudentEntity s1=new StudentEntity();
s1.setS_name("Gaurav");
em.persist(s1);
em.getTransaction().commit();
emf.close();
em.close();
}
}
以上就是“Jpa面試題的簡單分析與練習(xí)”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動力節(jié)點Java官網(wǎng)。
相關(guān)閱讀