• Hibernate学习笔记(一)-->数据库单表操作


    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快速查找单条数据



  • 相关阅读:
    判断一个对象是否为空
    viewflipper的高度设置
    Android利用ViewFlipper实现屏幕切换动画效果
    锁屏状态下点亮屏幕,并弹出闹钟提示信息
    android如何取消闹铃
    luogu P1880(区间dp)
    luogu P2014 选课(树形dp)
    luogu P1122(树形dp)
    luogu P1352 (树形dp)
    luogu P1541 (dp)
  • 原文地址:https://www.cnblogs.com/zbrave/p/6372104.html
Copyright © 2020-2023  润新知