广告
返回顶部
首页 > 资讯 > 数据库 >(01)Hibernate入门
  • 436
分享到

(01)Hibernate入门

2024-04-02 19:04:59 436人浏览 独家记忆
摘要

1、Hibernate在ssh中的地位SSH序号技术作用1Struts基于mvc模式的应用层框架技术!2spring创建对象、处理对象的依赖关系以及框架整合!3Hibernate基于持久层的框架(数据访问层


1、Hibernate在ssh中的地位

(01)Hibernate入门


SSH
序号技术作用
1Struts基于mvc模式的应用层框架技术!
2spring创建对象、处理对象的依赖关系以及框架整合!
3Hibernate基于持久层的框架(数据访问层使用)!


2、DAO层的代码是如何编写的?

(1)操作XML数据

(2)使用Jdbc技术

a)原始的jdbc操作, Connection/Statement/ResultSet

b)自定义一个持久层框架, 封装了dao的通用方法

c)DbUtils组件, 轻量级的dao的组件;

d)Hibernate技术【hibernate最终执行的也是jdbc代码!】


3、ORM和Hibernate


3.1、ORM的概念

O,  Object  对象

R, Realtion 关系  (关系型数据库: Mysql, oracle…)

M,Mapping  映射

ORM, 对象关系映射!

 

ORM, 解决什么问题?

存储:  把对象的数据直接保存到数据库

获取:  直接从数据库拿到一个对象

想做到上面2点,必须要有映射


3.2、Hibernate和ORM的关系

Hibernate是ORM的实现!


4、组件学习的三方面

1、源码,引入jar文件

2、配置(.xml or .properties)

3、api


5、Hibernate入门

Hibernate开发步骤

(1)下载源码

版本:hibernate-distribution-3.6.0.Final,下载地址如下:

https://sourceforge.net/projects/hibernate/files/hibernate3/3.6.0.Final/

(01)Hibernate入门

选择141.0MB的文件,它的文件格式是.zip格式的,而下面的文件是.gz格式的。

解压之后,它的源码位于hibernate-distribution-3.6.0.Final\project\core\src目录下


(2)引入jar文件

a)hibernate3.jar (核心文件)

    位于hibernate-distribution-3.6.0.Final目录下

(01)Hibernate入门

b)required (必须引入的jar,共6个)

    位于hibernate-distribution-3.6.0.Final\lib\required目录下

(01)Hibernate入门

c)jpa 目录

    位于hibernate-distribution-3.6.0.Final\lib\jpa目录

(01)Hibernate入门

d)数据库驱动包(我用的是mysql的驱动包)

(01)Hibernate入门


(3)写对象以及对象的映射

a)Employee.java            对象

import java.util.Date;

public class Employee
{
	private int empId;
	private String empName;
	private Date workDate;
	public int getEmpId()
	{
		return empId;
	}
	public void setEmpId(int empId)
	{
		this.empId = empId;
	}
	public String getEmpName()
	{
		return empName;
	}
	public void setEmpName(String empName)
	{
		this.empName = empName;
	}
	public Date getWorkDate()
	{
		return workDate;
	}
	public void setWorkDate(Date workDate)
	{
		this.workDate = workDate;
	}
}

b)Employee.hbm.xml        对象的映射 (映射文件)

(.hbm可能是hibernate mapping的缩写)

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"Http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<!-- 

  This mapping demonstrates content-based discrimination for the
  table-per-hierarchy mapping strategy, using a formula
  discriminator.

-->

<hibernate-mapping package="com.rk.hibernate.a_hello">
	
	<class name="Employee" table="employee">
		
		<!-- 主键,映射 -->
		<id name="empId" column="id">
			<generator class="native"/>
		</id>

		<!-- 非主键,映射 -->
		<property name="empName" column="empName"></property>
		<property name="workDate" column="workDate"></property>

	</class>
	
</hibernate-mapping>


(4)主配置文件 src/hibernate.cfg.xml

a)数据库连接配置

b)加载所用的映射(*.hbm.xml)

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

<hibernate-configuration>
    <!-- 通常,一个session-factory节点代表一个数据库 -->
    <session-factory>
        <!-- 1. 数据库连接配置 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql:///test</property>	<!-- 等同于jdbc:mysql://localhost:3306/test -->
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.passWord">root</property>
		<!-- 
			数据库方言配置, hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql
		 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        
        <!-- 2. 其他相关配置 -->
		<!-- 2.1 显示hibernate在运行时候执行的sql语句 -->
		<property name="hibernate.show_sql">true</property>
		<!-- 2.2 格式化sql -->
		<property name="hibernate.format_sql">true</property>
		<!-- 2.3 自动建表  -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		
		<!-- 3. 加载所有映射 -->
		<mapping resource="com/rk/hibernate/a_hello/Employee.hbm.xml"/>
		
    </session-factory>
</hibernate-configuration>

(5)测试

package com.rk.hibernate.a_hello;

import java.util.Date;

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

public class App
{
	public static void main(String[] args)
	{
		// 对象
		Employee emp = new Employee();
		emp.setEmpName("张三");
		emp.setWorkDate(new Date());
		
		
		// 获取加载配置文件的管理类对象
		Configuration config = new Configuration();
		config.configure();
		// 创建session的工厂对象
		SessionFactory sessionFactory = config.buildSessionFactory();
		// 创建session (代表一个会话,与数据库连接的会话)
		Session session = sessionFactory.openSession();
		// 开启事务
		Transaction transaction = session.beginTransaction();
		//保存数据
		session.save(emp);
		// 提交事务
		transaction.commit();
		// 关闭
		session.close();
		sessionFactory.close();
		System.out.println("Over");
	}
}


您可能感兴趣的文档:

--结束END--

本文标题: (01)Hibernate入门

本文链接: https://www.lsjlt.com/news/35325.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • (01)Hibernate入门
    1、Hibernate在SSH中的地位SSH序号技术作用1Struts基于mvc模式的应用层框架技术!2Spring创建对象、处理对象的依赖关系以及框架整合!3Hibernate基于持久层的框架(数据访问层...
    99+
    2022-10-18
  • 01、Docker入门
    目录 1、Docker是什么 2、Docker与虚拟化 3、Docker虚拟化的好处 好处一:应用部署方便 好处二:服务器同等配置,性能更优,利用率更高 4、核心概念  5、CentOS7 安装docker(在线方式) 6、镜像 7、Doc...
    99+
    2023-09-04
    linux 运维 服务器
  • 爬虫入门01
    1. 请求头中最常见的一些重要内容 User-Agent : 请求载体的身份标识(⽤啥发送的请求)Referer: 防盗链(这次请求是从哪个⻚⾯来的 反爬会⽤到)cookie: 本地字符串数据信息(⽤户登录信息, 反爬的token) 2. ...
    99+
    2023-08-30
    爬虫
  • hibernate+spring入门实例
    hibernate+spring基础整合入门*****************************************映射数据库表 Users.javapackage com.hs.bean;public class Users ...
    99+
    2023-06-03
  • MySQL Shell:01 从入门到蒙圈
    什么是MySQL Shell MySQL Shell 是Oracle官方提供的一个交互式工具,用于开发和管理MySQL的服务器。支持JavaScript、SQL、Python...不,是木兰接口。 可使用它来执行数据查询、更新以及各种管理...
    99+
    2016-06-19
    MySQL Shell:01 从入门到蒙圈
  • hibernate入门的简单操作
    单表基本操作首先映射要操作的数据库表:以Student为例:public class Student{ private Integer SId; private String Sname; private String SAge; publ...
    99+
    2023-06-03
  • 13.django入门01(django入门初探视图,模板,路由)
    一、django的基本使用流程。pip install django #安装django创建一个project: django-admin startproject mysite---mysite...
    99+
    2022-10-18
  • mycat学习01-- mycat我带你入门
    请耐心读完整篇文章,过程中出现的错误点在文章结尾都有总结和解决办法。服务器架构安装MySQL创建mysql用户groupadd mysqluseradd -r -g mysql -s /bin/false ...
    99+
    2022-10-18
  • 【计理01组07号】JDBC入门教程
    博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,...
    99+
    2019-06-29
    【计理01组07号】JDBC入门教程
  • Java开源项目Hibernate快速入门
    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse,...
    99+
    2023-06-03
  • [转载]史上最简单的Hibernate入门简介
    一、前言    用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司...
    99+
    2023-06-03
  • 「从零单排canal 01」 canal 10分钟入门(基于1.1.4版本)
    1.简介 canal [kə"næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据 订阅 和 消费。应该是阿里云DTS(Data Transfer Service)的开源版本。 2.提供的能...
    99+
    2017-03-07
    「从零单排canal 01」 canal 10分钟入门(基于1.1.4版本)
  • 牛客刷题总结——Python入门01:输入输出、字符串、类型转换
    🤵‍♂️ 个人主页: @北极的三哈 个人主页 👨‍💻 作者简介:Python领域优质创作者。 📒 系列专栏:《牛客题库-Python篇》 🌐推荐《牛客网》——找工作神器|笔试题库|面试经验...
    99+
    2023-09-05
    python 开发语言 面试
  • Java对象持久化技术之Hibernate入门之一 (1)(转)
    Hibernate是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。在Java应用中使用Hibernate包含以...
    99+
    2023-06-03
  • 【猿灰灰赠书活动 - 01期】- 【Python网络爬虫入门到实战】
    说明:博文为大家争取福利,与机械工业出版社合作进行送书活动 图书:《Python网络爬虫入门到实战》 一、好书推荐 图书介绍 本书介绍了Python3网络爬虫的常见技术。首先介绍了网页的基...
    99+
    2023-09-05
    python
  • 走进JavaWeb技术世界13:Hibernate入门经典与注解式开发
    本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h3pl/Java-Tutorial喜欢的话麻烦点下Star哈文章首发于我的个人博客:www.how2pla...
    99+
    2023-06-02
  • 2011-12-01 SQL注入的防备
    http://www.itpub.net/thread-1499223-21-1.html 207楼 我创建如下的两张表并填入数据: CREATE TABLE plch_name...
    99+
    2022-10-18
  • hibernate怎么防止sql注入
    hibernate防止sql注入的方法:使用named parameter方法(在查询字符串中使用:),例如:usernameString//前台输入的用户名passwordString//前台输入的密码//hql语句String quer...
    99+
    2022-10-20
  • golang入门难不难?怎么入门?
    从一位刚刚开始学习Golang的小白的角度出发,Golang入门难不难的问题一直让我非常纠结。一方面,Golang作为一门新兴的编程语言,其设计理念和语法都比传统的编程语言有所不同,对于新手来说,学习曲线会相对较陡。另一方面,由于Golan...
    99+
    2023-05-14
  • hibernate的SQL如何防止注入
    hibernate防止SQL注入的方法:使用named parameter方法(在查询字符串中使用:),例如:usernameString//前台输入的用户名passwordString//前台输入的密码//hql语句String quer...
    99+
    2022-10-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作