hibernate.cfg.xml配置文件:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">100</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<!--<property name="hbm2ddl.auto">create</property>-->
<mapping class="com.jlee02.createId.Jlee"/>
</session-factory>
</hibernate-configuration>
Jlee.java代码:
package com.jlee02.createId;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
@Entity
@Table(name="T_JLEE")
@TableGenerator(
name = "myKey" ,
table = "KEY_TABLE" ,
pkColumnName = "pk_key" ,
valueColumnName = "pk_value" ,
pkColumnValue = "T_JLEE" ,
allocationSize = 1 ,//取完数值后数值步进的数值
initialValue = 1
)
//@SequenceGenerator(name="mySeq" , sequenceName="mySeq_DB")适用于Oracle 自定义sequence在数据库中的名字
public class Jlee {
private long id ;
private String name ;
private String phone ;
private int age ;
/**
* @return the id
*/
@Id
@GeneratedValue(strategy=GenerationType.TABLE , generator="myKey")
// @GeneratedValue(strategy=GenerationType.SEQUENCE , generator="mySeq")主键生成方式为自定义 Sequence
public long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(long id) {
this.id = id;
}
/**
* @return the name
*/
@Column(name="name" , length=32)
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the phone
*/
@Column(name="phone" , length=18)
public String getPhone() {
return phone;
}
/**
* @param phone the phone to set
*/
public void setPhone(String phone) {
this.phone = phone;
}
/**
* @return the age
*/
@Column(name="age")
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
}
JleeTest.java代码:
package com.jlee02.createId;
import junit.framework.TestCase;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class JleeTest extends TestCase {
public void testJlee(){
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory() ;
Session session = sf.getCurrentSession() ;
session.beginTransaction() ;
Jlee jlee = new Jlee() ;
jlee.setName("JLee") ;
jlee.setAge(23) ;
jlee.setPhone("12123123123") ;
session.save(jlee) ;
session.getTransaction().commit() ;
}
//相当于hbm2ddl 设为 create
public void testExport(){
new SchemaExport(new AnnotationConfiguration().configure()).create(false, true) ;
}
}
分享到:
相关推荐
本文是讲解的是hibernate3.2的主键生成方式,通过annotation来实现,详细的分析了主键在hibernate的生成以及在真实项目的运用。。。。
Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来处理数据库操作。在Java开发中,Hibernate与Annotation的结合使用极大地简化了数据持久化的复杂性,使得开发人员无需编写大量...
- `@GeneratedValue`:用于指定主键生成策略,例如自增(IDENTITY)、序列(SEQUENCE)等。 - `@Temporal`:对于日期时间类型,`@Temporal(TemporalType.TIMESTAMP)`等可以指定存储格式。 4. **关系映射注解** -...
4. `@GeneratedValue`:用于指定主键生成策略,如自增、UUID等。例如: ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // ... } ``` 5. `@...
`@Id`注解用于指定实体类中的主键字段,它通常与`@GeneratedValue`一起使用,表示主键自动生成。例如: ```java @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; ``` 三、字段级注解 1....
《Hibernate-Annotation-3.4.0帮助文档》是一份详尽的指南,旨在帮助开发者理解和使用Hibernate ORM框架中的注解功能。Hibernate是Java领域中广泛使用的对象关系映射(ORM)工具,它极大地简化了数据库操作。在3.4.0...
- `@GeneratedValue`: 配置主键生成策略,如自动增长或序列。 - `@Column`: 配置字段与表列的映射,包括列名、长度、是否可为空等属性。 - `@ManyToOne`, `@OneToMany`, `@OneToOne`, `@ManyToMany`: 定义不同类型的...
在Hibernate中,我们可以通过定义主键生成策略来实现UUID的使用。具体做法是在实体类的主键字段上使用`@GeneratedValue`和`@GenericGenerator`注解: ```java import javax.persistence.Entity; import javax....
4. **@GeneratedValue**: 控制主键生成策略,如自动递增、UUID等。 5. **@Column**: 描述实体属性如何映射到表的列,包括长度、是否可空等属性。 6. **@OneToMany, @ManyToOne, @OneToOne, @ManyToMany**: 用于...
- `@GeneratedValue`: 用于主键字段,定义主键生成策略,如.AUTO(自增)或.SEQUENCE(序列)。 - `@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`: 用于处理各种关联关系,如一对一、一对多、多对一、多...
这个jar文件包含了Hibernate的注解API,提供了各种注解如`@Entity`、`@Table`、`@Id`、`@GeneratedValue`等,用于声明实体类和它们在数据库中的表对应关系,以及主键生成策略。例如,`@Entity`注解标记一个类为...
例如,使用序列方式生成主键: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long id; // ... } ``` 五、字段注解@Column ...
2. 使用合理的主键生成策略,如@Id + @GeneratedValue(strategy = GenerationType.IDENTITY)。 3. 在处理关联关系时,注意外键约束的设置,确保数据一致性。 4. 合理利用预编译查询,提高性能。 总结,Hibernate ...
在这个例子中,`@Entity`告诉Hibernate这是一个需要持久化的类,`@Table(name = "User")`表示该类映射到名为“User”的数据库表,`@Id`标记的`id`字段是主键,`@GeneratedValue`定义了主键生成策略,而`@Column(name...
常见的注解有`@Entity`(定义实体类)、`@Table`(指定映射的数据库表)、`@Id`(标识主键)、`@GeneratedValue`(定义主键生成策略)等。 4. Java 5及以上版本:Hibernate 3.3开始支持Java 5的注解,这意味着...
- **@GeneratedValue**:设置主键生成策略。 ##### 2.2 实体Bean - **实体Bean**:是Hibernate_Annotation中最基本的对象,用于映射到数据库中的表。 - **@Entity**:标记为实体类。 - **@Table(name = ...
4. `@GeneratedValue`:定义主键生成策略,如自动增长(AUTO)、序列(SEQUENCE)等。 5. `@Column`:用于指定字段与表列的映射,包括列名、长度、是否允许为空等属性。 6. `@OneToMany`, `@ManyToOne`, `@OneToOne`...
- @Id:标识类中的主键字段,可以配合@GeneratedValue指定主键生成策略。 - @GeneratedValue:定义主键的自增策略,如IDENTITY(数据库自动增长)、SEQUENCE(序列)等。 - @Column:定义属性对应表中的列,可以...