Hibernate框架是一个全ORM映射框架,是一个非常流行的数据库操作框架之一,现在比较流行的还有MyBatis半ORM映射框架

在MyEclipse IDE开发工具中,可以很轻松的搭建Hibernate框架。

一、搭建一个项目

1.首先在MyEclipse中搭建一个web项目。

2.选中项目右键-->myeclipse-->Project Facets-->找到hibernate。这样就为项目添加了hibernate支持

3.打开hibernate.cfg.xml配置文件,在可视化编辑页面配置数据库连接,和事务,如下图,数据库根据本地数据库进行配置。

  左边配置数据库连接,右上部分配置事务show_sql=true : 作用是在控制台输出sql语句,hbm2ddl.auto=update : 数据库自动更新

  右下方的不要管

4.通过反编译创建一个和数据库中已经存在的表对应的bean实体类,具体操作略。

二、数据库具体操作(增删该查)

1.事务管理和增删改,先上代码

public static void main(String[] args) {

        //获取Session对象
Session s = HibernateSessionFactory.getSession();
//开启事务
// s.beginTransaction();
//数据库数据添加
// s.save(new DateTxt(new Date(), "ss"));
//提交事务
// DateTxt data = (DateTxt)s.get(DateTxt.class, 50);
// data.setTime(new Date());
     //修改数据
// s.update(data); //删除信息
// s.delete(data);
// s.getTransaction().commit();
//关闭事务
// s.close();
}

通过代码已经很清晰的看到如何操作了,下面总结一下

beginTransaction()开启事务

getTransaction().commit()提交事务

getTransaction().rollback()回滚事务

save(对象)保存数据

update(对象)修改数据

delete(类名.class,主键ID)删除数据

2.查询。

查询方法比较多,就比进行太多代码演示了。

     //基础查询,其他查询都是在此基础上进行扩展
//查询语句createQuery(HQL查询语句) from + 表对应的类名 返回Query对象
//list(): 返回一个List集合
String hql = "from DateTxt";
List<DateTxt> lists = s.createQuery(hql).list();
for (DateTxt dateTxt : lists) {
System.out.println(dateTxt.toString());
}
//分页查询
List<DateTxt> lists2 = s.createQuery("from DateTxt").setFirstResult(0).setMaxResults(2).list();
for (DateTxt dateTxt : lists2) {
System.out.println(dateTxt.toString());
}
//聚合函数查询,count()查询数据总数类型要使用Long
Integer max = (Integer) s.createQuery("select min(id) from DateTxt").uniqueResult();
System.out.println(max);

hibernate单表查询总结
* 1.from + 表对应的类名 : 查询所有
* 2.select new 表对应的类(变量1,变量2,。。。) from 表对应的类名:查询给定列的数据
  需要在bean里面给出对应的构造器
* 3.from 类名 where 属性名 = ?:条件查询
  在createQuery()方法后调set*(下标或属性名,value)方法给值
* 4.from 类名 where 属性名 like ?:模糊查询
  在createQuery()方法后调set*(下标或属性名,%value%)方法给值
* 5.from 类名 where 属性名 like =:别名 :通过 别名查询
  在createQuery()方法后调set*(别名,value)方法给值
* 6.在查询语句后调用.uniqueResult()返回单条查询结果
* 7.在查询语句后调用.setFirstResult(第几条数据开始).setMaxResults(查询的最大条数)实现分页查询
* 8.Long max = (Long) s.createQuery("select count(id) from DateTxt").uniqueResult():聚合函数查询,返回数据的总数
* 9.把上面的count换成max/min : 返回最大索引/最小索引
* 10.session.createSQLQuery(原生SQL语句).addEntity(类名.class) : 使用原生sql语句查询
* 11.select 别名 from 类名 as 别名 : 通过别名返回结果集,通常用于多表查询
* 12.session.get(类名.class ,主键ID):通过主键id快速查找单条数据



