`
snake_hand
  • 浏览: 625880 次
社区版块
存档分类
最新评论

为大家提供一个完整的Hibernate Annotation项目_源码下载

 
阅读更多

项目结构:

在这里有必要跟大家说说Hibernate中的各个jar包的含义:。。。。。上面的log4j-1.2.11.jar包没有都可以哦!!!

 1 /**
 2  * 
 3  */
 4 package com.b510.hibernate.readme;
 5 
 6 /**
 7  * @author hongten<br>
 8  * @date 2013-3-25
 9  */
10 public class ReadMe {
11     /**
12      * Hibernate中各个jar文件的含义:
13      * 
14      * Hibernate的主要类库:
15      * ----------// begin  //-----------------
16      * hibernate3.jar                                   Hibernate主类库
17      * commons-collections-3.1.jar                      Commons的集合类库
18      * antlr-2.7.6.jar                                  Java开源语法分析生成器
19      * dom4j-1.6.1.jar                                  解析XML的类库
20      * javassist-3.12.0.GA.jar                          开源的分析,编辑和创建Java自己码的类库
21      * slf4j-api-1.6.6.jar                              各种日志处理接口
22      * slf4j-simple-1.6.6.jar                           各种日志处理接口的实现
23      * jta-1.1.jar                                      Java中的事务处理API
24      * ----------// end 8个 //-----------------
25      *  
26      * 数据库连接类库:
27      * ----------// begin  //-----------------
28      * mysql-connector-java-5.1.22-bin.jar              mysql数据库连接类库
29      * ----------// end 1个 //-----------------
30      * 
31      * Hibernate的注解Annotation类库:
32      * ----------// begin  //-----------------
33      * hibernate-commons-annotations-4.0.1.Final.jar    
34      * hibernate-jpa-2.0-api-1.0.1.Final.jar
35      * ----------// end 2个 //-----------------
36      * 
37      * 
38      * 
39      * Hibernate的注解EntityManager类库:
40      * ----------// begin  //-----------------
41      * hibernate-entitymanager.jar
42      * jboss-archive-browsing.jar
43      * ----------// end 2个 //-----------------
44      * 
45      * 
46      * Hibernate的注解org/apache/commons/logging/LogFactory类库:
47      * 如果缺少,会出现:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
48      * ----------// begin  //-----------------
49      * commons-logging-1.0.4.jar
50      * ----------// end 1个 //-----------------
51      * 
52      * 
53      * Hibernate的注解org/jboss/logging/BasicLogger类库:
54      * 如果缺少,会出现:java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
55      * ----------// begin  //-----------------
56      * jboss-logging-3.0.0.GA.jar
57      * ----------// end 1个 //-----------------
58      * 
59      * 
60      * 共:15个
61      */
62 }

运行结果:

=================================================================

代码部分:

=================================================================

/hibernate_demo/src/com/b510/hibernate/bean/Student.java

 1 /**
 2  * 
 3  */
 4 package com.b510.hibernate.bean;
 5 
 6 import javax.persistence.Column;
 7 import javax.persistence.Entity;
 8 import javax.persistence.GeneratedValue;
 9 import javax.persistence.Id;
10 
11 /**
12  * 学生类
13  * @author hongten<br>
14  * @date 2013-3-25
15  */
16 @Entity
17 public class Student {
18 
19     private Integer id;
20     /**
21      * 姓名
22      */
23     private String name;
24     /**
25      * 性别
26      */
27     private String sex;
28     /**
29      * 学号
30      */
31     private String no;
32     /**
33      * 年龄
34      */
35     private int age;
36 
37     @Id
38     @GeneratedValue
39     public Integer getId() {
40         return id;
41     }
42 
43     public void setId(Integer id) {
44         this.id = id;
45     }
46 
47     public String getName() {
48         return name;
49     }
50 
51     public void setName(String name) {
52         this.name = name;
53     }
54 
55     public String getSex() {
56         return sex;
57     }
58 
59     public void setSex(String sex) {
60         this.sex = sex;
61     }
62 
63     public String getNo() {
64         return no;
65     }
66 
67     public void setNo(String no) {
68         this.no = no;
69     }
70 
71     @Column(columnDefinition = "int default 0")
72     public int getAge() {
73         return age;
74     }
75 
76     public void setAge(int age) {
77         this.age = age;
78     }
79 
80 }

/hibernate_demo/src/com/b510/hibernate/utils/EntityManagerUtil.java

 1 /**
 2  * 
 3  */
 4 package com.b510.hibernate.utils;
 5 
 6 import javax.persistence.EntityManager;
 7 import javax.persistence.EntityManagerFactory;
 8 import javax.persistence.Persistence;
 9 
10 /**
11  * EntityManager工具类
12  * @author hongten<br>
13  * @date 2013-3-25
14  */
15 public class EntityManagerUtil {
16 
17     private static final String PERSISTENCE_UNIT_NAME = "myPersistence";
18     private static final EntityManagerFactory ENTITY_MANAGER_FACTORY = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
19     private static final EntityManager ENTITY_MANAGER;
20     
21     private EntityManagerUtil(){
22         //不做任何事儿
23     }
24     
25     //创建EntityManager实例
26     static {
27         ENTITY_MANAGER = ENTITY_MANAGER_FACTORY.createEntityManager();
28     }
29     
30     /**
31      * 获取EntityManager实例
32      * @return
33      */
34     public static EntityManager getEntityManagerInstance(){
35         return ENTITY_MANAGER == null ? ENTITY_MANAGER_FACTORY.createEntityManager() : ENTITY_MANAGER;
36     }
37     
38 }

/hibernate_demo/src/com/b510/hibernate/test/StudentTest.java

 1 /**
 2  * 
 3  */
 4 package com.b510.hibernate.test;
 5 
 6 import java.util.List;
 7 
 8 import javax.persistence.EntityManager;
 9 import javax.persistence.EntityTransaction;
10 
11 import com.b510.hibernate.bean.Student;
12 import com.b510.hibernate.utils.EntityManagerUtil;
13 
14 /**
15  * 测试类
16  * @author hongten<br>
17  * @date 2013-3-25
18  */
19 public class StudentTest {
20     
21     public static void main(String[] args) {
22         //studentAdd();
23         studentList();
24         //studentFindById(new Integer(1));
25         //studentMerge();
26     }
27     
28     /**
29      * 添加一条记录
30      */
31     public static void studentAdd(){
32         EntityManager entityManager = EntityManagerUtil.getEntityManagerInstance();
33         EntityTransaction entityTransaction = entityManager.getTransaction();
34         Student student = new Student();
35         student.setName("Tom Jhone");
36         student.setAge(21);
37         student.setSex("女");
38         student.setNo("2009081513");
39         
40         entityTransaction.begin();
41         entityManager.persist(student);
42         entityTransaction.commit();
43         entityManager.close();
44     }
45     
46     /**
47      * 查询所有的记录
48      */
49     @SuppressWarnings("unchecked")
50     public static void studentList(){
51         EntityManager entityManager = EntityManagerUtil.getEntityManagerInstance();
52         List<Student> students = entityManager.createQuery("from Student").getResultList();
53         
54         for(Student student : students){
55             System.out.println("学号:"+student.getNo()+"  姓名:"+student.getName()+"  性别:"+student.getSex()+"  年龄:"+student.getAge());
56         }
57         
58         entityManager.close();
59     }
60     
61     /**
62      * 根据id查询出相应记录
63      */
64     public static void studentFindById(Integer id){
65         EntityManager entityManager = EntityManagerUtil.getEntityManagerInstance();
66         Student student = entityManager.find(Student.class, id);
67         if(student != null){
68             System.out.println("学号:"+student.getNo()+"  姓名:"+student.getName()+"  性别:"+student.getSex()+"  年龄:"+student.getAge());
69         }
70         
71         entityManager.close();
72     }
73     
74     /**
75      * 更新数据
76      */
77     public static void studentMerge(){
78         EntityManager entityManager = EntityManagerUtil.getEntityManagerInstance();
79         EntityTransaction entityTransaction = entityManager.getTransaction();
80         entityTransaction.begin();
81         Integer id = 2;
82         Student student = entityManager.find(Student.class, id);
83         
84         if(student != null){
85             System.out.println("更新前....");
86             System.out.println("学号:"+student.getNo()+"  姓名:"+student.getName()+"  性别:"+student.getSex()+"  年龄:"+student.getAge());
87             student.setName("Hanyuan");
88             entityManager.merge(student);
89             entityTransaction.commit();
90         }
91         System.out.println("更新后....");
92         studentFindById(id);
93         entityManager.close();
94     }
95     
96 }

/hibernate_demo/src/META-INF/persistence.xml

 1 <persistence xmlns="http://java.sun.com/xml/ns/persistence"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
 4     http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
 5     version="2.0">
 6 
 7     <persistence-unit name="myPersistence">
 8         
 9         <provider>org.hibernate.ejb.HibernatePersistence</provider>
10         <properties>
11             <property name="hibernate.archive.autodetection" value="class" />
12             <property name="hibernate.show_sql" value="true" />
13             <property name="hibernate.format_sql" value="false" />
14             <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
15             <property name="use_sql_comments" value="true" />
16               
17             <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
18             <property name="hibernate.connection.url" value="jdbc:mysql://10.5.116.107:3306/mytest?characterEncoding=UTF-8" />
19             <property name="hibernate.connection.username" value="root" />
20             <property name="hibernate.connection.password" value="root" />
21             <property name="hibernate.hbm2ddl.auto" value="update" />
22         </properties>
23     </persistence-unit>
24 
25 </persistence>

很多初学者很头疼的一件事儿就是,老是配置不好Hibernate,其原因多数是Hibernate中的jar包不是很明白....

这里提供源码下载,希望能帮助那些该帮助的人....

源码下载http://files.cnblogs.com/hongten/hibernate_demo.rar

下载源码的时候,请进行一次评论....谢谢...最后希望能帮助那些该帮助的人....

分享到:
评论

相关推荐

    Hibernate Annotation入门

    总之,Hibernate Annotation为Java开发者提供了一种直观且强大的方式来处理数据库操作,让ORM变得更加简单易用。随着对它的不断学习和实践,你将能够更好地应对复杂的业务场景,提高软件的稳定性和可维护性。

    Hibernate Annotation 唯一外键一对一双向关联

    在数据库设计中,外键(Foreign Key)是用来建立和加强两个表之间联系的字段,它指向另一个表的主键,确保数据的一致性和完整性。在一对一关系中,两个实体之间通常会有一个共享的唯一标识,即一个实体的主键同时...

    Hibernate之第2解之-hibernate_demo_1_annotation

    【标签】"源码"提示我们这个压缩包可能包含了一份可运行的代码示例,用于演示Hibernate的用法。"工具"可能指的是Hibernate作为Java开发中的一个工具库,用于简化数据库操作。 【文件名称列表】"hibernate_demo_1_...

    Hibernate Annotation 共享主键一对一双向关联

    在Java的持久化框架中,Hibernate是一个非常常用且强大的ORM(对象关系映射)工具,它使得开发者可以方便地将数据库操作转化为面向对象的方式。在实际的项目开发中,我们经常遇到各种各样的关联关系,比如一对一、一...

    spring+hibernate annotation 完整示例,带数据库脚本

    这个"spring+hibernate annotation 完整示例,带数据库脚本"的项目,旨在提供一个全面的示例,帮助开发者了解如何在实际项目中结合Spring和Hibernate使用注解来实现数据访问。下面我们将深入探讨这些知识点。 1. **...

    第一个Hibernate with Annotation程式(转)

    【标题】"第一个Hibernate with Annotation程式(转)" 涉及到的是在Java开发中使用Hibernate ORM框架的一个基本示例,特别强调了使用注解(Annotation)的方式进行配置。Hibernate是一个强大的对象关系映射(ORM)...

    完整版spring hibernate整合采用annotation

    总的来说,"完整版spring hibernate整合采用annotation"是一个涵盖多个知识点的主题,包括Spring注解驱动开发、Hibernate的ORM注解、Spring与Hibernate的整合配置、事务管理以及相关的开发工具使用。通过深入学习和...

    spring_hibernate_annotation的三种实现

    Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的对象关系映射(ORM)工具,简化了Java应用程序对数据库的操作。当结合使用时,...

    hibernate3学习源码

    【hibernate3学习源码】是一个针对关系型数据库对象持久化的开源框架,它简化了Java应用程序与数据库之间的交互。本资源包含多个示例,涵盖了Hibernate中的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany...

    hibernate-validator-annotation-processor-5.1.0.CR1.zip

    Hibernate Validator 是一个流行的开源验证框架,它基于JSR 303/JSR 349(Bean Validation)标准,为Java应用程序提供了强大的数据验证功能。"Hibernate Validator Annotation Processor 5.1.0.CR1"是该框架的一个...

    Hibernate源码解析(二)

    在本篇《Hibernate源码解析(二)》中,我们将深入探讨Hibernate这一强大的Java对象关系映射(ORM)框架的内部工作原理。这篇博客旨在帮助开发者更好地理解Hibernate的核心机制,以便于更高效地利用它来处理数据库...

    Hibernate继承映射(annotation)

    **标题:“Hibernate继承映射(Annotation)详解”** 在Java持久化框架Hibernate中,继承映射是一种关键特性,它允许开发者将对象模型的继承结构映射到数据库的表结构。在传统的面向对象编程中,继承是实现代码复用和...

    spring3、 hibernate4 配置声明式事务管理(annotation方式)

    在Java开发中,Spring框架和Hibernate是两个非常重要的组件,它们分别用于依赖注入和对象关系映射。在实际项目中,事务管理是确保数据一致性的重要环节。本篇将详细介绍如何在Spring 3和Hibernate 4中配置声明式事务...

    Information by people_java编程_enjoyz2u_people_源码.zip

    标题中的"people_java编程_enjoyz2u_people_源码.zip"表明这是一份与Java编程相关的源码压缩包,可能包含某个项目或应用的源代码。从描述中我们并没有获得更多的具体信息,但可以推测这可能是个人或者团队分享的学习...

    Struts2 Spring Hibernate的配置及登录实例(附源码)

    Spring作为一个全面的框架,提供依赖注入(DI)和面向切面编程(AOP),以及事务管理等功能;Hibernate则是一个持久化框架,简化了数据库操作。将这三者集成可以构建出高效、可维护的Web应用。下面将详细介绍如何...

    Idea创建SpringBoot项目整合Hibernate.zip

    在本文中,我们将深入探讨如何使用IntelliJ IDEA(Idea)创建一个Spring Boot项目,并将其与Hibernate ORM框架整合。Spring Boot简化了Spring应用程序的初始设置和配置,而Hibernate则是Java领域广泛使用的对象关系...

    Hibernate annotation

    2. @Transient:标记一个属性为非持久化,Hibernate将忽略该属性。 3. @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_name"):使用序列生成主键,需要在数据库中创建对应的序列。 4. @...

Global site tag (gtag.js) - Google Analytics