Hibernate增删查改语句

来源:互联网 发布:服务贸易进出口数据库 编辑:程序博客网 时间:2024/05/22 07:07
我用的数据库是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的声明式事务管理来处理

我就不写的那么详细了

 

0 0