更新時間:2022-02-11 10:39:11 來源:動力節點 瀏覽731次
Hibernate 是一種簡化應用程序開發的 ORM(對象關系映射)工具。Hibernate 提供了一個與存儲在數據庫中的數據進行交互的框架,它還使用 Java Persistence API (JPA) 的規范。
Hibernate 提供注釋以方便 Web 開發。在不使用 hibernate-mapping 文件的情況下,您可以借助 JPA Annotations 將 java 類映射到相應的表。下面列出了一些 JPA 注釋:
i.@Entity - 它用于使 bean 類成為實體 bean,因此它必須包含無參數構造函數。
ii. @Table - 它用于為帶注釋的實體創建表。
iii.@Id – 表中的主鍵用@Id 表示。
iv.@Generatedvalue – 用于自動生成@Id 字段的值。
v.@Column -用于定義屬性映射到的列的詳細信息。
使用hibernate注解時,需要在pom.xml中添加依賴。在<dependencies>…</dependecies> 標簽之間添加依賴。下面列出了一些依賴項:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.1.Final>/version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.17.Final</version>
</dependency>
您需要手動添加 Oracle 依賴項。如果您使用的是 Mysql,那么您需要添加 MySQL jar 或依賴項。
將多個對象封裝成單個對象是通過 POJO 類或 Bean 類來完成的。
bean 類的所有變量都使用公共 setter 和 getter 方法設置為私有。
這里我們在 bean 類中使用 Annotations。
Bean 類- Book.java
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Book01")
public class Book {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int bno;
@Column(name="bname")
private String bname;
@Column(name="price")
private int price;
public int getBno() {
return bno;
}
public void setBno(int bno) {
this.bno = bno;
}
public String getBname() {
return bname;
}
public void setBname(String bname) {
this.bname = bname;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
配置文件的名稱應該是 hibernate.cfg.xml。它包含有關映射文件和關系數據庫的信息。
休眠.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 5.3//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-5.3.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect
</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306
/test2</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="show_sql">true</property>
<mapping class="com.app.Annotate.Book"></mapping>
</session-factory>
</hibernate-configuration>
它是一個包含用于運行應用程序的main() 方法的類。
讓我們創建AppTest.java。
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class AppTest
{
public static void main( String[] args )
{
Configuration cfg= new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory fact = cfg.buildSessionFactory();
Session sess= fact.openSession();
sess.beginTransaction();
Book book=new Book();
book.setBno(401);
book.setBname("Java Complete Reference");
book.setPrice(550);
sess.save(book);
sess.getTransaction().commit();
System.out.println("saved successfully ");
sess.close();
}
}
以上就是關于“帶有示例的Hibernate注解”的介紹,大家如果對此比較感興趣,想了解更多相關知識,可以關注一下動力節點的Java視頻,里面的課程內容從入門到精通,很適合沒有基礎的小白學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習