下载hibernate-release-4.1.3.Final.tgz
例子在这里:
hibernate-release-4.1.3.Final\documentation\quickstart\en-US\html\files\hibernate-tutorials.zip
这里说关于annotations的事。
============配置log4j
修改hibernate-tutorials/pom.xml
增加如下代码
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
这可以让maven使用log4j-1.2.16.jar
复制hibernate-release-4.1.3.Final\project\etc\log4j.properties到
hibernate-tutorials\annotations\src\test\resources中,
这样,可以控制log4j,省得运行时输出一堆log。
log4j.properties中,把log4j.logger.org.hibernate=debug改成log4j.logger.org.hibernate=warn
log就会干干净净。
============修改hibernate.cfg.xml,符合自己的数据库信息
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://ip地址:端口/数据库名字?useUnicode=true&characterEncoding=UTF-8</property>
============增加一个map类
在hibernate.cfg.xml中加:
<mapping class="org.hibernate.tutorial.annotations.FoodItem2"/>
告诉hibernate,这个类需要被map。
---------表结构
CREATE TABLE `food_item` (
`foodItem_Id` bigint(20) NOT NULL default '0',
`name_str` varchar(75) default NULL,
`points_num` int(11) default NULL
)
---------FoodItem2.java关键处
@Entity
@Table(name = "food_item")
public class FoodItem2 {
@Id
@Column(name = "foodItem_Id")
public long getFoodItemId() {
return _foodItemId;
}
//@Id是必须的。
@Column(name = "name_str")
public String getName() {
return _name;
}
============hibernate依赖的jar不少,以下来自maven classpath,其中有些冗余。
\org\javassist\javassist\3.15.0-GA\javassist-3.15.0-GA.jar
\org\jboss\spec\javax\transaction\jboss-transaction-api_1.1_spec\1.0.0.Final\jboss-transaction-api_1.1_spec-1.0.0.Final.jar
\org\hibernate\javax\persistence\hibernate-jpa-2.0-api\1.0.1.Final\hibernate-jpa-2.0-api-1.0.1.Final.jar
\org\slf4j\slf4j-api\1.6.1\slf4j-api-1.6.1.jar
\org\hibernate\hibernate-core\4.1.3.Final\hibernate-core-4.1.3.Final.jar
\org\hibernate\common\hibernate-commons-annotations\4.0.1.Final\hibernate-commons-annotations-4.0.1.Final.jar
\antlr\antlr\2.7.7\antlr-2.7.7.jar
\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar
\org\slf4j\slf4j-simple\1.6.1\slf4j-simple-1.6.1.jar
\org\hamcrest\hamcrest-core\1.1\hamcrest-core-1.1.jar
\com\h2database\h2\1.2.145\h2-1.2.145.jar
\junit\junit\4.10\junit-4.10.jar
\org\slf4j\slf4j-log4j12\1.6.1\slf4j-log4j12-1.6.1.jar
\log4j\log4j\1.2.16\log4j-1.2.16.jar
\org\jboss\logging\jboss-logging\3.1.0.GA\jboss-logging-3.1.0.GA.jar
此外,还加了mysql.jar。
============执行结果
Hibernate: select fooditem2x0_.foodItem_Id as foodItem1_0_, fooditem2x0_.name_str as name2_0_, fooditem2x0_.points_num as points3_0_ from food_item fooditem2x0_
1, Hamburger2, 5
2, French fries2, 3
3, Milk Shake2, 4
主要代码文件:
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/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://aa:2222/dd?useUnicode=true&characterEncoding=UTF-8</property> <property name="connection.username">ff</property> <property name="connection.password">ff</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Names the annotated entity class --> <mapping class="org.hibernate.tutorial.annotations.FoodItem2"/> </session-factory> </hibernate-configuration>
FoodItem2.java
package org.hibernate.tutorial.annotations; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "food_item") public class FoodItem2 { @Id @Column(name = "foodItem_Id") public long getFoodItemId() { return _foodItemId; } public void setFoodItemId(long foodItemId) { _foodItemId = foodItemId; } @Column(name = "name_str") public String getName() { return _name; } public void setName(String name) { _name = name; } @Column(name = "points_num") public int getPoints() { return _points; } public void setPoints(int points) { _points = points; } private long _foodItemId; private String _name; private int _points; public String toString() { return _foodItemId + ", " + _name + ", " + _points; } }
A2.java
package org.hibernate.tutorial.annotations; import java.util.List; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class A2 { private SessionFactory sessionFactory; protected void setUp() throws Exception { // A SessionFactory is set up once for an application sessionFactory = new Configuration().configure().buildSessionFactory(); } protected void tearDown() throws Exception { if (sessionFactory != null) { sessionFactory.close(); } } @SuppressWarnings({ "unchecked" }) public void testBasicUsage() { Session session = sessionFactory.openSession(); session.setDefaultReadOnly(true); session.beginTransaction(); List result = session.createQuery("from FoodItem2").list(); for (FoodItem2 event : (List<FoodItem2>) result) { System.out.println(event); } session.getTransaction().commit(); session.close(); } public static void main(String[] args) throws Exception { A2 a1 = new A2(); a1.setUp(); a1.testBasicUsage(); a1.tearDown(); } }
树叶,阳光
发表评论
文章已被作者锁定,不允许评论。
-
给jdbc加connection pool
2012-06-18 20:03 1034参考 http://today.java.net/pub/a ... -
hibernate:表格没有id时
2012-06-04 20:03 1683有些表没有定义id或主键,只有一个unique约束,你又无权修 ... -
java读取图像width和height
2012-06-02 12:14 1424支持jpg,gif,psd,png。 lib=meta ... -
面试题:关于数据库索引
2012-06-01 20:03 3755-----------简译。 源 ... -
liferay sdk 设置
2012-05-13 19:00 1473os=ubuntu[读音:无本土]。 ===== ... -
ubuntu上装liferay
2012-05-13 18:57 1421===========原料 Ubuntu 12.04 ... -
用htmlparser提取table信息
2012-05-13 08:24 1415htmlparser1.6提取tr似乎有些问题,直接用css ... -
CssSelectorNodeFilter用法
2012-05-13 08:14 3412这里演示htmlparser1.6中CssSelectorNo ... -
用java下载1个网页
2012-05-13 08:00 960参考了开源软件code。在自己机器上测试通过。 import ...
相关推荐
使用Hibernate注解进行开发可以极大地提高开发效率,减少XML配置的工作量,使代码更加简洁易懂。但是也需要注意,在复杂的应用场景下,合理的实体设计和关联关系映射对于系统的性能至关重要。此外,对于特定的需求和...
在"hibernate xml annotations 代码的例子"中,我们可能会看到以下两种实例: 1. **纯XML映射**:在这种情况下,所有的实体类映射信息都存在于单独的XML文件中。例如,一个名为`User.hbm.xml`的文件可能包含如下...
### Hibernate Annotations:面向注解的Hibernate使用指南 Hibernate是一个强大的对象关系映射(ORM)框架,它能够将Java对象映射到数据库表中,从而极大地简化了数据持久化层的开发工作。在Hibernate中,有两种...
### Hibernate Annotations 概述 Hibernate 是一款非常流行的 Java 持久化框架,它提供了对象关系映射(ORM)的功能,使得开发人员能够更加高效、便捷地操作数据库。在 Hibernate 中,有两种主要的对象关系映射方式...
1. 隐式映射:在上面的例子中,我们没有显式指定每个属性的映射,这是因为Hibernate Annotation采用了一种“配置例外”(configuration by exception)的理念。除主键和实体标识外,其他属性默认按照Java Bean的规则...
标题 "一个Spring+hibernate+dwr的例子程序" 暗示了这是一个使用Java企业级开发框架构建的应用程序。这个程序结合了Spring、Hibernate和Direct Web Remoting (DWR)这三个核心组件,来实现高效、动态的Web应用程序。 ...
例如,如果我们有一个名为`Article`的实体类,其中包含一个`title`字段,我们可以使用`@org.hibernate.annotations.OrderBy`注解来指定排序规则: ```java @Entity public class Article { @Id private Long id; ...
这些库包括 hibernate-distribution、hibernate-annotations 和 slf4j 等,其中 hibernate-distribution 包含了必要的 jar 包,如 antlr、dom4j、javassist、jta 等,而 hibernate-annotations 和 hibernate-commons...
2. **hibernate-annotations.jar**:这个包提供了JPA(Java Persistence API)的注解支持,使得开发者可以通过在实体类上添加注解来定义数据库映射。 3. **hibernate-entitymanager.jar**:这是Hibernate对JPA规范...
在Hibernate中,通过使用`@ManyToMany`注解可以方便地处理这种关系。这个注解通常会用在两个实体类的属性上,表明它们之间的关联。以下是一个简单的例子: ```java @Entity public class Student { @Id @...
通过一个简短的例子来展示如何使用Hibernate Envers。在这个例子中,用户可以了解到如何对实体进行标记以便于审计,以及如何查询历史版本的数据。 #### 四、配置 - **基本配置**:介绍了启动Envers的基本设置步骤,...
如果你需要更高级的功能,如CGLIB代理、Hibernate Annotations等,可能需要升级到更高版本的Hibernate。 总结起来,Hibernate 3.2.0 GA是一个功能齐全的ORM框架,能够帮助开发者高效地处理数据库操作。这个压缩包...
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) private User user; ``` 在上面的例子中,我们设置了`inverse=true`,这意味着 `Address` 实体不再负责维护与 `User` ...
<property name="hibernate.use_annotations">true </hibernate-configuration> ``` 或者在Spring框架中,通过`LocalSessionFactoryBean`的`hibernateProperties`属性设置。 ## 使用注解进行CRUD操作 使用注解...
Hibernate Annotation是Hibernate框架的一个扩展,它允许开发者直接在Java类和属性上使用注解(Annotations),来定义实体类与数据库表之间的映射关系。相比于XML配置,注解提供了一种更加内聚和直接的方式,使得...
4. 注解映射:详细阐述了如何使用注解(Annotations)来定义对象与数据库表之间的映射关系,这是Hibernate 3.0引入的一个重要特性。 5. Hibernate XML映射文件:除了注解映射之外,书中也介绍了传统的基于XML文件的...
2. **依赖**:使用Hibernate Annotation需要引入相关的JAR包,包括`hibernate-annotations.jar`、`hibernate-commons-annotations.jar`以及`ejb3-persistence.jar`。如果使用Maven,可以在POM.xml文件中添加相应的...
- **JPA1.0**: 使用`hibernate-annotations-3.4.0.GA`和`hibernate-entitymanager-3.4.0.GA`下的文件。 - **其他**: `mysql-connector-java-5.1.10-bin.jar`用于连接MySQL数据库;`junit-4`用于单元测试。 ##### ...