JAVA EE基础教程(5)hibernate的基本使用(视频笔记)

整理: MyEclipse 5.5 实战教程(持续更新,转帖) 引用自:BeanSofts Java Bloghttp://www.blogjava.net/beansoft/archive/2007/09/04/142716.html 此贴乃是将以前所发的几个零散的短文以及视频整理在一块, 便于学习用. 本文将不断更新, 并对格式进行美化.启航 - 第一次接触 MyEclipse MyEclipse + Tomcat 开发视频: 下载,安装 阅读详情

推荐51cto上的教程。这里将其中的代码笔记如下。
基本简介

ORM的思想是讲对数据库的操作转化为对一个对象的操作。讲一个类对应为一个表,一条记录对应为一个表的行,对象的属性对应一列。这个和JDBC不一样,虽然读出和改变的都是对象,但是还是要调用update语句,但是,在ORM框架中,我们可以实时的改变数据库中的值。一句话,hibernate是对 jdbc的一个更直观的封装。具体的映射被称为存储在对象关系映射文件中。hibernate主要竞争对手是mybaits。

写hibernate大概分为四个步骤
(1)创建hibernate配置文件
(2)创建持久化类
(3)创建对象-关系映射文件
(4)通过hibernate api编写访问数据库的代码
最后实现的效果是上层代码通过hibernate api访问持久化类的对象。而持久化类则通过对象关系映射文件和底层数据库直接相关。

(1)配置文件如下

<?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-configuration>
    <session-factory>
        <!-- 连接数据库的基本信息 -->
        <property name="connection.username">root</property>
        <property name="connection.password">123</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql:///Demo</property>



        <!-- 配置hibernate的基本信息 -->
        <!-- 数据库方言 -->
        <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <!-- 执行操作时是否在数据台打印SQL -->
        <property name="show_sql">true</property>
        <!-- 是否对SQL进行格式化 -->
        <property name="format_sql">true</property>
        <!-- 制定自动生成数据表的策略 -->
        <property name="hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

(2)配置持久化类

package com.gdl.hibernate.helloworld;

import java.sql.Date;

//一般的javabean
public class News {
    private Integer id;
    private String title;
    private String author;
    private Date date;





    public News(String title, String author, Date date) {
        super();
        this.title = title;
        this.author = author;
        this.date = date;
    }
    public News(){

    }


    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    @Override
    public String toString() {
        return "News [id=" + id + ", title=" + title + ", author=" + author
                + ", date=" + date + "]";
    }



}

(3)书写对应关系

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-7-15 18:06:43 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.gdl.hibernate.helloworld.News" table="NEWS">
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <!-- 指定主键的生成方式 ,这里是使用数据库本地的方式-->
            <generator class="native" />
        </id>
        <property name="title" type="java.lang.String">
            <column name="TITLE" />
        </property>
        <property name="author" type="java.lang.String">
            <column name="AUTHOR" />
        </property>
        <property name="date" type="java.sql.Date">
            <column name="DATE" />
        </property>
    </class>
</hibernate-mapping>

(4)最后,我们来写我们的test。

package com.gdl.hibernate.helloworld;

import static org.junit.Assert.*;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;

import com.mysql.jdbc.PreparedStatement;

public class HibernateTest {

    @Test
    public void test() {


        //1 创建一个session factory对象
        SessionFactory sessionFactory =null;
        //首先,配置configuration对象。用于对应hibernate基本配置信息和对象关系映射信息
        Configuration configuration = new Configuration().configure();
        //创建一个serviceRegistry对象
        //hibernate的任何配置和服务都需要在该对象中注册,然后才能有效。
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
            .applySettings(configuration.getProperties())
            .buildServiceRegistry();
        //最后session factory对象
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);

        //2 创建一个session对象
        Session session = sessionFactory.openSession();

        //3开始事务
        Transaction transaction = session.beginTransaction();

        //4执行保存操作
        News news = new News("java","GDL",new Date(new java.util.Date().getTime()));
        session.save(news);

        //5提交事务
        transaction.commit();

        //6关闭session
        session.close();

        //7关闭session factory对象
        sessionFactory.close();


        //使用jdbc进行数据库访问
        //GetAll();




    }

    private static Connection GetConn(){
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/demo";
        String userName = "root";
        String password ="";
        Connection conn = null;
        try{
            Class.forName(driver);
            conn = (Connection)DriverManager.getConnection(url,userName,password);
        }catch(ClassNotFoundException e){
            e.printStackTrace();

        }catch(SQLException e){
            e.printStackTrace();
        }
        return conn;
    }

    private static Integer GetAll(){
        Connection conn = GetConn();
        String sql = "select * from mysql.user";
        PreparedStatement pstmt;
        try{
            pstmt = (PreparedStatement)conn.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();
            int col = rs.getMetaData().getColumnCount();
            System.out.println("==========");
            while(rs.next()){
                for(int i=1;i<=col;i++){
                    System.out.println(rs.getString(i)+"\t");
                }

            }
            conn.close();           

        }catch(SQLException e){
            e.printStackTrace();
        }


        return null;

    }



}

