广告
返回顶部
首页 > 资讯 > 数据库 >Hibernate初步部署
  • 464
分享到

Hibernate初步部署

2024-04-02 19:04:59 464人浏览 八月长安
摘要

下载全套文件: hibernate-release-4.1.7.Final.zip 目录结构Documentation文件夹下是开发帮助文档Lib文件夹是开发使用的库,其中该文件夹下面的requi

下载全套文件: hibernate-release-4.1.7.Final.zip

 

目录结构

Documentation文件夹下是开发帮助文档

Lib文件夹是开发使用的库,其中该文件夹下面的required目录是开发时必须导入的jar文件;

Project文件夹是项目源码文件

 

Hibernate初步部署

JDBC与Hibernate的比较:

 

Hibernate初步部署

Hibernate初步部署

 

 

Hibernate的初步配置部署:

1.     创建WEB项目

2.     添加响应需要的Hibernate的jar包

3.     创建Java Bean业务实体类

4.     创建实体类映射的配置文件:**.hbm.xml

5.     创建Hibernate的配置文件hibernate.cfg.xml

6.     创建测试类测试hibernate是否配置成功

实体类:UserInfo.java

  1. public class UserInfo  

  2. {  

  3.    private int userid;  

  4.    private String userName;  

  5.    private String userPwd;  

  6.    private Date birthday;  

  7.  //省略了属性各种get和set方法  

  8. //创建含有id的构造函数  

  9.    public UserInfo(int id)  

  10.    {  

  11.        this.userid=id;  

  12.    }  

  13.     public UserInfo(int userid, String userName, String userPwd, Date birthday)  

  14.     {  

  15.         super();  

  16.         this.userid = userid;  

  17.         this.userName = userName;  

  18.         this.userPwd = userPwd;  

  19.         this.birthday = birthday;  

  20.     }  

  21.     //无参的构造函数是必须要有的  

  22.     public UserInfo()  

  23.     {  

  24.     }  

  25. }  

 

 

实体类的配置文件UserInfo.hbm.xml

(配置文件尽量和实体类名字去的一致方便管理和实体类放在同一个包中)

  1. <?xml version="1.0"?>  

  2. <!DOCTYPE hibernate-mapping PUBLIC  

  3.         "-//Hibernate/HibernateMapping DTD 3.0//EN"  

  4.      "Http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  

  5. <hibernate-mapping package="entity">  //package包指定实体类的包  

  6.     <class name="UserInfo" table="luser">    

  7. //name指定实体类名  table为数据库中实体类对应的表名如果没有指定就和类名一致  

  8.        <id name="userid">  

  9.             <generator class="native"/>  

  10.        </id>  

  11. //id标识主键的字段 class=native标识自增长  

  12.        <property name="userName" column=”name” />  

  13. //property指定属性的字段,column可以指定数据库中对应字段的名称,如果没有就和实体类的属性名一致  

  14.        <property name="userPwd" />  

  15.        <property name="birthday" />  

  16.     </class>  

  17. </hibernate-mapping> 

 

Hibernate的配置文件hibernate.cfg.xml

 

 

  1. <!DOCTYPE hibernate-configuration PUBLIC  

  2.     "-//Hibernate/HibernateConfiguration DTD 3.0//EN"  

  3.     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">  

  4. <hibernate-configuration>  

  5.     <session-factory>  

  6.         <!-- 显示执行的sql语句 -->  

  7.         <property name="show_sql">true</property>  

  8.         <!-- 格式化sql语句 -->  

  9.         <property name="fORMat_sql">true</property>  

  10.         <!-- 配置数据库各种数据 -->  

  11.         <!-- 配置数据库本地语言 -->  

  12.         <property name="hibernate.dialect">org.hibernate.dialect.oracle10gDialect</property>  

  13.         <!-- 数据库驱动 -->  

  14.         <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>  

  15.         <!-- 数据库url -->  

  16.         <property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.3.252:1521:orcl</property>  

  17.         <!-- 配置数据库的用户名和密码 -->  

  18.         <property name="hibernate.connection.username">bam1</property>  

  19.         <property name="hibernate.connection.passWord">bam1</property>  

  20.         <!-- 设置数据定义语言操作的方式 -->  

  21.         <property name="hibernate.hbm2ddl.auto">update</property>  

  22.         <!-- 加载对象关系映射文件 -->  

  23.         <mapping resource="entity/UserInfo.hbm.xml"/>  

  24.     </session-factory>  

  25. </hibernate-configuration>  

 

