一.实体bean
在类的前面注解实体Bean,@javax.persistence.Entity
注解ID指的是:数据库表中主键的字段@javax.persistence.Id
注解自动增长 @javax.persistence.GeneratedValue
二.Session session=HibernateUitl.getSessionFactory().openSession();
开启session
事务开启
Transaction tx=session.getTransaction();
接下来用hibernate对数据库进行增删改查
当然这里的操作比sql中的操作简单一些
实例化一个实体类的对象
UserLogin这个对象和数据库中表和实体类的名字是一一对应的
UserLogin userTemp=new UserLogin();
userTemp.setUserID(5);
userTemp.setUserName("wangtian");
userTemp.setUserPassword("123456");
session.saveorUpdate(userTemp);//插入,和修改
session.delete(userTemp);
用HQL查询
Query query=session.createQuery("from UserLogin");使用HQL查询
query.setFirstResult(5);设置开始的位置
query.setMaxResult(3);设置返回的最大行数
将查询的结果放到list中
List listUser=query.list();//得到查询的结果
for(int nIndex=0;nIndex<listUser.size();nIndex++){
UserLogin userTemp=(UserLogin)listUser.get(nIndex);
将其打印的结果输到客户端
System.out.println(userTemp.getUserID()+"/t");
}
用SQL查询
Query sqlquery=session.createQuery("select * from UserLogin where UserID>5");
sqlquery.addEntity(UserLogin.class);//这句话很重要,不能省略
List listUser=sqlQuery.list();//得到查询的结果
for(int nIndex=0;nIndex<listUser.size();nIndex++){
UserLogin userTemp=(UserLogin)listUser.get(nIndex);
将其打印的结果输到客户端
System.out.println(userTemp.getUserID()+"/t");
以上的两个查询语句的区别是:
a.查询数据库的语句不同
b.sql中一定要有sqlquery.addEntity(UserLogin.class)
c.HQL中可以实现分页的功能,FirstResult,MaxResult
三.tx.commit();提交事务
session.close();会话关闭
HibernateUtil.java
public class HibernateUtil{
private static org.hibernate.SessionFactory sessionFactory=null;
private HibernateUtil(){
}
private static org.hibernate.SessionFactory getSessionFactory(){
if(null==sessionFactory){//会话工厂的单例
sessionFactory=new org.hibernate.cfg.AnnotationConfiguration()
.configure().buildSessionFactory();
}
return sessionFactory;
}
}
四.导入hibernate包和sqljdbc包