入门教程,高手请留情!
直接帖代码:
TestMain:
package com.cracker;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class TestMain {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction st = session.beginTransaction();
User user = new User();
user.setName("cracker");
user.setPassword("cracker");
session.save(user);
st.commit();
session.close();
}
}
HibernateSessionFactory (MyEcliplse自动生成的):
package com.cracker;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution. Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html }.
*/
public class HibernateSessionFactory {
/**
* Location of hibernate.cfg.xml file.
* Location should be on the classpath as Hibernate uses
* #resourceAsStream style lookup for its configuration file.
* The default classpath location of the hibernate config file is
* in the default package. Use #setConfigFile() to update
* the location of the configuration file for the current session.
*/
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static Configuration configuration = new Configuration();
private static org.hibernate.SessionFactory sessionFactory;
private static String configFile = CONFIG_FILE_LOCATION;
static {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateSessionFactory() {
}
/**
* Returns the ThreadLocal Session instance. Lazy initialize
* the <code>SessionFactory</code> if needed.
*
* @return Session
* @throws HibernateException
*/
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
return session;
}
/**
* Rebuild hibernate session factory
*
*/
public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
/**
* Close the single hibernate session instance.
*
* @throws HibernateException
*/
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
/**
* return session factory
*
*/
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* return session factory
*
* session factory will be rebuilded in the next call
*/
public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}
/**
* return hibernate configuration
*
*/
public static Configuration getConfiguration() {
return configuration;
}
}
User.hbm.xml:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.cracker">
<class name="User" table="t_user">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<property name="password"></property>
</class>
</hibernate-mapping>
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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">jdbc:mysql://localhost:3306/one</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="hbm2ddl.auto">create</property>
<property name="show_sql">true</property>
<mapping resource="com/cracker/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
在导入Mysql的驱动包,新建数据库one, 运行TestMain,出来Hibernate: insert into t_user (name, password) values (?, ?)。表明该实例成功!
分享到:
相关推荐
【hibernate入门--第一个实例】 Hibernate 是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。通过使用Hibernate,我们可以将数据库操作转换为对Java对象的操作,从而简化了数据库...
**标题解析:**“hibernate的第一个例子”表明这是一个关于Hibernate框架的基础教程,主要目标是展示如何使用Hibernate进行数据持久化操作。 **描述分析:**描述提到这是一个超级简单的例子,包含一个持久化对象...
9. **缓存机制**:Hibernate提供了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的),理解它们的工作原理和优化策略。 10. **性能调优**:了解如何通过批处理、延迟加载、缓存策略等方式提升...
hibernate3应用实例hibernate3应用实例hibernate3应用实例hibernate3应用实例
9. **缓存机制**:Hibernate 3引入了第一级缓存(Session级别的缓存)和第二级缓存(SessionFactory级别的缓存),以提高性能。 10. **关联映射**:包括一对一(OneToOne)、一对多(OneToMany)、多对一...
Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来处理数据库交互,而无需编写大量的SQL代码。在Java开发中,Hibernate简化了数据访问层的工作,尤其在大型项目中,它可以...
描述中提到"这是一个Hibernate实例,使用oracel数据库,并用junit和自定义类分别进行了测试",这暗示我们将深入学习如何配置Hibernate以连接Oracle数据库,以及如何利用JUnit进行单元测试和自定义测试类以确保代码的...
**一个Hibernate的简单实例** 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本实例旨在为初学者提供一个基础的Hibernate使用教程,帮助理解其基本概念和工作流程。...
具体到文件"hitest",这可能是项目的一个测试部分或者一个示例应用,可能包含了配置文件(如`spring-context.xml`,`hibernate.cfg.xml`)、实体类(Entity)、DAO(Data Access Object)层、Service层、Controller...
《Hibernate5实例程序》是一份专为学习Hibernate5框架所编写的代码实例集。Hibernate作为Java领域中的一款主流对象关系映射(ORM)工具,极大地简化了数据库操作,使得开发者能够更加专注于业务逻辑,而非底层的SQL...
这篇名为"spring整合hibernate实例"的内容,显然是关于如何将这两个框架协同工作,构建一个高效、灵活的Java应用的教程。在整合过程中,我们将探讨以下几个关键知识点: 1. **Spring的ApplicationContext**: 这是...
《Hibernate入门:初识与实践》 ...总之,"hibernate第一个hibernate"项目是一个绝佳的起点,它将引导你了解并掌握Hibernate的基本概念和操作。通过实践,你可以逐步熟悉ORM思想,为后续的Java开发奠定坚实的基础。
9. **缓存机制**:第一级缓存和第二级缓存的使用,提高性能。 10. **实体生命周期**:了解Hibernate中实体的瞬时、持久化、托管和脱管状态。 11. **级联操作**:如何配置和使用级联保存、更新、删除等操作。 12. **...
当我们谈论"spring_hibernate整合实例"时,意味着我们将这两个框架结合在一起,以实现更高效、更模块化的后端开发。 首先,Spring和Hibernate的整合主要涉及以下几个核心概念: 1. **依赖注入(DI)**:Spring的...
Hibernate 是一个开源的O/R mappimg的框架,基于JDBC...另外还有两个东东,一个是class2hbm,与第一个相反,是根据class来导出映射文件的。还有一个ddl2hbm,是根据数据库来导出表结构,并生成映射文件和POJO class。
而 Hibernate 则是一个 ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以使用 Java 对象来处理数据库事务。 Spring 框架的核心特性包括: 1. **依赖注入(Dependency Injection, DI)**:Spring 使用...
struts2+hibernate简单应用实例struts2+hibernate简单应用实例struts2+hibernate简单应用实例
本实例将详细介绍如何将 SpringMVC 与 Hibernate 结合,以创建一个简单的 Web 应用程序,并使用 MySQL 数据库进行数据存储。 首先,SpringMVC 是 Spring 框架的一个模块,它负责处理 HTTP 请求并返回响应。它的核心...
【购物车实例(Struts+Hibernate)】是一个典型的Web应用开发案例,主要针对那些刚开始学习Struts和Hibernate框架的开发者。这个实例通过实现一个在线购物车的功能,帮助开发者理解这两个框架如何协同工作来构建实际...