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