更新時(shí)間:2022-02-11 10:39:11 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽786次
Hibernate 是一種簡(jiǎn)化應(yīng)用程序開(kāi)發(fā)的 ORM(對(duì)象關(guān)系映射)工具。Hibernate 提供了一個(gè)與存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行交互的框架,它還使用 Java Persistence API (JPA) 的規(guī)范。
Hibernate 提供注釋以方便 Web 開(kāi)發(fā)。在不使用 hibernate-mapping 文件的情況下,您可以借助 JPA Annotations 將 java 類映射到相應(yīng)的表。下面列出了一些 JPA 注釋:
i.@Entity - 它用于使 bean 類成為實(shí)體 bean,因此它必須包含無(wú)參數(shù)構(gòu)造函數(shù)。
ii. @Table - 它用于為帶注釋的實(shí)體創(chuàng)建表。
iii.@Id – 表中的主鍵用@Id 表示。
iv.@Generatedvalue – 用于自動(dòng)生成@Id 字段的值。
v.@Column -用于定義屬性映射到的列的詳細(xì)信息。
使用hibernate注解時(shí),需要在pom.xml中添加依賴。在<dependencies>…</dependecies> 標(biāo)簽之間添加依賴。下面列出了一些依賴項(xiàng):
<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>
您需要手動(dòng)添加 Oracle 依賴項(xiàng)。如果您使用的是 Mysql,那么您需要添加 MySQL jar 或依賴項(xiàng)。
將多個(gè)對(duì)象封裝成單個(gè)對(duì)象是通過(guò) POJO 類或 Bean 類來(lái)完成的。
bean 類的所有變量都使用公共 setter 和 getter 方法設(shè)置為私有。
這里我們?cè)?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;
}
}
配置文件的名稱應(yīng)該是 hibernate.cfg.xml。它包含有關(guān)映射文件和關(guān)系數(shù)據(jù)庫(kù)的信息。
休眠.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>
它是一個(gè)包含用于運(yùn)行應(yīng)用程序的main() 方法的類。
讓我們創(chuàng)建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();
}
}
以上就是關(guān)于“帶有示例的Hibernate注解”的介紹,大家如果對(duì)此比較感興趣,想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java視頻,里面的課程內(nèi)容從入門到精通,很適合沒(méi)有基礎(chǔ)的小白學(xué)習(xí),希望對(duì)大家能夠有所幫助。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743