Hibernate实例

hibernate实例 hibernate 简单的实例运用 可以根据文档建立起一个简单的demo 帮助新手快速的熟悉hibernate的基本使用 从而进行深层次的学习 立即下载

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

使用Hibernate的一般过程
1)设计对象模型
2)设计操作对象的接口
3)如果不是使用maven的话,需要加入相关的jar包
4)配置对象关系映射文件(ORM)
5)配置hibernate全局配置文件
6)设计Hibernate工具类
7)实现设计的操作对象的接口
8)使用

实例
本文以操作用户表为例,数据库为mysql5.7,IDE为eclipse Java EE IDE for Web Developers.

实现步骤
1)在mysql数据库中创建数据库,取名为myhibernate
2)打开eclipse,创建普通的Java Project,取名为HibernateDaoDemo
3)创建用户对象User,全名为com.peace.domain.User,具体体代码如下:

package com.peace.domain;

import java.util.Date;

public class User {
    private int id;
    private String name;
    private Date birthday;
    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;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", birthday=" + birthday + "]";
    }
}

4)设计对用户表进行增删改查的接口类UserDao,全名为com.peace.dao.UserDao,具体如下:

package com.peace.dao;


import com.peace.domain.User;

public interface UserDao {
    public void savaUser(User user) ;
    public User findUserByName(String name);
    public User findUserById(int id);
    public void updateUser(User user);
    public void remove(User user);
}

5)导入需要的依赖jar包,这里用的是hibernate-3.2,导入的包如下图中的hibernate3.jar和lib下的所有包
这里写图片描述
另外,hibernate底层也是基于jdbc,所以还需要导入mysql-connector-java-5.1.39-bin.jar
6)配置User对象的关系映射文件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 
    package="com.peace.domain">

    <class name="User">     
        <id name="id">
            <generator class="native"/>
        </id>

        <property name="name" unique="true"/>
        <property name="birthday"/>

    </class>

</hibernate-mapping>

7)配置hibernate全局配置文件hibernate.cfg.xml,内容如下:

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory name="foo">
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myhibernate</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">1234</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>


        <property name="hibernate.hbm2ddl.auto">create</property>
        <property name="hibernate.show_sql">true</property>
        <mapping resource="com/peace/domain/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

8)设计实现Hibernate工具类HibernateUtil,全名为com.peace.dao.HibernateUtil,实现如下:

package com.peace.dao;

import java.io.Serializable;

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


public final class HibernateUtil {
    private static SessionFactory sessionFactory = null;
    private HibernateUtil() {
        // TODO Auto-generated constructor stub
    }
    static {
        Configuration cfg = new Configuration();
        cfg.configure();
        sessionFactory = cfg.buildSessionFactory();
    }
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    public static Session getSession() {
        return sessionFactory.openSession();        
    }
}

9)继承,实现操作用户表的接口UserDaoHibernateImpl,全名com.peace.dao.impl.UserDaoHibernateImpl,实现如下:

package com.peace.dao.impl;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

import com.peace.dao.HibernateUtil;
import com.peace.dao.UserDao;
import com.peace.domain.User;

public class UserDaoHibernateImpl implements UserDao {

    @Override
    public void savaUser(User user) {
        // TODO Auto-generated method stub
        Session s = null;
        Transaction tx = null;
        try {
            s = HibernateUtil.getSession();
            tx = s.beginTransaction();
            s.save(user);
            tx.commit();
        } finally {
            if(s != null)
                s.close();
        }
    }

    @Override
    public User findUserByName(String name) {
        // TODO Auto-generated method stub
        Session s = null;
        try {
            s = HibernateUtil.getSession();
            Criteria c = s.createCriteria(User.class);
            c.add(Restrictions.eq("name", name));
            User user = (User) c.uniqueResult();
            return user;
        } finally {
            if(s != null) {
                s.close();
            }
        }
    }

