`
dysfzhoulong
  • 浏览: 70463 次
  • 性别: Icon_minigender_1
  • 来自: 长沙市
社区版块
存档分类
最新评论

Hibernate 配制

阅读更多
Hibernate 配制简介(一对多)

一、配制步骤
    a.首到http://www.hibernate.org/ 下载hb最新版本,与数据库驱动包一起另载到项目下;
    b.在项目目录下创建hibernate.cfg.xml文件--这是hibernate控制的核心;
   c.在数据库中建两个表user 与 blog;
    d.两个表对应的pojo类;
    e.编写每个pojo类对应到数据库中每个表的映射文件;
    f.编写hb中的Session对象的工具类
    g.编写user与blog的Dao类;
    h.编写测试类进行测试;

二、具体的代码实现
    1、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">

<!-- hibernate 配置 -->
<hibernate-configuration>

	<session-factory>

		<!--让hb在运行时显示实际执行的sql语句 -->
		<property name="show_sql">true</property>
		<!-- 使显示的sql格式化 -->
		<property name="format_sql">true</property>
		<!-- 设定sql方法,使用的是mySQL -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- JDBC驱动类的名字 -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<!--数据库连结串配置 -->
		<property name="connection.url">jdbc:mysql://localhost:3306/bbs</property>
		<!--数据库用户名配置 -->
		<property name="connection.username">root</property>
		<!-- 数据库密码配置 -->
		<property name="connection.password">netjava</property>
		
		<!-- user类的映射文件路径 -->
        <mapping resource="cn/netjava/pojo/user.hb.xml"/>  
              <!-- blog类的映射文件路径 -->
        <mapping resource="cn/netjava/pojo/blog.hb.xml"/>
	</session-factory>
</hibernate-configuration>


   2、两个对应的pojo类
public class User {
	private int id;
	private String name;
	private String pwd;
	private List<Blog> blogs;
    // 对应的set,get方法;
     .........
}
public class Blog {
	private int id;
	private User user;// 多对一关联到的父对象
	private String title;
	private String content;
    // 对应的set,get方法;
      .........
}



   3、相应的映射文件
      user.hb.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="cn.netjava.pojo.User" table="user">
		<id name="id" column="id">
			<generator class="native" />
		</id>
		<property name="name" column="name" />
		<property name="pwd" column="pwd" />
		<!-- 映射Userinfo对象与Bloginfo对象的一对多关系,以bag方式映射,按id顺排序,并延迟加载 -->

		<bag name="blogs" table="blog"  order-by="id asc" lazy="false"
		cascade="save-update,persist">
		     <key column="id_user"/>
		     <one-to-many  class="cn.netjava.pojo.Blog"/>
		</bag>
	</class>
</hibernate-mapping>

blog.hb.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="cn.netjava.pojo.Blog" table="blog">
		<id name="id" column="id">
			<generator class="native" />
		</id>
		<property name="title" column="title" />
		<property name="content" column="content" />
		
		<!--设定Blog对象与User对象的多对一关系 -->
		<many-to-one name="user"
		            column="id_user"
		            class="cn.netjava.pojo.User"
		            cascade="all"
		            outer-join="true" />
	</class>
</hibernate-mapping>

   4、获取hb中的Session对象的工具类
public class HBUtils {
	// 取得根据hibernate.cfg.xml中配置的数据库的一个Session对象;
	// 这个Session对象类似与java.sql.connection对象;
	public static Session getSession() {
		return sessionFactory.openSession();
	}
//静态块,用于从hibernate.cfg.xml配置中初始化sessionFactory对象
	static {
		try {
			sessionFactory = new Configuration().configure()
					.buildSessionFactory();
		} catch (Throwable ex) {
			throw new ExceptionInInitializerError(ex);
		}
	}
	private static SessionFactory sessionFactory;
}


   5、两个Dao类
public class Daouser {
	// 保存一个用户对象到数据库,保存成功后,返回id
	public int saveUserInfo(User user) {
		org.hibernate.Session session = HBUtils.getSession();// 得到session对象
		org.hibernate.Transaction tx = session.beginTransaction();
		tx.begin();// 取得一个事务对象,开启事务
		session.save(user);// 保存对象到数据库
		tx.commit();// 提交事务。
		session.close();
		return user.getId();
	}

	// 从数据库中取得指定id的用户对象
	public User getUserinfoById(int id) {
		org.hibernate.Session session = HBUtils.getSession();
		Object obj = session.get(cn.netjava.pojo.User.class, id);
		session.close();
		return (User) obj;
	}
}
(下一个Dao类类似)

6、Test
public class Test {
	public static void main(String args[]) {
              User user = new User();// 新建一个User对象
		user.setPwd("撒旦法");
		user.setName("周");
             Blog bl = new Blog();// 新建一个Blog对象
		 bl.setTitle("userBlog");
		 bl.setContent("blog");
		 bl.setUser(user);// 所属用户
		 Daoblog da = new Daoblog();// 保存Blog对象到数据库
		 int id = da.saveBlog(bl);
		 System.out.println("日志对象连同用户对象保存成功,id: " + bl.getId());

}

引用
Hibernate中文参考文档
分享到:
评论

相关推荐

    webwork2.2.4+spring+hibernate做的一个登入程序

    最近在做个项目,用的是webwork+spring+hibernate,在网上看了不少webwork+spring的配制方式,大多都是老的配制方式,比如2.1.7的,webwork2.2.4新加了很多功能,和spring的配制也简单了很多,我做了一个简单的登录...

    Hibernate 主清单文件配制的详细介绍

    Hibernate是一种流行的Java持久性框架,它提供了一种方便的方式来实现对象关系映射(ORM)和持久化。本文将详细介绍Hibernate主清单文件hibernate.cfg.xml的配置方式和内容,帮助读者更好地理解和运用Hibernate进行...

    ssh配制文件详解

    在IT行业中,SSH框架是指Struts2、Hibernate和Spring三个开源框架的组合,它们共同构建了一个强大的企业级应用开发平台。SSH框架的配置文件是理解并有效使用这三个框架的关键,下面我们将逐一解析这些配置文件的主要...

    常用的WEB项目配制文件modle

    本资源包“常用的WEB项目配制文件model”包含了Struts、Hibernate、Java和Spring框架的一些关键配置文件,这些都是构建高效、可扩展的Web应用不可或缺的部分。接下来,我们将深入探讨这些框架以及它们的配置文件。 ...

    SSH注解配制指南

    - **Hibernate框架**:Hibernate利用注解来描述实体类与数据库表之间的映射关系,使得开发者无需编写复杂的XML配置文件即可实现持久化操作。 综上所述,SSH框架中的注解配置为开发者提供了一种更加简洁高效的方式来...

    环境配制.xmind

    此文档为环境变量配置,其中包含了 jdk. mysql ,. maven . hibernate 的常用配置方法,仅供大家参考

    spring事物的五种配制方法

    Spring框架提供了强大的事务管理功能,能够方便地与多种数据库交互,支持不同的数据访问技术如JDBC、Hibernate等。本文将详细介绍Spring事务配置中的五种方法,并结合示例来探讨每种方法的特点。 #### 二、Spring...

    jboss安装与配制

    3. **数据持久化**:利用 JPA 或 Hibernate,你可以轻松地在 JBoss 中实现数据库的数据持久化操作。 4. **JMS 集成**:JBoss 内置了 JMS 服务,可以实现消息队列和发布/订阅模型,实现异步处理和解耦。 5. **...

    java环境配制

    它包含了多种开发工具,如支持HTML、CSS、JavaScript、SQL、Hibernate等,并且集成了多种服务器支持,如Tomcat、WebLogic等。 7. **Tomcat**:一个轻量级的Java Servlet容器,也是Java Web应用服务器,常用于开发和...

    s2sh整合相关事例说明

    1. S2sh框架整合相关说明与使用 1.1 jar包安装 所有jar见目录lib 如果采用手工配制 创建一个web project 点击工程右键菜单 -&gt;Myeclipse-&gt;add hibernate capabilities ....

    EJB完整配置过程(珍藏版)

    - 添加必要的库文件,例如`hibernate3.2`等至`base_domain\lib`目录。 #### 三、打包并部署EAR文件 1. **创建EAR文件**: - 创建一个名为`TellerAPP`的目录,用于存放EAR文件。 - 在该目录下创建`META-INF\...

    android开发试用期工作总结.docx

    在微生物实验方面,我掌握了消毒杀菌的基本操作,如培养基配制、菌种转接等,并协助进行了相关实验,这不仅增强了我的实验室操作能力,也加深了对消毒剂作用原理的理解。 总结试用期的体验,我意识到自身在经验和...

    SpringBoot&nbsp;&nbsp;jdbctemplate使用方法解析

    总之,JdbcTemplate在SpringBoot中提供了一种轻量级的数据库访问方式,虽然功能不如ORM框架如Hibernate或MyBatis强大,但其简洁性和灵活性使得它在一些简单场景下成为不错的选择。学习JdbcTemplate可以帮助我们理解...

Global site tag (gtag.js) - Google Analytics