`

hibernate CRUD模板

阅读更多

实验步骤:

1.设计domain对象User。

2.设计UserDao接口。

3.加入hibernate.jar和其依赖的包。

4.编写User.hbm.xml映射文件,可以基于hibernate/eg目录下的org/hibernate/auction/User.hbm.xml修改。

5.编写hibernate.cfg.xml配置文件,可以基于hibernate/etc/hibernate.cfg.xml修改;必须提供的几个参数:
 connection.driver_class、connection.url、connection.username、connection.password、dialect、hbm2ddl.auto。

6.编写HibernateUtils类,主要用来完成Hibnerate初始化和提供一个获得Session的方法;这步可选。

7.实现UserDao接口。

package com.eric.hibernate.Domain;

import java.util.Date;

public class User {
	
	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;
	}
	private int id;
	private String name;
	private Date birthday;
	
}

 

 

package com.eric.hibernate.Dao;

import com.eric.hibernate.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);
}

 

 

<?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.eric.hibernate.Domain">

	<class name="User" table="user">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="name" unique="true"/>
		<property name="birthday"/>
	</class>
</hibernate-mapping>

 

 

<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql:///hibernate</property>
		<property name="connection.username">root</property>
		<property name="connection.password">789+</property>
		
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<!-- 自动建表 -->
		<property name="hbm2ddl.auto">create</property>
		<!-- 控制台打印出SQL语句 -->
		<property name="show_sql">true</property>

		<!--  
		<class-cache class="com.eric.hibernate.Domain.User" usage="read-only"/>
		-->
		<mapping resource="com/eric/hibernate/Domain/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

 

 

package com.eric.Utils;

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();
		sessionFactory = cfg.buildSessionFactory();
	}
	
	// 获取sessionFactory的方法
	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	
	// 获取session的方法
	public static Session getSession(){
		return sessionFactory.openSession();
	}
}

 

 

package com.eric.hibernate.Dao.Impl;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.eric.Utils.hibernateUtil;
import com.eric.hibernate.Dao.UserDAO;
import com.eric.hibernate.Domain.User;

public class UserDAOImpl implements UserDAO {

	// 保存用户
	public void saveUser(User user) {
		Session s = null;
		Transaction tx = null;
		try{
			s = hibernateUtil.getSession();
			tx = s.beginTransaction();
			s.save(user);
			tx.commit();
		}catch (HibernateException e) {
			if(tx != null){
				tx.rollback();
			}
			throw e;
		}finally{
			if(s != null){
				s.close();
			}
		}
	}

	// 根据name查找用户
	public User findUserByName(String name) {
		Session s = null ;
		try{
			s = hibernateUtil.getSession();
			String hql = "from User as user where user.name=:name";
			Query query = s.createQuery(hql);
			query.setString("name", name);
			User user = (User) query.uniqueResult();
			return user;
		}finally{
			if(s != null){
				s.close();
			}
		}
	}

	// 根据id查找用户
	public User findUserById(int id) {
		Session s = null ;
		try{
			s = hibernateUtil.getSession();
			User user = (User) s.get(User.class, id);
			return user;
		}finally{
			if(s != null)
			{
				s.close();
			}
		}
	}

	// 更新用户
	public void updateUser(User user) {
		Session s = null;
		Transaction tx = null;
		try{
			s = hibernateUtil.getSession();
			tx = s.beginTransaction();
			s.update(user);
			tx.commit();
		}catch (HibernateException e) {
			if(tx != null){
				tx.rollback();
			}
			throw e;
		}finally{
			if(s != null){
				s.close();
			}
		}
	}
	
	// 删除用户
	public void removeUser(User user) {
		Session s = null;
		Transaction tx = null;
		try{
			s = hibernateUtil.getSession();
			tx = s.beginTransaction();
			s.delete(user);
			tx.commit();
		}catch (HibernateException e) {
			if(tx != null){
				tx.rollback();
			}
			throw e;
		}finally{
			if(s != null){
				s.close();
			}
		}
	}
}

 

 

 

 

附加:log4j.xml

 

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
  
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
  
    <appender name="appender1"  
        class="org.apache.log4j.RollingFileAppender">  
        <param name="File" value="logfile08.html" />  
        <param name="MaxFileSize" value="1MB" />  
        <param name="MaxBackupIndex" value="5" />  
        <layout class="org.apache.log4j.HTMLLayout">  
        </layout>  
    </appender>  
  
    <root>  
        <level value="debug" />  
        <appender-ref ref="appender1" />  
    </root>  
</log4j:configuration>  

 

 

 

分享到:
评论

相关推荐

    Hibernate-CRUD自用基础模板

    **Hibernate CRUD 自用基础模板详解** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了 Java 应用程序与数据库之间的交互。在Java开发中,CRUD(Create, Read, Update, Delete)是数据库操作的基础,...

    Struts2+spring+hibernate项目模板例子

    6. **开发实践**:在实际开发中,SSH模板项目会提供一套基础的登录注册、CRUD操作示例,帮助开发者快速理解和上手。这些示例通常包括用户管理、角色管理和权限控制等常见功能。 7. **优化与扩展**:随着项目的演进...

    hibernate模板项目

    《Hibernate模板项目详解》 在Java开发领域,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇文章将深入探讨基于Hibernate的模板项目,旨在帮助开发者理解和运用这一工具,提升开发...

    Tomcat配置hibernate xml模板

    本篇文章将详细介绍如何在Tomcat中配置Hibernate的XML模板,以便于在Java Web应用中实现高效的数据持久化。 首先,让我们理解这两个核心文件的作用: 1. `server.xml`:这是Tomcat服务器的主要配置文件,位于`conf...

    Spring4-Struts2-Hibernate4 CRUD Demo (1)

    【Spring4-Struts2-Hibernate4 CRUD Demo (1)】是一个典型的Java Web开发示例,它演示了如何集成Spring4、Struts2和Hibernate4框架来实现CRUD(创建、读取、更新和删除)操作。这个项目是初学者学习企业级应用开发的...

    Spring4-Struts2-Hibernate4 CRUD Demo

    【Spring4-Struts2-Hibernate4 CRUD Demo】是一个经典的Java Web开发示例,它结合了Spring Framework 4、Struts 2和Hibernate 4这三个流行的技术,用于实现CRUD(Create, Read, Update, Delete)操作。这个项目旨在...

    spring3.2 hibernate4 demo CRUD 完整例子

    在本示例中,我们探讨的是一个基于Spring 3.2和Hibernate 4的完整CRUD(创建、读取、更新、删除)操作演示。这个压缩包文件包含了实现这一功能所需的全部资源,让我们深入理解如何将这两个强大的Java框架集成到实际...

    Hibernate+servlet模板

    Hibernate提供了CRUD(创建、读取、更新和删除)操作的API,使得数据操作变得简单直观。在这个模板项目中,Hibernate被用来处理数据库的读写操作,通过配置文件设置数据库连接,然后在代码中调用Hibernate的Session...

    Spring4-Struts2-Hibernate4 CRUD Demo_1

    这个"Spring4-Struts2-Hibernate4 CRUD Demo_1"是一个示例项目,它演示了如何整合这三个框架来实现基本的CRUD(创建、读取、更新、删除)操作。下面我们将深入探讨这些框架的核心功能和它们在项目中的作用。 **...

    Spring4-Struts2-Hibernate4 CRUD Demo_2

    ssh_demo_2 这个文件很可能是包含了一个完整的示例项目,演示如何使用Spring4、Struts2和Hibernate4来实现一个CRUD应用。这个示例可能包含了配置文件(如struts.xml、spring-context.xml)、实体类、DAO(Data ...

    struts2与hibernate的整合实现数据的crud

    总的来说,整合Struts2和Hibernate能够帮助开发者更高效地实现CRUD操作,同时利用Jquery增强前端用户体验,如复选框删除功能。在实际项目中,还需要注意安全性、性能优化以及错误处理等方面,确保系统的稳定和高效...

    Spring-MVC-Hibernate-CRUD-源码.rar

    这是一个关于使用Spring MVC和Hibernate框架实现CRUD操作的源代码示例。CRUD代表创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete),是数据库操作的基本功能。Spring MVC作为Spring框架的一部分,是用于...

    ssh整合模板(带CRUD)

    SSH整合模板(带CRUD)是一套基于Java的Web开发框架整合方案,主要涉及Spring、Struts2和Hibernate这三个核心组件。这套模板旨在提供一种高效、便捷的方式进行数据操作,包括创建(Create)、读取(Retrieve)、更新...

    Struts+Spring+Hibernate(CRUD操作案例)-分页查询

    前段时间时间当我在学习SSH框架技术的时候,在网上很难找到关于SSH的完整例子,比如最基本的CRUD操作和用的比较多的查询分页技术。为了让SSH初学者更清楚全面的学习,不再像我初学时候迷失方向。特花了2天时间做一个...

    Struts+Spring+Hibernate(CRUD操作案例)-分页查询-作者:llfzy

    前段时间时间当我在学习SSH框架技术的时候,在网上很难找到关于SSH的完整例子,比如最基本的CRUD操作和用的比较多的查询分页技术。为了让SSH初学者更清楚全面的学习,不再像我初学时候迷失方向。特花了2天时间做一个...

    myeclips10对springmvc4.0+hibernate4.0的完整crud

    【标题】"myeclips10对springmvc4.0+hibernate4.0的完整crud"指的是使用MyEclipse 10这个集成开发环境来构建一个基于Spring MVC 4.0和Hibernate 4.0的全功能CRUD(创建、读取、更新、删除)应用程序。在这样的系统中...

    spring.mvc.hibernate231security-CRUD

    标题 "spring.mvc.hibernate231security-CRUD" 暗示了这是一个关于Spring MVC、Hibernate和Spring Security的项目,其中包含了创建、读取、更新和删除(CRUD)操作的实现。在这个项目中,我们将深入探讨这三大核心...

    hibernate增删改查和动态sql

    综上所述,这个压缩包文件可能包含了一个使用Hibernate和FreeMarker进行数据库操作的示例Web应用程序,具体包括了如何使用Hibernate进行基本的CRUD操作,并利用FreeMarker动态生成HQL来执行复杂的查询。通过学习和...

    Struts2和Hibernate3.0一个CRUD实例

    在“Struts2和Hibernate3.0一个CRUD实例”中,我们将探讨如何使用这两个框架来创建一个完整的创建(Create)、读取(Read)、更新(Update)和删除(Delete)功能的应用。这个实例通常会包含以下几个关键部分: 1. ...

    SSH(struts+spring+hibernate)整合模板

    Hibernate是持久层框架,主要负责数据库的CRUD操作。它通过ORM(对象关系映射)技术将Java对象与数据库表进行映射,简化了SQL的编写。开发者只需操作Java对象,Hibernate会自动处理与数据库的交互。在SSH框架中,...

Global site tag (gtag.js) - Google Analytics