    @Override
    public User findUserById(int id) {
        // TODO Auto-generated method stub
        Session s = null;
        try {
            s = HibernateUtil.getSession();
            User user = (User) s.get(User.class, id);
            return user;
        } finally {
            if(s != null) {
                s.close();
            }
        }
    }

    @Override
    public void updateUser(User user) {
        // TODO Auto-generated method stub
        Session s = null;
        Transaction tx = null;
        try {
            s = HibernateUtil.getSession();
            tx = s.beginTransaction();
            s.update(user);
            tx.commit();
        } finally {
            if(s != null)
                s.close();
        }
    }

    @Override
    public void remove(User user) {
        // TODO Auto-generated method stub
        Session s = null;
        Transaction tx = null;
        try {
            s = HibernateUtil.getSession();
            tx = s.beginTransaction();
            s.delete(user);
            tx.commit();
        } finally {
            if(s != null)
                s.close();
        }
    }

}

10)实现测试类DAOTest,对设计的接口测试,代码如下:

package com.peace;

import java.util.Date;

import com.peace.dao.UserDao;
import com.peace.dao.impl.UserDaoHibernateImpl;
import com.peace.domain.User;

public class DAOTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        UserDao dao = new UserDaoHibernateImpl();
        User user = new User();
        user.setName("ABC");
        user.setBirthday(new Date());
        dao.savaUser(user);

        user.setName("DEF");
        dao.updateUser(user);

        User u1 = dao.findUserById(user.getId());
        System.out.println(u1);

        User u2 = dao.findUserByName("DEF");
        System.out.println(u2);

        dao.remove(user);
    }

}

11)结果
这里写图片描述

附——工程代码结构图
这里写图片描述

使用hibernate的一个完整例子 使用Hibernate的一个完整例子 这是我学习的时候下载的,看着不错 喜欢的可以下载 不要分 但愿能帮到你们 立即下载

相关推荐

Hibernate 的第一个例子

学习HIbernate的第一个例子,便于初学者入门

Hibernate的入门案例(带解析)

Hibernate的入门案例什么是Hibernate?首先下载Hibernate并解压在eclipse创建javaweb项目并导入包配置数据库的表格总体结构创建实体Customer.java(持久化类)并配置get和set方法配置映射文件Customer.hbm.xml配置核心Hibernate核心配置文件hibernate.cfg.xml编写测试类demo01最终结果 什么是Hibernate?...

weixin_40007271的博客 690

集成电路模拟版图入门-版图基础学习笔记(一)

集成电路设计模拟版图入门笔记,了解版图的定义、意义、工具、设计流程。认识版图及版图组成的两大部件,版图编辑器有哪些,电路图编辑器,了解工艺厂商等。

weixin_52955333的博客 2万+

SpringData Hibernate JPA 使用案例 案例 (一)

用之前的hibernate,如果我们需要修改持久化层,需要修改很多配置以及代码,由此SpringData推出了JPA的功能。这里建议命名为hibernate.cfg.xml,我存放的目录在resource/hibernate/hibernate.cfg.xml。单元测试testR_lazy懒加载,load懒加载当执行到对应查询时系统才会执行查询,而find会先执行查询。查看效果:可以看到两种不同的单元项都可以对数据库进行操作,而底层都是基于hibernate来实现的。添加另一种jpa的依赖。

qq_50909707的博客 912

传输线的特征阻抗

信号源内阻与所接传输线的特性阻抗大小相等且相位相同,或传输线的特性阻抗与所接负载阻抗的大小相等且相位相同,分别称为传输线的输入端或输出端处于阻抗匹配状态,简称为阻抗匹配。否则,便称为阻抗失配。有时也直接叫做匹配或失配。指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。- 对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;

学海无涯的专栏 4464

矢量网络分析仪VNA的校准之SOLT方法

作者:杭州冥鸿电子科技有限公司 邮箱:huanglong@deepelec.com S参数的测量方法有两种,一种是基于扫频测量的原理(VNA),另外一种是基于快沿阶跃响应的原理(TDR)。 下图是VNA的原理框图,主要包括以下部分: (1)激励信号源:提供感兴趣的频率范围内的入射信号; (2)信号分离装置:含功分器和定向耦合器,分离出入射,反射和传输信号; (3)接收机:...

