JAVA操作数据库总结之组件篇-Hibernate

Hibernate实战之操作MySQL数据库(2024-1-8) Hibernate助力HQL执行MySQL数据库操作实战,增删改查玩转应用 阅读详情
这次我们谈一谈JAVA操作数据库的另外一种方式,那就是Hibernate组件。
      Hibernate是中小型项目使用的最多的一种持久化技术。而它最重要的概念就是ORM(对象-关系映射)。对于这个概念,许多资料上的解释都不一样,比较大众化的解释是,将数据库中的记录映射到程序中,使其成为对象来操作,就象操作JAVA的普通类一样。除了这些,它还可以为我们管理连接对象,事务处理等操作。所以使用起来很方便。
      首先我们来看一下一个简单的Hibernate程序的结构。它有两个xml文件很重要,第一个就是*.cfg.xml文件。它描述了Hibernate和数据库之间的配置信息。比如连接池、数据源。
 
      这里不得不说到的一个类就是SessionFactory类,它是Hibernate里面最重要的一个类。基本上所有其他操作API都是从这个类获得实例的。而这个配置文件中,描述了SessionFactory的基本内容,也就是连接信息,和另外一个非常重要的内容,就是:*.hbm.xml文件。其实,如果你使用工具的话(比如MyEclipse,JBuilder),这些东西都可以自动生成。先还是讲一下这些东西都描述的是些什么内容吧。
      myeclipse.connection.profile  它描述的是一个连接的名字
      connection.url  它描述了连接字符串
      connection.username/connection.password  描述了用户名和密码
      connection.driver_class  描述了驱动类
      dialect  这个东西描述了Hibernate对Oracle9i提供支持的类
      在这个文件中还可以描述事务和其他的操作。
      另外一个重要的文件是*.hbm.xml文件,它描述了数据库中的表的信息。不过在说这个文件之前,我们先要用类来描述数据库中的记录。
      public class StuInfo
      {
          private  Integer stuID;
          private String stuName;
          private void setStuID(Integer id){this.stuID=id;}
            public  Integer getStuID(){return stuID;}
            public  void setStuName(String name){this.stuName=name;)
          public  String getStuName(){return stuName;}
        }
      需要注意的是:在JAVA中不能用基本数据类型去描述数据库中的类型。然后我们再来看看*.hbm.xml文件中是如何描述的吧。
      需要说明的是,这里使用了Oracle里面的序列来实现自动增长,而且让stuID字段的set方法是私有的。这是因为stuID字段是主键字段,而且又是自动增长的,所以不需要人工修改它的值。
      以上这些都只是使用Hibernate的准备工作,接下来就可以操作Hibernate来实现数据库的逻辑。
      首先必须创建一个Configuration对象来加载我们的*.cfg.xml文件。
      Configuration cfg = new Configuaration();
      cfg.configure("/cfg/hibernate.cfg.xml");//cfg包下面
      然后用这个对象来创建SessionFactory对象。这个对象很重要,它是用来创建Hibernate会话和其他类的重要类。
      SessionFactory factory = cfg.buildSessionFactory();
      Session session = factory.openSession();
      有了Session之后,我们就可以用它来创建各种操作数据库的类。先来说说查询吧。我们需要使用一种叫做HQL的查询语言,它是Hibernate特有的一中查询语言,和我们熟悉的SQL很象。当然Hibernate还提供了其他的查询方式,等下次有机会的时候再说吧。
        Query query = session.createQuery("from StuInfo");
      List list = query.list();//执行查询并获得集合
      //迭代数据
      Iterator it = list.iterator();
      while(it.hasNext()){
            StuInfo stu = (StuInfo)it.next();
          System.out.println(stu.getStuName());
      }
      这就是一个简单的查询。这里需要注意的是,查询语句中的表必须和StuInfo.hbm.xml中映射的表名一样,其他的字段也是。下面说说插入、更新和删除。
      想要修改和更新,或者删除,我们必须先得到要修改的对象。所以先要使用查询来获取对象。而且修改的过程当中有可能会报错,所以我们要使用事务处理。
      Transaction trans = session.beginTransaction();
    trans.begin();//开始事务
      Query query = session.createQuery("from StuInfo where stuID=1");
      List list = query.list();
    if (!list.isEmpty()) {
      Iterator it = list.iterator();
      StuInfo stu = (StuInfo) it.next();
      stu.setStuname("roddick");
      session.update(stu);//修改更新,删除是session.delete(stu);
      trans.commit();//提交事务
      session.close();//关闭会话
    }
      以上就是Hibernate的简单操作,是不是很容易。需要注意的是,这里的表映射是没有主外键关系的,如果表和其他表有主外键关系的话,在创建SessionFactory对象的时候是会报错的。要处理这种情况必须在建立映射关系的时候考虑一对多映射。这种情况我们下次有机会再说吧。
