`
gaozengguang
  • 浏览: 63375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate使用xml配置文件的方式

阅读更多

1、下载Hibernate3.0.jar包。

2、在src下新建hibernate.cfg.xml文件其内容如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE  hibernate-configuration   
       PUBLIC  "-//Hibernate/Hibernate  Configuration  DTD//EN"   
       "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="show_sql">true</property><!-- 显示SQL语句 -->
		<property name="max_fetch_depth">1</property><!-- 未知 -->
		<property name="jdbc.fetch_size">5</property><!-- 未知 -->
		<property name="connection.url">jdbc:mysql://localhost:3306/myuser?useUnicode=true&amp;characterEnconding=GB2312</property><!-- 连接数据库字符串 -->
		<property name="connection.username">****</property><!-- 数据库用户名 -->
		<property name="connection.password">****</property><!-- 数据库密码 -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 驱动路径 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 数据库方言 -->
		<mapping resource="com/test/myhibernate/dto/user.hbm.xml" /><!-- hbm.xml文件配置路径 -->
	</session-factory>
</hibernate-configuration>

 

3、根据项目要求在模块目录下新建几个pagekage。分别是:action,dto,dao,util。

4、在dto中新建user.hbm.xml和User.java。其内容分别如下:

     4.1——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>
	<class name="com.tset.myhibernate.dto.User" table="user"
		dynamic-insert="true" dynamic-update="true">
		<id name="id" column="id">
			<generator class="increment" />
		</id>
		<property name="username" column="username" type="string"/>
		<property name="password" column="password" type="string"/>
		<property name="name" column="name" type="string"/>
		<property name="age" column="age" type="java.lang.Long"/>
		<property name="sex" column="sex" type="string" />
		<property name="birthday" column="birthday" type="string"/>
	</class>
</hibernate-mapping>

 

     4.1——User.java:

5、在dao中新建一个接口UserInterface.java。其内容如下:

package com.test.myhibernate.dao;

import java.util.List;

import com.test.myhibernate.dto.User;

public interface UserInterface {
	/**
	 * @deprecated 得到所有的用户对象
	 * @return
	 */
	public abstract List<User>  getAllUser();
	/**
	 * @deprecated 通过Id查询到一个User对象。 
	 * @param id
	 * @return
	 */
	public abstract User        getUserById(int id);
	/**
	 * @deprecated 通过Id删除一个User对象
	 * @param id
	 * @return
	 */
	public abstract boolean     deleteUserById(int id);
	/**
	 * @deprecated 添加一个User记录
	 * @param user
	 * @return
	 */
	public abstract boolean 	addUser(User user);
	/**
	 * @deprecated 修改一条记录
	 * @param user
	 * @return
	 */
	public abstract boolean 	updateUser(User user);
}

 

6、在dao中实现这个接口UserDAO.java。其内容如下:

package com.test.myhibernate.dao;

import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import com.test.myhibernate.dto.User;
import com.test.myhibernate.util.HibernateBase;

/*******************************************************************************
 * @deprecated 数据库操作DAO
 * @author 高增光
 * @time 2009-年11月09日
 */
public class UserDAO extends HibernateBase implements UserInterface {

	/**
	 * @throws HibernateException
	 */
	public UserDAO() throws HibernateException {
		super();
	}

	@Override
	public boolean addUser(User user) {
		try {
			beginTransaction();
			if (user != null) {
				session.save(user);
				return true;
			} else {
				return false;
			}
		} catch (Exception e) {
			e.printStackTrace();
			endTransaction(false);
			return false;
		} finally {
			endTransaction(true);
		}
	}

	@Override
	public boolean deleteUserById(int id) {
		try {
			beginTransaction();
			User user = (User) session.get(
					com.test.myhibernate.dto.User.class, new Long(id));
			if (user != null) {
				session.delete(user);
				return true;
			} else {
				System.out.print("没有该记录!");
				return false;
			}
		} catch (Exception e) {
			e.printStackTrace();
			endTransaction(false);
			return false;
		} finally {
			endTransaction(true);
		}
	}

	@Override
	public List<User> getAllUser() {
		try {
			beginTransaction();
			Query users = session
					.createQuery("from com.test.myhibernate.dto.User");
			List<User> list = users.list();
			return list;
		} catch (HibernateException e) {
			e.printStackTrace();
			endTransaction(false);
			return null;
		} finally {
			endTransaction(true);
		}
	}

	@Override
	public User getUserById(int id) {
		try {
			beginTransaction();
			User user = (User) session.get(
					com.test.myhibernate.dto.User.class, new Long(id));
			if (user != null) {
				return user;
			} else {
				System.out.print("没有该记录!");
				return null;
			}
		} catch (HibernateException e) {
			e.printStackTrace();
			endTransaction(false);
			return null;
		} finally {
			endTransaction(true);
		}
	}

	@Override
	public boolean updateUser(User user) {
		try {
			beginTransaction();
			if (user != null) {
				session.update(user);
				return true;
			} else {
				return false;
			}
		} catch (HibernateException e) {
			e.printStackTrace();
			endTransaction(false);
			return false;
		} finally {
			endTransaction(true);
		}
	}
}

 

7、在util中新建HibernateBase.java。初始SessionFactory。其内容如下:

package com.test.myhibernate.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class HibernateBase {

	private static SessionFactory sessionFactory = null;// 会话工厂,用于创建会话
	public Session session;// hibernate会话
	public Transaction transaction; // hiberante事务
	/***
	 * @throws HibernateException
	 */
	public HibernateBase() throws HibernateException {// 初始化Session
		this.initHibernate();
	}

	/***
	 * @throws HibernateException
	 */
	public void initHibernate() throws HibernateException {

		// 装载配置,构造SessionFactory对象
		if (sessionFactory == null) {
			sessionFactory = new Configuration().configure()
					.buildSessionFactory();
		}
	}
	/****
	 * 开始一个hibernate事务
	 * @throws HibernateException
	 */
	public void beginTransaction() throws HibernateException {

		session = sessionFactory.openSession();
		transaction = session.beginTransaction();
	}

	/****
	 * 结束一个hibernate事务。
	 * @throws HibernateException
	 */
	public void endTransaction(boolean commit) throws HibernateException {

		if (commit) {
			transaction.commit();
		} else {
			// 如果是只读的操作,不需要commit这个事务。
			transaction.rollback();
		}
		session.close();
	}
}

 

8、在action中新建一个测试类main.java。其内容如下:

package com.test.myhibernate.action;

import java.util.ArrayList;
import java.util.List;

import com.test.myhibernate.dao.UserDAO;
import com.test.myhibernate.dto.User;

public class main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		/*初始化数据*/
		User user = new User();
		user.setAge(22);
		user.setBirthday("1988-10-07");
		user.setName("Sun-Shine");
		user.setPassword("te sf");
		user.setSex("dfd");
		user.setUsername("dddddd");
		
		UserDAO userDAO = new UserDAO();
		
		userDAO.addUser(user);
		
		
		userDAO.deleteUserById(2);
		user.setId(3);
		user.setName("xiaozhou");
		userDAO.updateUser(user);
		
		List<User> list = new ArrayList<User>(); 
		list = userDAO.getAllUser();
		int size = list.size();
		for(int i=0;i < size;i++)
		{
			System.out.println(list.get(i).getId());
		}
		User newUser = userDAO.getUserById(1);
		System.out.println(newUser);
		
		
	}
}

 

分享到:
评论

相关推荐

    Spring-hibernate结合使用全xml配置方式

    Spring框架提供了IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)等核心特性,通过XML配置文件管理Bean的生命周期和依赖关系。Hibernate则是一个强大的ORM框架,能够将...

    hibernate3.3.2所有jar包及xml配置文件

    7. dom4j.jar:XML解析库,Hibernate使用它来处理XML配置文件和HQL查询结果。 8. slf4j-api.jar和slf4j-log4j12.jar:日志框架接口和适配器,用于记录Hibernate的日志信息。 9. jandex.jar:元数据索引库,用于处理...

    SSH三大框架整合 struts2(使用xml配置)+hibernate(使用xml配置)+spring(使用xml配置)

    在这个项目中,所有配置都采用XML文件,虽然这种方式相对直观,但随着项目的扩大,XML配置文件可能会变得庞大且难以维护。现代开发中,更倾向于使用注解配置或者Spring Boot的自动配置来简化配置过程。 总结来说,...

    Hibernate配置文件hibernate.cfg.xml中配置信息详解

    Hibernate配置文件hibernate.cfg.xml中配置信息详解!

    Hibernate XML配置表映射实例

    在本实例中,我们将深入探讨如何使用XML配置文件来实现Hibernate的表映射。 首先,Hibernate的XML配置文件通常被称为`hibernate.cfg.xml`,它是连接数据库、定义SessionFactory等核心设置的地方。在这个文件中,...

    hibernate XML配置文件和相应的包

    使用Hibernate时,首先会通过`Configuration`类加载XML配置文件,然后创建`SessionFactory`,它是线程安全的,负责生成`Session`实例。`Session`是与数据库交互的接口,可以用来执行CRUD操作。 总的来说,Hibernate...

    build.xml 手写自动生成Hibernate映射文件和配置文件源代码

    build.xml 手写自动生成Hibernate映射文件和配置文件源代码

    Hibernate程序的配置文件

    本知识点主要聚焦于Hibernate的配置文件,它是使用Hibernate进行数据库交互的基础。 首先,我们需要理解Hibernate的核心配置文件——`hibernate.cfg.xml`。这个文件是Hibernate与数据库建立连接的桥梁,它包含了...

    Hibernate映射关系配置:XML方式和注解方式

    1. **hibernate.cfg.xml**:这是Hibernate的全局配置文件,用于配置数据源、方言、缓存等信息。 2. **实体类映射文件**:如`User.hbm.xml`,它将Java实体类映射到数据库表。在这里,你可以定义字段对应的列名、主键...

    Hibernate的配置文件

    在这个场景中,我们关注的是Hibernate的配置文件——`hibernate.cfg.xml`。这个文件是Hibernate应用的核心,它定义了数据源、SessionFactory、实体类映射等关键信息,使得Java对象可以直接与数据库进行交互。 首先...

    hibernate完整配置文件

    在学习和使用Hibernate时,理解这些配置文件的用途和结构至关重要。通过对`hibernate.cfg.xml`的调整,你可以定制化你的数据库连接、优化性能,同时通过实体类映射文件,实现对象与数据库之间的无缝转换。这个...

    spring2.5+hibernate基于xml配置的实例

    这个"spring2.5+hibernate基于xml配置的实例"是一个经典的组合,展示了如何在旧版本的Spring(2.5)和Hibernate中通过XML配置文件来整合和管理应用的组件。 首先,Spring 2.5是Spring框架的一个早期版本,它引入了...

    Hibernate自动生成配置文件

    此时,MyEclipse将自动为所选表生成对应的Hibernate配置文件,包括实体类映射文件(`.hbm.xml`)以及核心的`hibernate.cfg.xml`文件。 #### 三、自动生成配置文件的优势 1. **节省时间**:自动化的配置生成大大...

    struts2-spring4-hibernate4_xml配置的框架

    在XML配置文件`hibernate.cfg.xml`中,你可以配置数据库连接信息、实体类的映射等。此外,实体类可以通过`@Entity`注解标识,属性通过`@Column`等注解定义数据库列的映射。 SSM(Spring、SpringMVC、MyBatis)是另...

    hibernate配置文件详解

    hibernate.cfg.xml 文件是 Hibernate 的基本配置文件,它包含了 Hibernate 与数据库的基本连接信息。在 Hibernate 工作的初始阶段,这些信息被加载到 Configuration 和 SessionFactory 实例中。该文件的基本结构如下...

    Hibernate配置文件hibernate.cfg.xml范本

    这是Hibernate的配置文件,hibernate.cfg.xml的具体写法,共友友们参考~~谢谢~

    hibernate的xml配置关系例子

    在这个"hibernate的xml配置关系例子"中,我们将探讨如何使用XML配置文件来定义Java对象与数据库表之间的映射关系。 1. Hibernate XML配置文件: Hibernate的核心配置文件通常是`hibernate.cfg.xml`,这个文件包含...

    使用PD(PowerDesigner)自动生成Hibernate的POJO文件及xml配置文件

    ### 使用PD(PowerDesigner)自动生成Hibernate的POJO文件及xml配置文件 #### 知识点解析 **一、Hibernate框架简介** Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。...

    hibernate.cfg.xml

    hibernate.cfg.xml hibernate框架的配置文件

Global site tag (gtag.js) - Google Analytics