u010018619的博客 2万+

hibernate 小案例

Hibernate 的使用小案例 1 建一个实体类 Test.java import java.util.Date; public class Test { private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } public Str

lzz360的专栏 1514

从ACTF2020看文件上传漏洞:你以为改后缀就完事了?这些坑我都帮你踩过了

本文通过ACTF2020的Upload题目深入剖析文件上传漏洞的复杂性和防御策略。文章揭示了常见误区,如仅修改文件后缀的局限性,并详细解析了绕过技巧和高级防御机制。从开发角度提供了构建安全上传功能的实用建议,帮助读者全面理解文件上传漏洞的本质与防护方法。

weixin_29278805的博客 246

【框架学习】Hibernate(二)案例

今天第一次使用Hibernate框架完成了第一个小案例,记录一下一。我的环境 为了方便起见,我是用了项目构建工具,Maven,简单粗暴,教程链接,Maven全面总结 IDE使用Myeclipse,不多解释,就是个方便,哈哈。 Hibernate版本:4.1.0 Mysql版本:5.5.20的32位 mysql的java驱动选择:mysql-connector-java,5.1.6版本 junit单元

小鼠标的博客 698

感应电机无速度传感器FOC控制原理与Simulink仿真实践

无速度传感器FOC控制是电机驱动领域的重要技术,通过算法重构实现仅依赖电气参数的闭环控制。其核心原理基于电机数学模型,利用Clark/Park变换和滑模观测器估算转子位置和转速。这种技术在工业伺服系统中具有显著价值,能有效降低系统成本并提高可靠性。典型应用场景包括纺织机械、风机驱动等需要精确转速控制的设备。本文以感应电机为例,详细解析了无感FOC的Simulink实现方法,特别关注滑模观测器设计和双闭环控制策略,为工程师提供可直接复用的参数调优经验。

weixin_29189987的博客 259

用limma包进行多组差异表达分析

写在前面:最近在使用limma包进行差异表达分析,参考了网上许多教程都觉得说的云里雾里,很不清楚。经过我自己一段时间非常痛苦的钻研,弄明白了,解决了我的实际需求。于是决定将我的分析经验写下来,分享给需要的人。 首先加载前期预处理好的表达矩阵。(我的原始表达矩阵文件已附在文后,大家有需要可以下载实践) setwd("E://Rworkplace") data<-read.table...

weixin_40640700的博客 4万+

【hibernate进阶】hibernate搭建开发环境+实例讲解

