`
zhengdl126
  • 浏览: 2538777 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Hibernate基础和入门:新建表和插入表

    博客分类:
  • java
阅读更多


http://www.youku.com/playlist_show/id_3629207_ascending_1_page_1.html




对象模型【面向对象】:
  表示层  struts2
  业务层  spring
  持久层  Hibernate 【'冬眠' ,把实体对象【对象模型】存在数据库【关系模型】里,解决'阻抗不匹配'--对象到关系的o/r映射】 还有类

似的SUN JDO,apache OJB,TOPLINK,EJB,JPA      好处:操作对象一样来操作关系,更对象化;轻量级框架:没有侵入性,可移植性;
O/R的缺点:批量操作


POJO:最纯粹的对象,不需要继承第三方框架的类或接口。





关系模型【面向关系】:
  数据层





ooa 面向对象的分析
ood 面向对象的设计
oop 面向对象的开发

 

 

 

-----------------------------建立java project:   附eclipse项目下载TestHibernate.rar 

 


 

 

 

-----------1 导包
hibernate 包

mysql包


-----------2 配置hibernate.cfg.xml
参考hibernate.properties
适配器dialect--mysql找到mysql的分页等

<!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.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/shoppingdb</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>        
   
      
    </session-factory>
</hibernate-configuration>


-----------3 配置日志调试
拷贝log4j.properties到src下即可


-----------4 对象实体类User.java     POJO对象
package com.soyo.TestHernate.entity;

public class User {
    private int id;
    private String username;
    private String password;
    private String ctime;
    private String etime;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getCtime() {
        return ctime;
    }
    public void setCtime(String ctime) {
        this.ctime = ctime;
    }
    public String getEtime() {
        return etime;
    }
    public void setEtime(String etime) {
        this.etime = etime;
    }

   
   
   
}




-----------5 映射文件User.hbm.xml,和实体类放在一个目录下
参考hibernate-distribution-3.3.2.GA-dist\hibernate-distribution-

3.3.2.GA\project\testsuite\src\test\java\org\hibernate\test\interceptor\user.hbm.xml


<?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 >
<!-- table指表名 -->
    <class name="com.soyo.TestHernate.entity.User" table="users">
    <!-- 主键id -->
    <id name="id" column="id"> <generator class="native"/> </id>
    <!-- 一般属性 -->
    <property name="username"/>
    <property name="password"/>
    <property name="ctime"/>
    <property name="etime"/>
    </class>
</hibernate-mapping>




-----------6 将映射文件User.hbm.xml加入到配置hibernate.cfg.xml文件中

修改hibernate.cfg.xml:

<mapping resource="com/soyo/TestHernate/entity/User.hbm.xml"/>
</session-factory>


-----------7 使用Hibernate类把对象模型变为关系模型【生成表】 可执行ExportDB.JAVA,带main函数

package com.soyo.TestHernate.entity;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportDB {

    public static void main(String[] args) {
        Configuration cfg = new Configuration().configure();//configure()调取xml
        SchemaExport export = new SchemaExport(cfg);
        export.create(true, true);
    }

}


ExportDB.JAVA:eclpise ->run application
就可自动创建表

-----error:java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

需另外下载slf4j-nop-1.5.2.jar引入到工程中才行



------------------8 开发客户端Clents.java 带main函数

一个数据库对应一个SessionFactiory

package com.soyo.TestHernate.entity;

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

public class Clents {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Configuration cfg = new Configuration().configure();//configure()调取xml
        SessionFactory factiory = cfg.buildSessionFactory();
       
        Session session = null;
        try{
            session = factiory.openSession();
            session.beginTransaction();//开启事务
           
            User user=new User();
            //user.setId(1);
            user.setUsername("admin");
            user.setPassword("admin");
            user.setCtime("ctime");
            user.setEtime("etime");
           
            session.save(user);
           
            session.getTransaction().commit();//提交事务
        }catch (Exception e) {
            System.err.println(e.getMessage());
            session.getTransaction().rollback();//回滚事务
        }finally{
            if(session!=null)
            {
                session.close();
                }
        }
       
    }

}

  • 大小: 12.9 KB
分享到:
评论

相关推荐

    hibernate入门数据简单插入

    标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    hibernate入门一:单表操作(单对象操作)

    标题"hibernate入门一:单表操作(单对象操作)"表明这篇文章主要介绍的是Hibernate框架的基础使用,特别是针对数据库单表的简单操作,如增删改查,以及如何处理单个数据库对象。描述部分为空,但通常这样的教程会...

    初学hibernate,hibernate入门

    以上就是Hibernate的基础入门知识,包括其概念、核心组件以及简单的使用示例。随着对Hibernate的深入学习,你会发现它还支持更高级的功能,如级联操作、多对一、一对多等复杂关系映射、缓存机制、延迟加载等,这些都...

    hibernate基础 快速入门 一

    ### Hibernate基础快速入门详解 #### 一、框架与Hibernate简介 **框架定义**: 框架是一种预先设计好的软件架构,用于解决特定领域内的常见问题。它可以极大地简化开发过程并提高开发效率。 - **为什么使用框架?**...

    hibernate 入门:10分钟跑起这个hibernate 示例程序 (图解)

    hibernate 入门:10分钟跑起这个hibernate 示例程序 (图解、附源码http://download.csdn.net/source/650851)

    HIbernate+Maven入门demo

    本篇文章将详细介绍如何使用Hibernate和Maven进行一个简单的入门级项目搭建。 ### 1. Hibernate简介 Hibernate是Java世界中的一款主流ORM框架,它通过提供API和配置文件将Java对象与数据库表对应起来,实现了对象...

    hibernate-release-5.2.13.Final 官网

    官网hibernate:问题说明: 1、安装整合通过; 2、整合时注意javassist-3.22.0-GA.jar与struts2.4的 javassist-3.20.0-GA.jar重复; 3、整合所需基础包以及整合需要的外部包,自己放到一个新建文件夹中,方便大家...

    Hibernate入门案例源码

    通过深入学习和实践这个入门案例,你将能够熟练掌握Hibernate的基本操作,为进一步学习更复杂的数据库操作和高级特性打下坚实基础。记得在实践中不断尝试和调试,以便更好地理解和掌握Hibernate的精髓。

    MyEclipse+Hibernate快速入门中文版

    ### MyEclipse+Hibernate快速入门知识点详解 #### 一、前言 本文档旨在通过一个简单易懂的方式,介绍如何在MyEclipse环境下配置并使用Hibernate框架。这是一份非常适合初学者使用的指南,特别是对于那些希望快速...

    hibernate开发流程 入门

    4. **生成POJO和映射文件**:使用Hibernate的逆向工程功能,从USERINFO表自动生成对应的Java类(Userinfo.java)和映射文件(Userinfo.hbm.xml)。选择表,指定源文件存放位置和Java包,然后按照向导的提示完成生成...

    妙解Hibernate 3.x:叩响面向对象思想之门 PDF

    《妙解Hibernate 3.x:叩响面向对象思想之门》是一本深入解析Hibernate框架的专著,旨在帮助读者理解并掌握面向对象编程思想在实际开发中的应用,尤其是在使用Hibernate时如何有效地进行数据持久化。这本书是面向...

    Hibernate入门jar包

    本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...

    hibernate3完整入门示例含jar包

    通过这个"hibernate3完整入门示例含jar包",你可以全面了解Hibernate3的基本用法,并动手实践,为以后的项目开发打下坚实的基础。在实际应用中,还要不断学习和理解更高级的特性,如缓存策略、级联操作、多表关联等...

    hibernate基础 入门/ hibernate basic

    ### Hibernate基础知识点详解 #### 一、什么是对象关系映射(ORM)以及为什么使用ORM? 在企业级应用开发中,持久层(persistence layer)占据了非常重要的地位。它主要负责处理与数据库之间的交互,包括数据的...

    hibernate hellowrold入门级代码

    总结来说,"hibernate helloworld入门级代码"是一个基础的教程,涵盖了Hibernate的基本元素:配置、实体、映射、Session、Transaction和查询。通过这个示例,学习者可以了解Hibernate如何简化Java应用与数据库之间的...

    Hibernate入门

    ### Hibernate入门知识点详解 #### Hibernate概述与ORM思想 - **定义**:Hibernate是一个开源的、轻量级的对象关系映射(Object-Relational Mapping,简称ORM)框架,它主要应用于JavaEE架构中的DAO(Data Access ...

    org.hibernate.HibernateException: No Hibernate Session bound to thread

    而在插入、修改和删除操作中,我们需要添加不同的注解: @Transactional(readOnly=false, propagation=Propagation.REQUIRED) public void insert(NxSbUser entity) { dao.insert(entity); } 在上面的代码中,...

    Hibernate入门 - 基础配置

    本文将深入介绍Hibernate的基础配置和功能,帮助初学者快速入门。 一、ORM框架与Hibernate ORM框架如Hibernate的核心思想是通过将Java对象映射到数据库表,使得开发者可以专注于业务逻辑,而不是繁琐的SQL语句。...

Global site tag (gtag.js) - Google Analytics