测试类Test.java

添加一条数据:

  1. public static void add()  

  2.     {  

  3.          

  4.         //第一步:读取Hibernate的配置文件  hibernamte.cfg.xml文件  

  5.         Configurationcon=new Configuration().configure();  

  6.         //第二步:创建服务注册构建器对象,通过配置对象中加载所有的配置信息  

  7.         ServiceReGIStryBuilderregbulider=newServiceRegistryBuilder().applySettings(con.getProperties());  

  8.         //创建注册服务  

  9.         ServiceRegistryreg=regbulider.buildServiceRegistry();  

  10.         //第三步:创建会话工厂  

  11.         SessionFactorysessionFactory=con.buildSessionFactory(reg);  

  12.         //第四步:创建数据操作会话  

  13.         Sessionsession=sessionFactory.openSession();  

  14.         //创建对象  

  15.          */  

  16.         UserInfohanhan=new UserInfo();  

  17.         hanhan.setUserName("hanhan313");  

  18.         hanhan.setUserPwd("123");  

  19.         hanhan.setBirthday(new Date());  

  20.         /*  

  21.         //创建事物  

  22.         Transactiontran=session.beginTransaction();  

  23.         //保存数据  

  24.         session.save(hanhan);  

  25.         //提交事物  

  26.         tran.commit();  

  27.         //关闭对话  

  28.         session.close();  

  29.          

  30. }  

 

查询一条数据:

创建了session回话后

//查询id为10的userinfo的用户信息

UserInfouser=session.get(UserInfo.class,10);

更新一条数据:

首先查询出数据

UserInfo user=session.get(UserInfo.class,10);

再对user进行数据修改后

再通过获取到session回话

session.update(user)

删除一条数据:

删除数据时将需要删除的id数据包装成对象

比如:

UserInfouser=new UserInfo();

User.setUserId(10);

session.delete(user);  //删除时就会自动获取到user中id进行删除

hibernate的流程:

Hibernate初步部署

 

持久化JAVA类必须遵循的原则

 

1、为类的持久化字段声明访问方法(get/set),Hibernate对JavaBeans风格的属性实行持久化。

2、实现一个默认的构造方法,这样的话Hibernate就可以使用Constructor.newInstance()方法来实例化对象。

3、如果是集合类型的属性,它的类型必须定义为集合的接口,例如:List、Set

4、提供一个标识属性(Identifier property),如果没有该属性,一些功能不起作用,比如:级联更新,session.saveOrUpdate()。

 

对象的状态:

瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。

持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。

脱管(detached):数据库中有数据与之对应,但当前没有session与之关联;托管对象状态发生改变,hibernate不能检测到。

Hibernate初步部署

您可能感兴趣的文档:

--结束END--

本文标题: Hibernate初步部署

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

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

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

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

下载Word文档
猜你喜欢
  • Hibernate初步部署
    下载全套文件: hibernate-release-4.1.7.Final.zip 目录结构Documentation文件夹下是开发帮助文档Lib文件夹是开发使用的库,其中该文件夹下面的requi...
    99+
    2022-10-18
  • Rainbond自动部署初始化Schema的数据库步骤教程
    目录为什么使用Rainbond?Schema初始化在传统模式中一般有两种方案:目录结构Dockerfile文件为什么使用Rainbond? 我们使用容器的方式部署数据库组件,特别是企...
    99+
    2022-11-13
  • redis初探之主从与哨兵部署
    一、单机版radis部署 1、安装gcc yum install gcc 2、安装redis tar -zxvf redis-3.2.9.tar.gz -C /usr/src/ cd /usr/src/re...
    99+
    2022-10-18
  • MySQL主从同步部署
    主从同步部署1、两台相同版本的mysql数据库,一台做主库,一台从库 主库开启binlog在配置文件中的[mysqld]模块中添加log-bin=mysql-bin和server-id=1,一定要保证两台主...
    99+
    2022-10-18
  • 部署mysql主从同步
    部署mysql主从同步一、什么是mysql主从同步主:正在被客户端访问的数据库服务器,被称作主库服务器。从:自动同步主库上的数据的数据库服务器,被称作从库服务器。 二、配置mysql主从同步2.1 拓扑图数...
    99+
    2022-10-18
  • 部署MySQL的详细步骤
    本篇内容主要讲解“部署MySQL的详细步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“部署MySQL的详细步骤”吧! 1.新建配...
    99+
    2022-10-18
  • Docker部署MicrosoftSqlServer详细步骤
    目录1 背景2 创建容器3 修改SA密码4 链接mssql5 容器外链接mssql总结1 背景 自 SQL Server 2019 CU3 起,支持 Ubuntu 18.04。 自 ...
    99+
    2022-11-12
  • 初识MariaDB之5——主从复制原理及部署
    一、原理简介当前主流的数据库为了保证数据一致性,都采用支持事务类型的数据存储引擎,如innodb等,当一个事务提交后先写到事务日志中,在进行数据修改,并且将对数据产生任何影响的语句都记录在二进制日志中,主从...
    99+
    2022-10-18
  • Docker下部署lnmp详细步骤
    目录拉取一个centos镜像基于centos生成nginx容器基于centos生成mysql容器基于centos生成php容器制作镜像用新镜像创建lnmp容器测试拉取一个centos...
    99+
    2022-11-12
  • Docker部署Mysql8的实现步骤
    目录一、前置需求二、部署方法三、访问测试一、前置需求 1.linux系统 本人用的Centos7 2.安装docker 参考这篇文章 二、部署方法 1.拉取mysql8镜像 docker pull mysql:8 2...
    99+
    2022-07-06
    Docker部署Mysql8
  • MHA的安装和部署步骤
    本篇内容介绍了“MHA的安装和部署步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!###########...
    99+
    2022-10-18
  • docker部署confluence的完整步骤
    Confluence 是收费的,但是可以破解使用(提倡购买,支持正版) 本文使用的镜像是基于他人(镜像&破解)打包的,本文的镜像是直接将破解文件置入容器了,省去了自己去捣鼓破...
    99+
    2022-11-12
  • IIS部署ASP.NET5的实现步骤
    目录介绍安装环境安装ASP.NET Core托管捆绑包发布项目托管方式进程内托管(IIS HTTP 服务器)进程外托管(Kestrel服务器)部署项目参考文档介绍 Internet ...
    99+
    2022-11-12
  • DockerCompose部署Nginx的方法步骤
    使用Docker Compose部署Nginx,创建docker-compose.yaml: [root@192 ~]# vim docker-compose.yaml 输入以下内容...
    99+
    2022-11-13
  • Docker部署portainer的详细步骤
    portainer Portainer是Docker的图形化管理工具,由GO语言编写的,提供状态显示、应用模板快速部署、对于Docker(容器、镜像、网络、数据卷)的基本操作、日志显...
    99+
    2022-11-13
  • docker部署kafka的方法步骤
    目录1. 搭建docker2.进入容器3.修改配置文件4.测试kafka1. 搭建docker 这里我直接用的是docker-compose部署,所以需要提前安装好compose。 ...
    99+
    2022-11-12
  • docker部署fastapi的实现步骤
    项目结构: pycharm结构: 拷贝到xftp时的结构  入口文件:main.py from fastapi import FastAPI app = FastA...
    99+
    2023-03-02
    docker部署fastapi
  • Centos7下部署nginx(三种方式安装部署,图文结合超详细,适合初学者)
    Centos7下部署nginx ngxin是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器, Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-...
    99+
    2023-08-18
    nginx 服务器 运维
  • C#安装部署项目的步骤
    本篇内容主要讲解“C#安装部署项目的步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#安装部署项目的步骤”吧!C#安装部署1 新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型-&...
    99+
    2023-06-17
  • Docker上部署Nginx的方法步骤
    目录1.从 docker 下载 Nginx 镜像2.创建挂载目录3.为了保证文件的正确性,建议先进入容器把对应的文件给复制出来4.接下来修改下 default.conf 文件就好了5...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作