本篇博客将带着大家以一个简单的实例来学习hibernate项目。 1、创建java项目 2、创建User Library,加入依赖包 * HIBERNATE_HOME/lib/*.jar * HIBERNATE_HOME/hibernate3.jar * 加入数据库驱动(mysql驱动) 具体的操作步骤参考我的上一篇博客:【hibernate进阶】如何在myeclipse中添加ja

陈晓婵 8423

ADC INL&DNL测试方法和实例

本文介绍了一种可操作的ADC INL和DNL的测试方法--直方图法(也称码密度法)。并实际使用该方法测试了两款芯片的ADC INL和DNL

APTCHIP的博客 1万+

hibernate入门实例

一、准备工作 1,下载hibernate。地址:http://hibernate.org/orm/downloads/ 2,下载数据库驱动(以MySql为例)。地址:http://www.mysql.com/downloads/ 3,创建一个测试数据库hibernate_first,再创建一个User表,各字段如下: 二、工程实例 1,新建一个普通Java工程,在Buil

passion_wu128的专栏 5361

提示工程架构师揭秘:prompt优化中的“隐性成本”如何控制?

当我们谈论Prompt优化时,往往聚焦于“效果提升”——比如让模型生成更准确的回答、更符合要求的格式。优化的本质是“成本-收益”的平衡。那些看不见的“隐性成本”,比如反复调试的时间消耗、复杂Prompt带来的认知负荷、长文本导致的系统资源浪费、后续维护的无穷麻烦,往往会在长期运营中成为压垮效率的“稻草”。本文将从提示工程架构师的视角,揭秘Prompt优化中的“隐性成本”到底是什么、如何量化,以及通过哪些工程化手段将这些“看不见的消耗”转化为“可控制的效率”。

操作系统内核探秘的博客 700

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一个简单的Hibernate实例

37.3  一个简单的Hibernate实例(V005)37.3.1  创建Hibernate配置文件:hibernate.cfg.xml在“Java Resourcess:src”下创建一个hibernate.cfg.xml文件如下。        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "htt

毁&灭 2300

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Hibernate代码实例

Hibernate代码运用1、Maven导入依赖2、Hibernate配置文件hibernate.cfg.xml3、映射实体4、映射文件Table1.hbm.xml5、调用 1、Maven导入依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</versi

那个谁 339

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Hibernate旅程(二)Hibernate实例

上篇大概的介绍了Hibernate框架,本篇一个简单的hibernate例子来学习。 Hibernate配置 (1)   创建自己的java项目。 (2)   向自己的项目中添加Hibernate的相关的jar,我们可以创建自己的UserLibrary,这样就直接加入这个依赖包就可以了(如图2.1图2.2)。 图2.1 图2.2 需要添加上的jar包

Xinghf 8379

Hibernate和Spring对DAO处理的实例

引用"Spring"手册上的话说: Hibernate+Spring显然是天生的结合. 下面是我用spring处理的一个HibernateDAO实例,可以看到,代码量大大减少了. java代码:  1     2   package infoweb.dao;  3     4   import java.util.List;  5   import java.util.

鲤鱼商城 2362

Hibernate学习笔记(一)——简单的Hibernate实例入门

一、Hibernate简介 Hibernate是一个开源的对象/关系映射(ORM)框架,它对JDBC进行了轻量级的封装。所谓ORM就是Object/Relationship Mapping,为什么要使用对象/关系映射呢?因为使用面向对象思想编写的数据库应用程序都是要把信息存储到关系型数据库中的,使用Hibernate就可以使用面向对象的方法来操作和使用数据库了。 二、Hibernate简单实例

记录只为更好地前行 5467

在eclipse中运行Hibernate实例

在eclipse中运行Hibernate实例 (一)基本环境:SQL Server 2000eclipse 3.0hibernate2.1.4 (二)我的环境准备:1。SQL Server 2000 帐号:sa 密码:123456 新建数据库:hibernate 2。解压hibernate-2.1.4.zip 我的解压到了E:/javasoft/hibernate-2.1,hibernate-2.

三V工作室·泰伯子仪 3908

运行Hibernate实例

在eclipse中运行Hibernate实例(一)基本环境:SQL Server 2000eclipse 3.0hibernate2.1.4(二)我的环境准备:1。SQL Server 2000 帐号:sa 密码:123456 新建数据库:hibernate2。解压hibernate-2.1.4.zip 我的解压到了E:/javasoft/hibernate-2.1,hibernate

xchen的专栏 1018

hibernate使用实例

1.hibernate添加 Configuration config = new Configuration().configure(); @SuppressWarnings("deprecation") SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactor

zjduchang的专栏 407

hibernate简介

第一章 hibernate简介原文链接 https://zhhll.com.cn/2020/框架/hibernate/基础/1.hibernate简介/ORM(Object Relation Mapping)对象关系映射思想:将关系数据库中表中的记录映射为对象,以对象的形式展现,可以把对数据库的操作转化为对对象的操作。采用元数据来描述对象-关系映射细节,元数据通常采用XML格式,存放在专门的对象-关系映射文件中。hibernate是一个老牌的ORM框架,通过hbm.xml映射文件维护

Lxn2zh的博客 6496
上一篇: struts2.x入门实例
下一篇: mybatis入门实例
菜鸟502
博客等级 码龄16年 49粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值