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的聲明式事務管理來處理

我就不寫的那么詳細了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM