- 浏览: 250489 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (179)
- Spring3.0 (28)
- HIbernate3.5.6 (35)
- Struts2.1.8 (42)
- JSP (1)
- Servlet (0)
- JAVASE (16)
- JavaWeb (1)
- javaEE (0)
- SSH2整合 (0)
- EJB (0)
- Oracle (7)
- Ajax (7)
- Quartz作业调度框架 (6)
- jsValidationFramework (1)
- FCKeditor (1)
- ExtJS (29)
- JSF (0)
- JPA (0)
- JBoss Seam (0)
- JSON (0)
- Webservice (0)
- JQuery (1)
- Javascript (1)
- Css+DIV (0)
- Lunch (0)
- Linux (0)
- PHP (0)
- XML (1)
- Ibatis (0)
- DWR (0)
- DWZ (0)
最新评论
-
Nabulio:
good
Spring配置SessionFactory -
唤流年:
[color=red][/color] ...
Spring配置SessionFactory -
wangcl011:
Oracle通过数据泵网络导入另一个数据库,不生成DMP文件, ...
oracle命令导入dmp文件 -
rochou:
第一个Hibernate实现CRUD -
ningwuyu:
Entity 类是那个jar里面的
PropertyUtils MethodUtils用法
0.创建webapp 带入hibernate包。
1.新建domain类:(com.zchen.user.domain)
package com.zchen.user.domain; import java.util.Date; public class User { private int id; private String name; private Date birthday; public int getId() { return id; } public void setId(int 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 birthday) { this.birthday = birthday; } }
2.配置映射文件user.hbm.xml(com.zchen.user.domain)
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.zchen.user.domain"> <class name="User" table="`user`"> <id name="id" column="`id`"> <generator class="native"> </generator> </id> <property name="name" unique="true"/> <property name="birthday"/> </class> </hibernate-mapping>
3.在src目录下创建hibernate.cfg.xml文件
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///user</property> <property name="connection.username">root</property> <property name="connection.password">mysqladmin</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">create</property> <mapping resource="com/zchen/user/domain/User.hbm.xml"/> </session-factory> </hibernate-configuration>
4.新建UserDao接口定义CRUD方法
package com.zchen.user.dao; import com.zchen.user.domain.User; public interface UserDao { public void saveUser(User user); public User findUserByName(String name); public User findUserById(int id); public void updateUser(User user); public void removeUser(User user); }
5.创建hibernate工具类得到session对象
package com.zchen.user.dao; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public final class HibernateUtil { private static SessionFactory sessionFactory; private HibernateUtil(){} static{ Configuration cfg = new Configuration(); cfg.configure(); //cfg.setProperty(propertyName, value) sessionFactory = cfg.buildSessionFactory(); } public static SessionFactory getSessionFactory() { return sessionFactory; } public static Session getSession(){ return sessionFactory.openSession(); } }
6.定义UserDaoHibernateImpl类实现UserDao接口
package com.zchen.user.dao.impl; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Restrictions; import com.zchen.user.dao.HibernateUtil; import com.zchen.user.dao.UserDao; import com.zchen.user.domain.User; public class UserDaoHibernateImpl implements UserDao { public User findUserById(int id) { Session session = null; User user = null; try { session = HibernateUtil.getSession(); user = (User)session.get(User.class,id); } catch (Exception e) { e.printStackTrace(); }finally{ if(session != null){ session.close(); } } return user; } public User findUserByName(String name) { /* String hql="from User as user where user.name=:n"; Query q = session.createQuery(hql); q.setString("n",name); User user = (User)q.uniqueResult(); */ Session session = null; User user = null; try { session = HibernateUtil.getSession(); Criteria c = session.createCriteria(User.class); c.add(Restrictions.eq("name", name)); user = (User)c.uniqueResult(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session != null){ session.close(); } } return user; } public void removeUser(User user) { Session session = null; Transaction tx = null; try { session = HibernateUtil.getSession(); tx = session.beginTransaction(); //可以传id 然后用user.setId(id);再将user作为变量delete(user) session.delete(user); tx.commit(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session != null){ session.close(); } } } public void saveUser(User user) { Session session = null; Transaction tx = null; try { session = HibernateUtil.getSession(); tx = session.beginTransaction(); session.save(user); tx.commit(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session != null){ session.close(); } } } public void updateUser(User user) { Session session = null; Transaction tx = null; try { session = HibernateUtil.getSession(); tx = session.beginTransaction(); session.update(user); tx.commit(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session != null){ session.close(); } } } }
测试:
package test; import java.util.Date; import com.zchen.user.dao.UserDao; import com.zchen.user.dao.impl.UserDaoHibernateImpl; import com.zchen.user.domain.User; public class DaoTest { public static void main(String[] args) { // TODO Auto-generated method stub UserDao dao = new UserDaoHibernateImpl(); User user = new User(); user.setName("admin"); user.setBirthday(new Date()); System.out.println("11111"); dao.saveUser(user); user.setName("zchen"); System.out.println("22222"); dao.updateUser(user); User u = dao.findUserByName(user.getName()); System.out.println("33333"); dao.removeUser(u); } }
发表评论
-
Hibernate 1+N 问题
2011-06-03 08:17 12261+N问题的描述:举例,多个主题(Topic)属于一个帖子( ... -
多对多双向关联
2011-06-02 21:38 1019老师和学生: Annotation配置: packa ... -
多对多单向关联
2011-06-02 21:28 831老师和学生: Annotation配置: pack ... -
一对多和多对一双向关联
2011-06-02 20:42 1028一个组有多个用户 一个用户只能属于一个组 在用户表里面有组的外 ... -
一对多单向关联
2011-06-02 19:10 842组和用户 一个组有多个用户,一个用户只能属于一个组: 表结 ... -
多对一单向关联
2011-06-02 18:56 833组和人员: 一个组有多个人员,一个人员属于一个组 在用户表里 ... -
关联关系的联合主键映射
2011-06-02 18:24 1048丈夫和妻子 其中妻子表的主键由id和name组成 ,丈夫和妻子 ... -
枚举映射和不映射的属性配置
2011-06-02 17:54 948import java.util.Date; impor ... -
一对一单双向主键关联-xml
2011-06-02 17:45 1219用户表和用户信息表: 规定:用户信息表中的id主键由用户表生 ... -
一对一双向外键关联
2011-06-02 17:15 965妻子和丈夫: 在丈夫表里面有妻子的外键 学生和学生证: ... -
一对一单向外键关联
2011-06-02 17:01 1106一对一单向外键关联 分为Annotation和xml方式: ... -
Configuration取配置文件 以及取得Session的两种方法的区别
2011-06-02 12:55 1086在得到SessionFactory的时候要先取得配置文件:Hi ... -
联合主键--Annotation
2011-06-02 12:23 1321联合主键Annotation配置方法有三种: 1.将组件类注 ... -
联合主键--xml
2011-06-02 11:41 1136需求: 在T_STUDENTS表中 要将ID和NAME联合作 ... -
Hibernate设置使用C3P0连接池
2010-12-18 16:37 9931.导入jar文件 2.修改hibernate.cfg.xm ... -
Hibernate设置使用Tomcat中的连接池
2010-12-18 16:31 10851.修改Tomcat的context.xml文件 <C ... -
hibernate.cfg.xml
2010-12-18 15:30 867<?xml version='1.0' encoding ... -
Session和SessionFactory的多线程问题
2010-12-06 15:20 1203Session:是非线程安全的,生命周期较短,代表一个和数据库 ... -
Hibernate的拦截器与监听器
2010-12-06 14:57 1069定义监听器并继承SaveOrUpdateEventListen ... -
Hibernate使用命名查询
2010-12-06 14:37 959命名查询:就是在配置文件里面定义好sql语句。 简单示 ...
相关推荐
Hibernate是JPA的一个实现,提供了丰富的特性和优化,如缓存机制、第二级缓存、查询语言HQL等。 在审计日志的实现中,一种常见方法是使用AOP(面向切面编程)。AOP允许我们在不修改原有业务逻辑的情况下,添加额外...
Hibernate提供了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的),提高数据访问速度。 通过学习"Hibernate-CRUD"项目,开发者将深入理解如何在Java应用中利用Hibernate进行数据库操作,提升开发...
【我的第一个Hibernate程序】这篇文章是关于初学者如何创建并运行第一个Hibernate程序的详细教程。Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的编程,简化了数据...
《Hibernate入门:初识与实践》 ...总之,"hibernate第一个hibernate"项目是一个绝佳的起点,它将引导你了解并掌握Hibernate的基本概念和操作。通过实践,你可以逐步熟悉ORM思想,为后续的Java开发奠定坚实的基础。
标题“菜鸟快速运行第一个hibernate”表明了这是一个针对初学者的教程,旨在帮助他们快速上手并成功运行他们的第一个Hibernate项目。Hibernate是一个强大的Java ORM(对象关系映射)框架,它简化了数据库操作,使得...
在提供的文档“第一个Hibernate程序.doc”和源代码文件“FirstHibernate”中,你可以找到更具体的实现细节和解释,这对于理解并实践你的第一个Hibernate程序非常有帮助。通过这个起点,你可以进一步探索Hibernate的...
**标题解析:**“hibernate的第一个例子”表明这是一个关于Hibernate框架的基础教程,主要目标是展示如何使用Hibernate进行数据持久化操作。 **描述分析:**描述提到这是一个超级简单的例子,包含一个持久化对象...
本文将深入探讨“hibernateCRUD”主题,主要关注使用Hibernate进行基本的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。 一、Hibernate简介 Hibernate是Java领域内广泛使用的ORM框架,它允许...
【hibernate第一个例子】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本示例将引导初学者了解如何使用Hibernate进行简单的数据库连接和操作。 首先,我们需要...
通过Hibernate,我们可以将Java对象与数据库中的表进行映射,实现对象的CRUD(创建、读取、更新、删除)操作。 1. **对象关系映射(ORM)概念** ORM是将数据库中的表格数据映射到面向对象模型的一种技术。它允许...
Hibernate第一天(Hibernate的环境搭建、Hibernate的API、Hibernate的CRUD)-附件资源
在【压缩包子文件的文件名称列表】中,"springMVC_01_H(succeed)"可能是一个步骤式的教程或者项目文件,其中的"H"可能代表Hibernate,表明这是系列教程或项目的第一部分,且已经成功完成。通常,这样的文件夹会包含...
【标题】"基于Struts2+Spring2+Hibernate3的CRUD(附源代码)" 描述了一种常见的Java Web开发框架组合,用于实现创建、读取、更新和删除(CRUD)操作。这个项目结合了Struts2作为MVC框架,Spring2负责依赖注入和事务...
在这个“hibernate人生中第一个成功及完美程序”中,我们将深入探讨Hibernate的基本概念、核心功能以及如何构建一个简单的示例应用。 一、Hibernate概述 Hibernate是一个开源的ORM框架,它的主要任务是将Java对象与...
"第一个手写Hibernate"项目旨在帮助开发者深入理解Hibernate的工作原理,通过手动编写相关代码,以实践的方式来学习和掌握Hibernate的核心概念。 **一、Hibernate简介** Hibernate是一个开源的ORM框架,它允许...
本教程将引导你了解并实现“我的第一个Hibernate程序”,带你入门这个强大的ORM(对象关系映射)工具。 一、Hibernate简介 Hibernate是Java领域中最流行的ORM框架之一,它允许我们将Java对象与数据库表进行映射,...
在本文中,我们将深入探讨如何创建Hibernate的第一个例子,帮助初学者快速入门。** **一、Hibernate 简介** Hibernate 提供了丰富的API,简化了Java应用程序与关系数据库之间的交互。它通过XML配置文件或注解来定义...
Hibernate3是Hibernate的第三个主要版本,它在性能和功能上都有所提升,同时也保持了与前一版本的良好兼容性。 首先,理解Hibernate的核心概念是至关重要的。ORM允许开发者使用面向对象的方式来操作数据库,而无需...