`
laodaobazi
  • 浏览: 277494 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate 使用 Annotation 2(主键生成方式)

阅读更多

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) ;
	}
	
}

 

分享到:
评论

相关推荐

    hibernate-主键生成方式[自动、手动]-annotation

    本文是讲解的是hibernate3.2的主键生成方式,通过annotation来实现,详细的分析了主键在hibernate的生成以及在真实项目的运用。。。。

    hibernate-annotation 所需要的jar包

    Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来处理数据库操作。在Java开发中,Hibernate与Annotation的结合使用极大地简化了数据持久化的复杂性,使得开发人员无需编写大量...

    hibernate-Annotation.jar

    - `@GeneratedValue`:用于指定主键生成策略,例如自增(IDENTITY)、序列(SEQUENCE)等。 - `@Temporal`:对于日期时间类型,`@Temporal(TemporalType.TIMESTAMP)`等可以指定存储格式。 4. **关系映射注解** -...

    hibernate-annotation

    4. `@GeneratedValue`:用于指定主键生成策略,如自增、UUID等。例如: ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // ... } ``` 5. `@...

    hibernate annotation hibernate3

    `@Id`注解用于指定实体类中的主键字段,它通常与`@GeneratedValue`一起使用,表示主键自动生成。例如: ```java @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; ``` 三、字段级注解 1....

    Hibernate-Annotation-3.4.0帮助文档

    《Hibernate-Annotation-3.4.0帮助文档》是一份详尽的指南,旨在帮助开发者理解和使用Hibernate ORM框架中的注解功能。Hibernate是Java领域中广泛使用的对象关系映射(ORM)工具,它极大地简化了数据库操作。在3.4.0...

    Hibernate Annotation 中文文档

    - `@GeneratedValue`: 配置主键生成策略,如自动增长或序列。 - `@Column`: 配置字段与表列的映射,包括列名、长度、是否可为空等属性。 - `@ManyToOne`, `@OneToMany`, `@OneToOne`, `@ManyToMany`: 定义不同类型的...

    Hibernate用UUID作为主键的Demo

    在Hibernate中,我们可以通过定义主键生成策略来实现UUID的使用。具体做法是在实体类的主键字段上使用`@GeneratedValue`和`@GenericGenerator`注解: ```java import javax.persistence.Entity; import javax....

    Hibernate distribution and annotation

    4. **@GeneratedValue**: 控制主键生成策略,如自动递增、UUID等。 5. **@Column**: 描述实体属性如何映射到表的列,包括长度、是否可空等属性。 6. **@OneToMany, @ManyToOne, @OneToOne, @ManyToMany**: 用于...

    hibernate annotation 中文文档

    - `@GeneratedValue`: 用于主键字段,定义主键生成策略,如.AUTO(自增)或.SEQUENCE(序列)。 - `@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`: 用于处理各种关联关系,如一对一、一对多、多对一、多...

    Hibernate Annotation库

    这个jar文件包含了Hibernate的注解API,提供了各种注解如`@Entity`、`@Table`、`@Id`、`@GeneratedValue`等,用于声明实体类和它们在数据库中的表对应关系,以及主键生成策略。例如,`@Entity`注解标记一个类为...

    hibernate-annotation-3.4.0.GA

    例如,使用序列方式生成主键: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long id; // ... } ``` 五、字段注解@Column ...

    hibernate_annotation中文版

    2. 使用合理的主键生成策略,如@Id + @GeneratedValue(strategy = GenerationType.IDENTITY)。 3. 在处理关联关系时,注意外键约束的设置,确保数据一致性。 4. 合理利用预编译查询,提高性能。 总结,Hibernate ...

    Hibernate-Annotation初步.rar

    在这个例子中,`@Entity`告诉Hibernate这是一个需要持久化的类,`@Table(name = "User")`表示该类映射到名为“User”的数据库表,`@Id`标记的`id`字段是主键,`@GeneratedValue`定义了主键生成策略,而`@Column(name...

    hibernate annotation jar

    常见的注解有`@Entity`(定义实体类)、`@Table`(指定映射的数据库表)、`@Id`(标识主键)、`@GeneratedValue`(定义主键生成策略)等。 4. Java 5及以上版本:Hibernate 3.3开始支持Java 5的注解,这意味着...

    Hibernate_Annotation参考文档

    - **@GeneratedValue**:设置主键生成策略。 ##### 2.2 实体Bean - **实体Bean**:是Hibernate_Annotation中最基本的对象,用于映射到数据库中的表。 - **@Entity**:标记为实体类。 - **@Table(name = ...

    Hibernate Annotation入门

    4. `@GeneratedValue`:定义主键生成策略,如自动增长(AUTO)、序列(SEQUENCE)等。 5. `@Column`:用于指定字段与表列的映射,包括列名、长度、是否允许为空等属性。 6. `@OneToMany`, `@ManyToOne`, `@OneToOne`...

    hibernate 中文文档 and _annotation.chm

    - @Id:标识类中的主键字段,可以配合@GeneratedValue指定主键生成策略。 - @GeneratedValue:定义主键的自增策略,如IDENTITY(数据库自动增长)、SEQUENCE(序列)等。 - @Column:定义属性对应表中的列,可以...

Global site tag (gtag.js) - Google Analytics