更新时间:2022-02-11 10:39:11 来源:极悦 浏览583次
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天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习