`
dysfzhoulong
  • 浏览: 69408 次
  • 性别: 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中文参考文档
分享到:
评论

相关推荐

    优化Hibernate性能的几点建议

    即在Hibernate配制文件中进行配制: <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect <prop key="hibernate.show_sql">false !-- Create/update the database tables automatically ...

    Smart_common5.rar_Smart_common5_云数据备份

    通过freemaker模版生成java后台包括service层,dao,hibernate配制文件

    Hibernate语句

    Hibernate方法的使用!从它的XML配制,SESSION然后就是Criteria 查询的使用

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

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

    ssh配制文件详解

    struts2 + hibernate + spring 各种配制文件详解

    struts框架+hibernate单例

    struts框架搭建 hibernate单例简单配制 实现简单的数据录、改、查、删

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

    主要介绍了Hibernate 主清单文件配制的详细介绍的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

    Hibernate技术

    hibernate技术ppt,简单的较少hibernate原理,配制方法,用途以及相关的技术。

    常用的WEB项目配制文件modle

    一组很好的WEB项目配制文件modle,有struts,hibernate等!

    struts2+hibernate4.rar

    闲来无事,发现hibernate4悄然问世了,写了个简单的程序,初学都可以看下配制。

    ssh基本集成struts,spring,hibernate

    用添加三种支持,。。。。 你要在配制文件中配制,才能依赖注入。。。

    环境配制.xmind

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

    Struts+Spring+Hibernate补充内容

    在SSH中实现以下功能时, 需要将Tomcat中站点目录下/WEB-INF/lib 中的asm-2.2.3.jar和commons-collections-2.1.1.jar 文件删除,否则会引起类冲突 分离配置文件: 在src目录下创建多个...文件中配制的语法与原来一样

    xfire+webservice(服务器配置篇)

    此文档讲解配制Spring2.5+Hibernate3.2+xfire开发webservice工程(有截图)

    配置连接池 Tomcat开启Windows服务

    服务器等软件的配制 Jsp中文乱码解决方案 上传与下载 Hibernate 参数设置.txt MD5_Encoding.java Struts2中三种表达式符号的用法.txt

    s2sh整合相关事例说明

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

    健身房管理信息系统设计.doc

    环境配制过程:安装好J2SDK1.6后。在MyEclipse6.0中选择新建J2EE Project- &gt;Web Project,并在Web Project中Add Struts和Hibernate3.1。 1.2.5 JSP SUN JSP是Java Server Pages的缩写,是由Sun公司倡导、众多业领先的...

    Java之SSH深入浅出—精简剖析

    从最基本的配制讲起,通过简单易懂的例子,深入浅出,剖析SSH框架技术的精要,适合初学者

Global site tag (gtag.js) - Google Analytics