Java 结合 Hibernate 应对复杂数据库操作 在现代软件开发中,数据库操作是至关重要的一部分。复杂的数据库操作,如多表关联查询、事务处理、数据持久化等,给开发人员带来了很大的挑战。Java 作为一种广泛使用的编程语言,与 Hibernate 框架结合可以有效地简化这些复杂的数据库操作。本文的目的是详细介绍如何使用 JavaHibernate 来应对复杂数据库操作,范围涵盖 Hibernate 的基本概念、核心算法、项目实战以及实际应用场景等方面。 阅读详情

相关推荐

Java中JTable组件的使用与项目操作指南

本文还有配套的精品资源,点击获取 简介: JTable 是Java Swing库中用于展示和操作二维表格数据的重要组件,它支持数据编辑、排序、选择和自定义显示。本文将详细介绍如何创建 JTable ,包括数据模型的建立、行和列的添加,以及如何在 JTable 的行和列中插入项目。同时,本文也会介绍如何通过事件监听、表头定制和排序功能...

weixin_29867767的博客 2760

java数据库连接层组件,课连接mysql,mssqlserver等,一直在用它

java连接池代码,有兴趣的可以看看,自己一直用的是它,很好用

Hibernate非注解操作数据库及Hibernate3连接SQL问题解决

简介:Hibernate是一个强大的ORM框架,它简化了Java开发者对数据库操作。文章深入讲解了如何在Hibernate中实现免注解的数据库操作方法,并提供了在Hibernate 3版本中遇到的连接SQL问题的解决方法。涵盖从配置Hibernate到事务管理,以及对连接池问题、驱动兼容性、SQL查询异常、实体状态异常和缓存问题的排查和解决策略。

weixin_42476987的博客 1142

Java数据库操作组件1.1

在原有基础之上扩充了所支持的数据类型。呵呵

完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)

原博客地址:http://www.open-open.com/lib/view/open1432109741614.html 构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。G

javaee1234的博客 1393

Java课程设计——资源管理系统的设计与实现

Java课程设计——资源管理系统的设计与实现

kk爱闹 2044

52类110个主流Java组件和框架

以下排序是按照从技术组件到开发框架到代码工具,也有一些实在不好分类的,就放到最后了。WEB 容器Tomcathttps://tomcat.apache.org/Jettyhttps://www.jetty.com/JBosshttps://www.jboss.org/Resinhttps://caucho.com/products/resin数据库H2https://h2...

Java知音 650

Hibernate 的DB操作模式

对于经常用到Hibernate 进行DB操作,有一定的模式,在数据库的访问DAO接口的实现类DAOImpl中的某个方法内操作DB的开发步骤模型依次如下: ------------------------------------------------------------------------------------------------------------ 事先建立hibernat

shenzhenNBA的专栏 1152

基于Java的村镇社区数据管理系统

【12/17/05】基于Java的军训管理系统--2024计算机毕业设计 【12/26/03】基于Spring Boot框架的大学二手交易平台的设计与实现-2024计算机毕业设计 【12/22/03】基于Java的校园平台智慧校园--2024计算机毕业设计 【12/19/05】基于Java的校园跑腿系统--2024计算机毕业设计 PHP简单实现中英文双语网站--2024计算机毕业设计 基于C#的绩效考评与分析系统的设计与实现 Opengauss数据库学习二:CentOS7虚拟机安装Opengauss 【12

