跟着下面的例子 可实现 使用hibernate hql的增删改查
package test;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import pojo.HibernateSessionFactory;
import pojo.TblArea;
import sun.awt.CausedFocusEvent.Cause;
public class HibernateTest {
static Session session = null;
public static void main(String[] args) {
setup();
insert();
query();
delete("ac");
close();
}
protected static boolean setup() {
try{
Configuration configuration =HibernateSessionFactory.getConfiguration();
SessionFactory sf =configuration.buildSessionFactory();
session = sf.openSession();
if(session.isOpen())
System.out.println("session open");
return true;
}catch (HibernateException e) {
e.printStackTrace();
System.out.printf("error");
return false;
}
}
protected static void insert() {
TblArea tblArea =new TblArea();
tblArea.setAreaId("vv");
tblArea.setAreaName("zhangsan");
Transaction tx=session.beginTransaction();//开启事物
session.save(tblArea);//
tx.commit();//一定要提交,不然不会更新到数据库里面
//session.close();
}
protected static void query() {
Query query = session.createQuery("from TblArea");
List<TblArea> list=query.list();
for(TblArea admin:list){
System.out.println(admin.getAreaId());
System.out.println(admin.getAreaName());
}
}
public static void delete(String id){
Transaction tx=session.beginTransaction();//开启事物
TblArea course=(TblArea)session.load(TblArea.class,id);
session.delete(course);
tx.commit();
}
public static void close() {
try{
session.close();
} catch(HibernateException he) {
he.printStackTrace();
}
}
}
几种查询方式
HQL查询
static void query(String name){
Session s=null;
try{
s=HibernateUtil.getSession();
//from后面是对象,不是表名
String hql="from Admin as admin where admin.aname=:name";//使用命名参数。
Query query=s.createQuery(hql);
query.setString("name", name);
List<Admin> list=query.list();
for(Admin admin:list){
System.out.println(admin.getAname());
}
}finally{
if(s!=null)
s.close();
}
}
对象化查询Criteria方法
static void cri(String name,String password){
Session s=null;
try{
s=HibernateUtil.getSession();
Criteria c=s.createCriteria(Admin.class);
c.add(Restrictions.eq("aname",name));//eq是等于,gt是大于,lt是小于,or是或
c.add(Restrictions.eq("apassword", password));
List<Admin> list=c.list();
for(Admin admin:list){
System.out.println(admin.getAname());
}
}finally{
if(s!=null)
s.close();
}
}