实体类:Users.java
package com.liufei.hibernate.domain;
import java.util.Date;
public class Users {
private String id;
private String name;
private Date birthday;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date date) {
this.birthday = date;
}
}
对应的映射文件:Users.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package = "com.liufei.hibernate.domain">
<class name = "Users">
<id name = "id">
<generator class = "native"/>
</id>
<property name = "name"/>
<property name = "birthday"/>
</class>
</hibernate-mapping>
hibernate配置文件:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="foo">
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">liufei</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/liufei/hibernate/domain/Users.hbm.xml"/>
</session-factory>
</hibernate-configuration>
由实体类映射表结构:
package com.liufei.hibernate.domain;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
*
* @author 刘飞
*
*/
public class ExportDB {
/**
*
* @param cfg
* @return boolean
*/
public boolean exportDB(Configuration cfg) {
boolean flag = false;
SchemaExport export = new SchemaExport(cfg);
if (export != null) {
export.create(true, true);
flag = true;
}
return flag;
}
/*
* public static void main(String[] args) { Configuration cfg=new
* Configuration().configure(); SchemaExport export=new SchemaExport(cfg);
* export.create(true, true); }
*/
}
测试类:
package com.liufei.test;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.liufei.hibernate.domain.ExportDB;
import com.liufei.hibernate.domain.Users;
/**
*
* @author 刘飞
*
*/
public class Base {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration cfg = new Configuration().configure();
ExportDB edb = new ExportDB() ;
if(edb.exportDB(cfg)){
try{
SessionFactory sf = cfg.buildSessionFactory();
Session s = sf.openSession();
Transaction tx = s.beginTransaction();
Users user = new Users();
user.setId("3");
user.setBirthday(new Date());
user.setName("liufei");
s.save(user);
tx.commit();
s.close();
}catch(Exception e){
e.printStackTrace() ;
}
}
System.out.println("end");
}
}
以上仅供入门者参考!
建议使用如下的方法优化:
package com.liufei.hibernate.domain;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
* Hibernate初始化以及一些基本操作的工具类
* @author 刘飞
*
*/
public class HibernateUtil {
private static SessionFactory sessionFactory ;
private static Configuration configuration ;
/**
* 指定该类不可以被继承
*/
private HibernateUtil(){
}
/**
* configure(Document document);
* configure(File configFile);
* configure(String resource);
* configure(URL url);
*/
static {
configuration = new Configuration().configure() ;
try{
sessionFactory = configuration.buildSessionFactory() ;
}catch(HibernateException e){
e.printStackTrace() ;
}
}
/**
* 由实体类自动创建数据库表结构
*/
public static void exportDB(){
SchemaExport export=new SchemaExport(configuration);
export.create(true, true);
}
/**
* 向表中插入一个元组的数据
* @param table
*/
public static void addTable(Object table){
Session s = null ;
Transaction tx = null ;
try{
s = getSession() ;
tx = s.beginTransaction() ;
s.save(table) ;
tx.commit() ;
}catch(HibernateException e){
if(tx != null){
tx.rollback() ;
}
throw e ;
}finally{
if(s != null){
s.close() ;
}
}
}
/**
* 获取Session对象
* @return Session
*/
public static Session getSession(){
return sessionFactory.openSession() ;
}
/**
* 返回 SessionFactory 对象
* @return SessionFactory
*/
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* 设置由外部传入的 SessionFactory 对象
* @param sessionFactory
*/
public static void setSessionFactory(SessionFactory sessionFactory) {
HibernateUtil.sessionFactory = sessionFactory;
}
}
分享到:
相关推荐
【标题】"HibernateDemo"是一个基于Java的开源对象关系映射框架示例,它用于简化数据库操作。这个压缩包提供了一个简单的入门项目,帮助初学者理解如何使用Hibernate框架。通过这个例子,我们可以深入学习Hibernate...
这是我用空闲时间写的hibernatedemo的例子,试用于刚接触的java中hibernate框架的群体
在这个“hibernate说明及demo的例子”中,我们将深入探讨Hibernate的核心概念和功能,并通过一个实际的示例来展示如何使用它。 一、Hibernate概述 Hibernate是一个强大的工具,它消除了JDBC代码的繁琐,提供了数据...
在这个"android hibernate demo例子"中,开发者可能使用了一个特殊的方法或者第三方库来使Hibernate在Android上运行。 这个"OrmDemo"项目包含以下关键组件: 1. **实体类(Entity Classes)**:这些是与数据库表...
【hibernate第一个例子】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本示例将引导初学者了解如何使用Hibernate进行简单的数据库连接和操作。 首先,我们需要...
在本示例中,我们探讨的是一个基于...总之,这个“spring3.2 hibernate4 demo CRUD”实例提供了一个完整的、实战性的学习平台,帮助开发者快速上手Spring和Hibernate的整合,理解如何在Java Web开发中有效地管理数据。
让我们深入探讨这个小例子中的关键知识点。 **1. SpringMVC框架** SpringMVC是Spring框架的一部分,专门用于构建Web应用程序。它遵循模型-视图-控制器(MVC)架构模式,将业务逻辑、用户界面和数据访问分离开来,以...
本文将深入探讨如何结合 Spring 的注解配置与 Hibernate 实现数据持久化,通过一个实际的 demo 示例来阐述整个过程。 首先,Spring 框架以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
在Java开发领域,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本示例将深入解析一个基于Hibernate的简单应用,帮助开发者理解其基本概念和工作流程。 首先,我们需要...
Struts、Hibernate和Spring是Java开发中非常著名的三个框架,它们分别是MVC(Model-View-Controller)架构模式、持久层管理...虽然只是一个小例子,但涵盖了Web应用开发中的关键组件,对于提升Java EE技能非常有帮助。
总的来说,`HibernateDemo`是一个很好的起点,用于学习如何在Java应用中集成Hibernate和MySQL。通过深入研究这个实例,你可以掌握ORM的基本概念,以及如何在实际项目中利用这些工具提高开发效率。
本人手打的项目 里面包含spring整合当下流行框架的例子和整理好的jar 包含的例子:Spring+SpringMVC+Hibernate,Spring+SpringMVC+Mybatis spring+jdbc
标题"hibernatedemo例子"表明这是一个关于Hibernate的示例项目,Hibernate是一个Java语言中的对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库交互,避免了传统的SQL语句操作。描述中的重复内容...
Spring+SpringMVC+Hibernate 模板,使用了IntelliJ IDEA,不过MyEclipse用起来问题不大,maven管理...里面只有基本配置,没有各层的代码的,算是一个基本的Demo,每次新建项目的时候可以参考一下,希望能够帮助到大家~
2. **Hibernate**:这是一个流行的ORM(对象关系映射)框架,用于简化数据库操作。它允许开发者通过Java对象来操作数据库,而无需编写SQL语句。Hibernate支持JTA事务,可以在分布式环境中参与事务处理。 3. **JTA**...
**Hibernate框架**是一个强大的ORM(Object-Relational Mapping)工具,它简化了Java应用与数据库之间的交互。Hibernate允许开发者用Java对象模型来表示数据库表,通过HQL(Hibernate Query Language)进行数据查询...
总的来说,这个"Struts1+Hibernate+Spring开发例子"是一个基础的Java Web应用程序,它展示了如何将这三个框架整合在一起,实现对数据库的CRUD操作。对于初学者来说,这是一个很好的起点,可以帮助理解SSH框架间的...
测试SSH Demo时,可以创建一个简单的用户登录或注册功能,涉及Action、Service、DAO以及相应的数据库交互。"testSSH"可能是一个测试用例或者测试目录,用于验证整个SSH整合是否正常工作,比如可以包含测试用户的账号...
shiro的功能很强大,于是学习学习。感谢一个老外,参照他的代码,把它的maven工程改成了我们通常的eclipse web工程(有jar包),做了些修改。在eclipse里导入即可跑起来。数据库在包里面。(禁止用作商业用途)。
Hibernate支持各种关系映射,例如,一个用户可以有多个订单(一对多),一个订单对应一个用户(多对一),一个用户可以参加多个项目,一个项目也可以有多个用户(多对多)。通过`@OneToMany`, `@ManyToOne`, 和`@...