`
dr2tr
  • 浏览: 142255 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate起步尝试

阅读更多

 

首先是寻找使用Hibernate3.0的Eclipse插件。官方站上提供了Hibernate Tools,这个东西看Manual是很不错的,但是实际用起来,却总是没能成功(也许是版本问题,我用Eclipse3.1.2,还有一个Lomboz,试了这个tool的3.1Beta和3.2beta,要么就是根本没有相关文件生成,要么就是缺文件,原因不明)。经过一天多的尝试,决定暂时先放弃这个工具。

后来用的是一个叫Hibernate Synchronizer的工具,这个终于摸出点头绪。(需要注意的是,网上很多文章给出的它的安装地址是不对的,现在可以到sourceforge上查到)。

接着是看了一些基本的东西。有关ORM的概念是知道的,但是实际用还是有些问题。比如在Hibernate的hbm文件中,似乎必须要指定一个关键字,如果没有,似乎就不行。具体因为我才刚开始用,所以以后应该会了解得多些。

还有一个是有关于thread-local变量的概念。在Java里有直接的java.lang.ThreadLocal类存在。这个类,顾名思义,是线程局部类,实现原理是在每个线程中维护一个该类的副本,并能够在各线程中单独修改该值。这个类在牵涉到线程变量共享冲突的时候是很有用的。在Hibernate中用到,主要是在获取session的时候,有一种简单的工具类写法:

 

import org.hibernate.*;
import org.hibernate.cfg.*;

public class HibernateUtil ...{

    
public static final SessionFactory sessionFactory;

    
static ...{
        
try ...{
            
// Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new Configuration().configure().buildSessionFactory();
        }
 catch (Throwable ex) ...{
            
// Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            
throw new ExceptionInInitializerError(ex);
        }

    }


    
public static final ThreadLocal session = new ThreadLocal();

    
public static Session currentSession() throws HibernateException ...{
        Session s 
= (Session) session.get();
        
// Open a new Session, if this thread has none yet
        if (s == null...{
            s 
= sessionFactory.openSession();
            
// Store it in the ThreadLocal variable
            session.set(s);
        }

        
return s;
    }


    
public static void closeSession() throws HibernateException ...{
        Session s 
= (Session) session.get();
        
if (s != null)
            s.close();
        session.set(
null);
    }

}

(上面的 代码摘自Hibernate3手册)。在上面的代码中,

public static final ThreadLocal session = new ThreadLocal();

的使用,使得在多个Thread使用这个工具类时,不会发生session共享冲突的问题。

 

这段时间打算体会一下Hibernate,接下来我会整理出一些基本操作的方法

分享到:
评论

相关推荐

    miaosha_java_miaosha_

    1. **SpringBoot**:SpringBoot简化了Spring的配置,提供了自动配置、起步依赖等功能,使得开发者可以快速构建可运行的独立应用。它内置了Tomcat服务器,方便部署。 2. **Hibernate**:Hibernate作为ORM工具,将...

    SpringBoot:尝试SpringBoot

    1. **起步依赖(Starters)**:SpringBoot 通过一系列的起步依赖来简化 Maven 或 Gradle 配置。比如 `spring-boot-starter-web` 就包含了运行一个 Web 应用所需的所有依赖,包括 Tomcat 服务器和 Spring MVC。 2. *...

    java springboot

    在数据访问方面,Spring Boot支持多种数据库,如MySQL、PostgreSQL等,同时提供了JPA(Java Persistence API)和Hibernate等ORM框架的集成。通过@Entity和@Repository注解,开发者可以方便地进行对象关系映射和数据...

    springboot资源包

    例如,如果类路径下有`hibernate-entitymanager`,那么Spring Boot会自动配置JPA。 4. **Actuator**:Spring Boot Actuator提供了许多端点来监控和管理应用程序,如健康检查、审计、指标、日志级别调整等。 5. **...

    Spring.in.Action.rar 文档及源代码

    5. **Spring Boot**:展示了Spring Boot的快速开发特性,如自动配置、起步依赖等。 6. **Spring Security**:涵盖Spring Security的基本用法,如认证、授权、CSRF保护等。 通过这个压缩包,你可以系统性地学习...

    hajiboot:尝试“第一次 Spring Boot”

    【标题】:“hajiboot:尝试‘第一次 Spring Boot’” 在本文中,我们将深入探讨“第一次 Spring Boot”的体验,以“hajiboot”项目为例。Spring Boot 是由 Pivotal 团队开发的一个框架,它旨在简化创建独立的、...

    springboot初学小实例

    例如,如果项目中有`hibernate-jpa-2.1-api`,SpringBoot将自动配置JPA。 4. **SpringApplication**:这是SpringBoot应用的入口,通过`SpringApplication.run()`方法启动应用。 5. **YAML/Properties配置**:...

    spring-boot-1.1.3.RELEASE.tar.gz

    1. **起步依赖(Starter Dependencies)**:SpringBoot 通过起步依赖提供了一种快速配置的方式,比如 `spring-boot-starter-web` 用于构建 Web 应用,`spring-boot-starter-data-jpa` 用于 JPA 数据访问等。...

    springboot入门项目

    1. **起步依赖(Starter Dependencies)**:Spring Boot 提供了一组预配置的 Maven 或 Gradle 依赖,称为“起步依赖”。通过在项目中引入这些依赖,你可以轻松地添加需要的功能,如 Web、数据访问、缓存等。 2. **...

    学习sporting boot的感悟.pdf

    5. 数据访问:了解如何集成数据库,包括 JPA 和 Hibernate,以及如何使用 Spring Data 进行数据操作。 6. 安全管理:学习 Spring Security,理解权限控制、认证和授权的基本原理。 7. 整合其他服务:如集成 Redis 或...

    spring-boot-practice-demo-master.zip

    1. **起步依赖(Starter Dependencies)**: SpringBoot通过起步依赖来简化Maven或Gradle的配置。这些依赖包含了启动特定功能所需的所有依赖,如数据访问、Web服务等,使得开发者无需手动管理大量的依赖。 2. **...

    实战SpringBoot

    - **起步依赖(Starter POMs)**:通过引入特定的起步依赖,如`spring-boot-starter-web`,可以快速搭建Web应用环境。 - **内嵌式Servlet容器**:Spring Boot默认集成了Tomcat或Jetty等Servlet容器,无需额外部署...

    Spring study code

    Spring Data是一个用于简化数据访问的项目,它支持多种数据存储技术,如JPA、Hibernate、JDBC等。Spring Data提供了统一的API,使得与数据库的交互变得简单,减少了大量的模板代码。 Spring Security是用于身份验证...

    Spring进阶

    最后,Spring的数据访问层提供了对各种数据库的支持,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和MyBatis等。Spring Data项目进一步简化了与数据库的交互,提供了便捷的CRUD操作和查询方法生成。 ...

    基于SSM的智能制造系统源码.zip

    它通过内置的Tomcat服务器、自动配置特性以及起步依赖,使得创建独立运行的Spring应用程序变得简单。 **SSH框架**: SSH指的是Struts2、Spring和Hibernate的组合,是早期广泛使用的Java Web开发框架。Struts2负责...

    从零开始学Spring Boot1

    当我们访问应用的URL时,Spring Boot会尝试在应用的/META-INF/resources/、/resources/、/static/、/public/这些目录下查找对应的资源文件。如果需要自定义静态资源的路径,可以通过配置@EnableWebMvc并在...

    SpringBoot学习总结

    1. 入门阶段:理解SpringBoot的核心特性,包括自动配置、起步依赖、命令行界面(CLI)等。了解如何创建一个基本的SpringBoot项目,通过`spring init`命令或者在线配置生成项目结构,以及如何运行SpringBoot应用。 2...

    Spring应用开发代码

    此外,Spring还提供了数据访问集成,包括JDBC抽象层,ORM(Object-Relational Mapping)支持,如Hibernate、MyBatis等,使得数据库操作更加简单。在"Spring应用开发代码"中,你可能找到关于如何使用Spring与各种持久...

    SpringBoot微服务搭建代码下载 源码

    1. **SpringBoot核心概念**:理解自动配置、起步依赖、内嵌式Servlet容器等SpringBoot特性,以及如何通过`@SpringBootApplication`注解启动应用。 2. **Spring Boot配置**:学习如何在application.properties或...

    弹簧靴训练

    - **微服务实战**:如果条件允许,尝试构建一个微服务架构的项目,体验Spring Cloud的组件和服务发现。 5. **资源推荐**: - 官方文档:Spring Boot的官方文档是非常全面的参考资料。 - 在线课程:如Coursera、...

Global site tag (gtag.js) - Google Analytics