• Hibernate增删查改语句


    我用的数据库是MySQL,实体类叫Product

    create table Product (
      proId integer not null auto_increment,
      proName varchar(50) not null,
      proPrice float not null,
      proCount integer not null,
      proDesc varchar(250) not null,
      primary key (proId)
    )

    1.Hibernate添加数据操作

    Product product=new Product();
    
    product.setProName("空调");
    product.setProPrice("1888");
    product.setProCount("50");
    product.setProDesc("变频空调");
    
    Transaction trans = session.beginTransaction(); session.save(product);
    trans.commit();     //任何有关数据库更新的操作都是commit后进数据库的

    2.Hibernate删除数据操作

    对象删除

    Transaction trans = session.beginTransaction();
    Product pro=new Product();
    pro.setProId(8);  //用下面那句注释的语句效果也是一样的
    //     Product pro = (Product)session.get(Product.class, 8);
    session.delete(pro);
    trans.commit();

    注意,只能通过id来删除数据,不能通过title或content来删除,会报缺少标示符错误。

    hql语句删除

    String hql="from Product where ProId=:id";
    Query<Product> query=session.createQuery(hql,Product.class);
    query.setParameter("id", 8);    //赋值给id主键
    List<Product> list=query.getResultList();     //先把数据查出来
    pro=list.get(0);
    Transaction trans = session.beginTransaction();
    session.delete(pro); //执行删除语句
    trans.commit();
     

    3.Hibernate查询数据操作

    hql查询

    String hql="from Product";
            
    Query<Product> query=session.createQuery(hql,Product.class);
            
    List<Product> list=query.getResultList();

    HQL是Hibernate主推的查询方式,和普通SQL语句也比较接近,但很重要一点不同就是HQL中from后面的是JAVA类名,不是库表名,切忌!!!如果查询全字段 "select *" 可以省略不写。

    4.Hibernate修改数据操作

    //第二个参数是要修改的主键
    Product product=session.get(Product.class,8);
    
    product.setProName("空调");
    product.setProPrice("1888");
    product.setProCount("100");
    product.setProDesc("变频空调");
    Transaction trans = session.beginTransaction();
    session.update(product);
    trans.commit();
     

    其实这些事务的开启关闭以及session的关闭都可以交给Spring的声明式事务管理来处理

    我就不写的那么详细了

  • 相关阅读:
    数据结构-二叉树--二叉搜索树
    Django之Model操作
    Django之Form组件
    Django之url(路由)配置
    Django框架之模板继承和静态文件配置
    Django框架之第三篇模板语法(重要!!!)
    Django ORM操作及进阶
    django 之 ORM操作多表联查总结
    人生苦短,我学python之python xml数据解析
    人生苦短,我学python之python re正则表达式
  • 原文地址:https://www.cnblogs.com/qq1272850043/p/6007755.html
Copyright © 2020-2023  润新知