在Myeclipse中,用Hibernate根据实体类自动生成表的详细步骤。谢谢!

2024-11-19 06:46:57
推荐回答(5个)
回答1:

hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。
create:
每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :
每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
update:
最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
validate :
每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

回答2:

三楼正解。我这里给出通过Annotation的方式生成表的实体类:
1.先要创建自己的数据库,内容可以为空,表在之后自动生成。
2..在sessionFactory的配置属性里加上


lx.model


其中lx.model就是实体类所在的包
3.写实体类,加上Annotation,下面是一个简单的例子
package lx.model;
//import ...
@Entity
public class Student implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column
private String username;
@Column
private String password;

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}
4.运行,查看数据库中是否已经自动生成相应的表。

回答3:

Myeclipse 有个 jpa 插件 直接用jpa tools 有 通过表生成实体和通过实体生产表2个

回答4:

是根据表生成实体类吧

回答5:

根据实体生成类,有两种方式,一种配置文件生成,一种注解方式生成,具体可以上网查找,网上很多例子