一、通过实例化的对象向数据库添加新记录
package com.yh.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; import com.yh.entity.Buyer; public class Demo { @Test public void doAdd() { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Buyer buyer = new Buyer(); buyer.setUsername("yehuan"); buyer.setPassword("123"); session.save(buyer); transaction.commit(); session.close(); sessionFactory.close(); } }
二、通过实例化的对象更新数据库中对应的记录
代码与添加类似,仅将save()方法改成update()方法,更新时以主键映射的属性为条件。
注:saveOrUpdate()方法两者都适用。
三、通过实例化的对象删除数据库中对应的记录
代码与添加类似,仅将save()方法改成delete()方法,删除时以主键映射的属性为条件。
四、查询数据库中的记录
1.根据主键对应属性查询(可用于实例化单个对象)
通过get()和load()方法
@Test public void doSingleQuery() { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); Buyer buyer = session.load(Buyer.class,"yehuan1"); System.out.println(buyer.getPassword()); session.close(); sessionFactory.close(); }
2.根据其他属性查询(可用于实例化多个对象)
@Test public void doSimpleSingleQuery() { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Criteria criteria = session.createCriteria(Buyer.class); criteria.add(Restrictions.eq("username", "yehuan1")); @SuppressWarnings("unchecked") List<Buyer> list = criteria.list(); for(Buyer b:list){ System.out.println(b); } transaction.commit(); session.close(); sessionFactory.close(); }
3.查询类对应表的所有记录(可用于实例化多个对象)
通过createQuery()和createSQLQuery()方法
@Test public void doAllQuery() { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); String hql="from Buyer"; Query query = session.createQuery(hql); @SuppressWarnings("unchecked") List<Buyer> list = query.list(); for(Buyer b:list){ System.out.println(b); // 调用Buyer类中的toString()方法 } transaction.commit(); session.close(); sessionFactory.close(); }