Hibernate学习笔记(一)-->数据库单表操作的更多相关文章

  1. day 46 Django 学习3 数据库单表操作以及反向解析

    前情提要: Django 已经学了不少了, 今天学习链接数据库的操作.以及相关的反向解析等 一:反向解析 1:反向解析模板层 跳转时设定url会随着前面的路由改变而改变         2:反向解析之 ...

  2. c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--单表操作)

    一.概述 前面2篇文章,介绍了使用SqlCommand对象利用sql命令来操作数据库. 这篇文章我们来介绍使用c#的DataSet 和 DataAdaper对象操作操作数据库. 先来介绍下这两个对象是 ...

  3. Hibernate原理、配置及单表操作

    一.Hibernate的配置文档 其中:hbm2ddl.auto中的create表示每次修改数据的时候都会删除原有的表,生成新的表结构,原有的数据不再存在:update表示在原有数据的基础上进行更新, ...

  4. Django学习笔记之ORM多表操作

      创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关 ...

  5. hibernate学习笔记(4)表单操作

    User.hbm.xml的表单配置: ①主键 <id name="id" type="java.lang.Integer"> <column ...

  6. Hibernate学习笔记(四)—— 表与表的关系

    一.一对多|多对一 1.1 关系表达 1.1.1 表中的表达 建表原则:在多的一方创建外键指向一的一方的主键. 1.1.2 实体中的表达 [客户实体] public class Customer { ...

  7. MySQL学习笔记02_数据库和表的基本操作

    02_1 操作数据库 (1)创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specifica ...

  8. Django学习笔记之数据库-模型的操作

    模型的操作 在ORM框架中,所有模型相关的操作,比如添加/删除等.其实都是映射到数据库中一条数据的操作.因此模型操作也就是数据库表中数据的操作. 添加模型 添加模型到数据库中.首先需要创建一个模型.创 ...

  9. Hibernate和jsp做数据库单表的增删改查

    虽然很基础,但是我转牛角尖了~~~~这是几个文件 1.最重要的.Java文件 package com.chinasofti.hibb.struts; import org.hibernate.Sess ...

随机推荐

  1. 【发点感慨】我的cnblogs的文章被爬到了别的网站,阅读量比在cnblogs上还要高

    近期我写了挺多VictoriaMetrics的文章,在搜索相关文章的时候发现,我的文章被别的网站爬去了: 写写技术文章就是无偿分享给别人看的,越多人看到越多人受益,这一点没毛病. 但是: 爬了别人的文 ...

  2. PTM人员(产品技术经理)

    以下是一位PTM的工作总结: 责任感 作为PTM一定要有责任感,项目中的所有事情都要作为自己的事情,如果碰到有些项目中的工作没人负责,那么就是PTM的工作没有做到位.   全局观 作为PTM一定要比普 ...

  3. 阅读mybatis的源码的思路

    ■ 阅读源码mybatis操作数据库的过程: /* 测试查询 */ @Test public void testGet() throws IOException { // 1.从classpath路径 ...

  4. Solution -「Gym 102759G」LCS 8

    \(\mathcal{Description}\)   Link.   给定 \(m\),和长度为 \(n\),字符集为大写字母的字符串 \(s\),求字符集相同且等长的字符串 \(t\) 的数量,使 ...

  5. suse 12 二进制部署 Kubernetets 1.19.7 - 第12章 - 部署dashboard插件

    文章目录 1.12.0.创建namespace 1.12.1.创建Dashboard rbac文件 1.12.2.创建dashboard文件 1.12.3.查看pod以及svc 1.12.4.获取 d ...

  6. Spring Boot 自定义配置文件异常"expected single matching bean but found 2"

    运行环境:Spring Boot 2.5.0, IDEA 2020.3.2 异常详细信息: Injection of resource dependencies failed; nested exce ...

  7. 面渣逆袭:二十二图、八千字、二十问,彻底搞定MyBatis!

    大家好,我是老三,面渣逆袭系列继续,这节我们的主角是MyBatis,作为当前国内最流行的ORM框架,是我们这些crud选手最趁手的工具,赶紧来看看面试都会问哪些问题吧. 基础 1.说说什么是MyBat ...

  8. SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分库分表实践

    一.序言 在实际业务中,单表数据增长较快,很容易达到数据瓶颈,比如单表百万级别数据量.当数据量继续增长时,数据的查询性能即使有索引的帮助下也不尽如意,这时可以引入数据分库分表技术. 本文将基于Spri ...

  9. scrapy的安装与环境配置

    本人系统是win10 64位电脑 ide使用的是pycharm 此次学习内容源自慕课网大壮老师的<Python最火爬虫框架scrapy入门> 由于大壮老师使用的linux 所以有些东西需要 ...

  10. 软考高级及杭州E类人才申请经验分享

    目录 前沿 软考高项 什么是软考 软考的基本过程 报名 是否报班 高项考些什么以及需要哪些书 如何准备 杭州E类人才申请 如何申请 大概的流程 前沿 挺久没更新了,自从成为房奴后,看书的时间就变少了, ...