我用的數據庫是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的聲明式事務管理來處理
我就不寫的那么詳細了