毕业设计大牛哥 1200

hibernate数据库操作

hibernate是一种ORM(对象/关系数据库映射)框架,即可以直接通过一个实体对象建立与关系数据库的直接关系,通过这种框架我们在编程的时候可以避免对关系数据库进行直接操作,而是通过对象实例进行操作,间接地对数据库进行一系列操作。这一次先记录实体类与数据库进行映射,并且完成第一次的对数据库表的插入操作。 大体的思路分为以下几个步骤: (1)导入hibernate必须要用的jar包,将这些ja...

qq_40133908的博客 3365

Java中的Hibernate是什么?如何使用Hibernate

总之,Transaction是Hibernate架构中非常重要的组件,它确保了Java应用程序与数据库之间的顺畅通信,并提供了许多其他有用的功能。总之,Session是Hibernate中非常重要的组件,它为开发人员提供了一种简单而强大的方式来管理Java应用程序与关系数据库之间的交互,并使得进行CRUD操作和数据检索变得更加容易和高效。总之,实体类应该是与Hibernate框架兼容的Java类,它应该定义数据库表中的列,并提供用于访问和操作这些列的方法。实体类应该包含与数据库表中的列对应的属性。

2301_77769537的博客 3625

Java数据操作组件(过期了)

这是个数据库操作组件,使用它,可以减少数据层代码至少一半以上,只需一句代码即可完成一次增(删改查)操作。同时支持多表关联。

java 操作数据库 3实例 (三种不同数据库操作增删改查)

java 操作数据库 3实例 (三种不同数据库操作增删改查) 1.实际用到什么数据库替换相应的JDBC驱动包 2.已经封装接口增删改查 3.表结构在项目txt文本中,对应的驱动链接Driver_comment.txt中有说明

Java 数据库连接与操作:使用 Hibernate 进行对象关系映射

Hibernate 是一个开放源代码的对象关系映射框架,它位于 Java 应用程序和数据库之间,充当着中间层的角色。其核心作用是将 Java 对象模型与数据库的关系模型进行映射,使得开发者可以使用 Java 对象来表示数据库中的数据,并通过操作这些 Java 对象来间接操作数据库。例如,开发者无需编写复杂的 SQL 语句来插入、查询、更新和删除数据,只需要对对应的 Java 对象进行操作Hibernate 会自动将这些操作转换为相应的 SQL 语句并执行。

数字魔方操控师的博客 1087

Java Hibernate框架实践教程:数据库操作简化指南

Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了Java应用程序和关系数据库之间的交互。通过将对象模型映射到数据库结构,Hibernate帮助开发者减少底层SQL代码的编写,从而提高开发效率和降低维护成本。实体类是与数据库表相对应的Java类,它们通过注解或者XML映射文件来描述与数据库表之间的映射关系。在Hibernate框架中,一个实体类通常包含以下几个基本特性:唯一标识:每个实体类都应该有一个主键(通常是@Id。

weixin_35754962的博客 1008

javahibernate组件映射

1.在开发中,有的类信息比较复杂,而且某几个信息可以组成某一个部分,这个时候可以采用组件映射,组件映射是一张表映射到多个类。表结构 2.类的设计 Link.java public class Link { private String phone; private String qq; private String email; pr...

weixin_30410119的博客 93

Hibernate与Access整合:实现轻量级Java数据库操作

本文还有配套的精品资源,点击获取 简介:本项目实例演示了如何将Hibernate ORM框架与Microsoft Access数据库集成,用于实现Java中的数据CRUD操作。通过本项目,读者可以学习Hibernate的基本操作,如实体类映射、会话管理、事务处理,以及如何在非传统数据库环境中应用这些技术。项目中详细描述了Hibernate的配置、实体映射、CRUD实现、事务...

weixin_28939623的博客 1044
上一篇: 什么是Hibernate
下一篇: JAVA笔试题目整理
Influence
博客等级 码龄20年 3粉丝 3原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值