上述操作完成了添加一个表并修改表中的数据。

Java EE工程师实战能力地图:环境配置、JVM调优与云原生落地 Java EE是企业级Java应用开发的核心技术体系,其本质是规范、运行时与工程实践的深度协同。理解JDK版本演进与字节码兼容性,是规避'不支持发行版本'等编译错误的前提;掌握JVM内存模型与GC机制,则能精准诊断OutOfMemoryError七类场景并实施G1调优;而Servlet容器选型、HikariCP连接池配置及Jakarta EE 9+迁移,直接决定系统在云原生环境中的稳定性与扩展性。本文聚焦真实工程现场高频痛点,融合java环境变量配置、java: outofmemoryerror等典型问题, 阅读详情

相关推荐

hibernate 框架教学视频 下载

hibernate 最全的视频教程,于洋老师教学,绝对经典。

【2017版】Hibernate5视频教程

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate基础教程

传播智客 Hibernate基础教学视频,四天课时,视频很清楚讲的很仔细

Hibernate入门到精通2017视频教程

本课程共25讲,课程课件,上课源代码等资料购买后可以直接下载,该课程是在学习完JSP,Struts2课程后,SSH框架的第二部分,后续还有Spring课程及3大框架的整合

相控阵多功能雷达工作模式识别技术综述

本文综述了相控阵雷达工作模式识别技术的研究进展。首先介绍了相控阵雷达的典型工作模式分类及其信号特征参数,包括搜索模式(VS、RWS、TWS)、跟踪模式(STT、MTT、TAS)和其他模式(SAM、SAR)等。随后重点阐述了基于信号特征的识别方法,包括时域特征(PRI分析、脉冲幅度包络、数据率)、频域特征(载频变化、调制方式)和混合特征分析方法。最后讨论了当前技术面临的挑战与发展趋势,包括复杂信号环境下的识别难题、新型雷达技术的适应需求以及深度学习技术的应用前景。该领域的研究对电子侦察和威胁评估具有重要意义。

Grow into a more wonderful you 1795

基于PWM的汽车仪表步进电机微步驱动优化实践

本文深入探讨了基于PWM的微步驱动技术,用于优化汽车仪表步进电机的运行性能。通过将传统的分步驱动升级为PWM微步细分驱动,利用正弦/余弦查表法合成旋转磁场,有效消除了指针抖动与噪声,实现了指针的平滑、精准运动。文章以STM32和VID2905电机为例,提供了详细的硬件连接、代码实现及高级优化技巧,为提升汽车仪表体验提供了实用方案。

weixin_29169505的博客 511

Hibernate4视频教程_全面来袭

本Java视频教程基于 Hibernate4.x 录制。内容涵盖安装 Hibernatetools 插件、Session 核心方法、持久化对象生命周期、对象关系映射(1-n、1-1、n-n、继承映射)、检索策略、检索方式(对象导航图、OID 检索、HQL、QBC、本地SQL)、Hibernate 一二级缓存、管理 Session、批量处理等 Hibernate 企业级开发的核心技术。

OpenV2X 车路协同开源平台 Columbia 版本正式发布!

OpenV2X车路协同开源平台Columbia 版本正式发布!

weixin_65571684的博客 1198

Hibernate入门一(韩顺平Hibernate从入门到精通视频教程1-3笔记)

持久化就是有两种:文件和数据库,即把一个东西长久的保存起来。 Hibernate是什么? 1.hibernate是一个框架 2.hibernate是一个ORM框架   ORM(Object relation mapping)对象关系映射 3.hibernate处于项目的持久层位置(正因为如此,所以有人有把hibernate称为持久层框架) 4.hibernate实际上就是对jd

zhanghuanlucy的专栏 2355

安防相机宽动态(WDR)技术解析:从原理到实战应用

本文深入解析安防相机宽动态(WDR)技术原理,对比多次曝光与DOL-WDR等实现方式,并区分硬件WDR与数字WDR(DWDR)的本质差异。文章重点阐述了WDR在逆光出入口、夜间道路监控等五大典型场景的实战应用与调参技巧,旨在帮助用户根据实际需求正确选择与配置,确保监控系统在复杂光线下清晰成像。

weixin_29191081的博客 427

【MIT-BEVFusion代码解读】第四篇:融合特征fuser和解码特征decoder

的大小,实际上源代码也是这么做的。最后将得到两个分支的特征进行。,第一个特征使用卷积降低通道数即可,第二个则需要反卷积来提升。所以backbone只有两个分支,都是5个卷积模块组成。的长和宽都减半至90,然后在经过5个相同的。将通道降至128,后面再接5个相同的。,将通道数128上至256,并且将。特征进行融合,这里使用的。部分由两部分组成,分别是。,这个分支首先经过第一个。,然后再卷积得到 =>提取特征,最后得到特征。得到了两个大小不同的。

非晚非晚的博客 2954

hibernate(一)【文末有资料和视频链接】

Hibernate概述 什么是框架 1 写程序,使用框架之后,帮我们实现一部分功能,使用框架好处,少写一部分代码实现功能 什么是hibernate框架(重点) 1 hibernate框架应用在javaee三层结构中 dao层框架   2 在dao层里面做对数据库crud操作,使用hibernate实现crud操作,hibernate底层代码就是jd...

qq_36776216的博客 573

人体红外传感器HC-SR501

本文记录的是如何用stm32使用HC-SR501。实验平台:野火指南者stm32f103vet6。实验现象:一旦有人体经过,LED会亮红色。HC-SR501 传感器工作原理人体都有恒定的体温,一般在 37 度,所以会发出特定波长 10UM 左右的红外线,被动式红外探头就是靠探测人体发射的 10um 左右的红外,进行工作的。人体发射的 10um 左右。

weixin_43772611的博客 1万+

MyEclipse 5.5 开发 Spring + Struts + Hibernate 的详解视频(长1.5小时)

2007年10月07日 23:35:00 第一部分: Struts 开发 6.83MB 22分36秒 http://beansoft.java-cn.org/download/ssh_1_struts.exe 第二部分: Hibernate + Spring 11.5MB 38分59秒 http://beansoft.java-cn.org/download/ssh_2_hibernate

秦梦瑶的专栏 1468

【LSTM回归预测】attention机制LSTM时间序列回归预测【含Matlab源码 1992期】

attention机制LSTM时间序列回归预测 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2591

AndroidKiller之APK 编译失败,无法继续下一步签名【BUG解决】【App反向解析】

文章目录项目场景:问题描述原因分析:解决方案:BUG解决 项目场景: AndroidKiller: 在反向解析APP包时报错:APK 编译失败,无法继续下一步签名。 网上很多方法都是无效的哈,我追究原因发现,这个bug的出现大部分情况都是因为Apktool的问题。 此方法:百分之百解决此bug! 错误如下: 问题描述 APK 编译失败,无法继续下一步签名! 原因分析: Apktool版本不适配的问题,现在的技术更新换代太快,我们安装AndroidKiller的时候,有时候不是官方渠道的话,他的版本是非常

一键难忘的博客 2万+

Hibernate框架学习笔记

Hibernate框架学习笔记 标注:本人学自b站,视频地址 https://www.bilibili.com/video/av14538659/?p=2

丿於豪 349

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

视频教程-Hibernate开发框架-Java

Hibernate开发框架 JAVA培训讲师,JAVA EE高端培训讲师,北...

weixin_29406779的博客 193

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《Java达人音视频到电商,一网打尽技术难题!》

在内容社区与UGC中,我们可以使用Jakarta EE提供的JPA、JMS等技术来处理数据和服务。在电商场景中,我们可以使用它来方便地生成API文档、方便其他开发者接入我们的服务。在音视频场景中,我们可以使用Java SE提供的API进行音频和视频的编解码、播放等操作。在音视频项目中,我们可以使用它们来管理各种库和框架的依赖。在内容社区与UGC中,我们可以使用它来管理用户数据、评论数据等。在内容社区与UGC中,我们可以使用它们来实现用户关注、评论通知等功能。面试官:马小帅,你好,很高兴见到你。

zhaomh2017的博客 507

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MyEclipse 5.5 开发 Spring + Struts + Hibernate 的详解视频

MyEclipse 5.5 开发 Spring + Struts + Hibernate 的详解视频(长1.5小时) 第一部分: Struts 开发 6.83MB 22分36秒 http://beansoft.java-cn.org/download/ssh_1_struts.exe 第二部分: Hibernate + Spring 11.5MB 38分59秒 http://beansof

tjgoahead的专栏 703

Java毕业设计_基于SSH的Java EE开发技术课程网站设计

基于SSH的Java EE开发技术课程网站设计 基于SSH的Java EE开发技术课程网站设计mysql数据库创建语句 基于SSH的Java EE开发技术课程网站设计oracle数据库创建语句 基于SSH的Java EE开发技术课程网站设计sqlserver数据库创建语句 基于SSH的Java EE开发技术课程网站设计spring+springMVC+hibernate框架对象(javaBean,pojo)设计 基于SSH的Java EE开发技术课程网站设计spring+springMVC+mybatis框

bishe_teacher的博客 241

JAVA 学习顺序

JAVA 学习顺序

qq_44231628的博客 1677

001 初识Java EE

初识Java EE

chen_yin_zhi_jin的博客 796

视频教程-SpringFramework-Java

SpringFramework JAVA培训讲师,JAVA EE高端培训讲师...

weixin_29414705的博客 169

大厂常见Java面试题:Hibernate_hibernate面试题

Hibernate在前几年是比较流行,现在感觉没落了,它包含您在ORM工具中将需要的所有功能。下面给出了get()和load()方法之间的区别。👆👆👆****

2303_79055586的博客 678
上一篇: 计算机的内存管理程序的内存模型
下一篇: MVP、MVVM,MVC设计模式的实例分析
define_us
博客等级 码龄14年 157粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值