Hibernate提供了丰富的API对数据库进行操作。
其中Session是对数据库进行操作一个非常重要的类,他提供了对数据库增删改查的基本操作。
下面看一些具体示例,实例中实现了对数据库增加,删除,更新,根据ID查询,查询全部,分页查询,以及模糊查询
package dao;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import sessionfactory.HibernateSessionFactory;
import entity.Login;
public class BaseDao {
// 保存用户
public void save(Login login) {
Session session = HibernateSessionFactory.getSession();
Transaction tran = null;
try {
tran = session.beginTransaction();
session.save(login);
tran.commit();
System.out.println("添加成功!");
} catch (HibernateException e) {
tran.rollback();
System.out.println("插入失败!");
} finally {
HibernateSessionFactory.closeSession();
}
}
// 删除用户
public void delete(Login login) {
Session session = HibernateSessionFactory.getSession();
Transaction tran = null;
try {
tran = session.beginTransaction();
session.delete(login);
System.out.println("删除成功");
tran.commit();
} catch (Exception e) {
System.out.println("删除失败");
tran.rollback();
} finally {
HibernateSessionFactory.closeSession();
}
}
// 更新用户信息
public void update(Login login) {
Session session = HibernateSessionFactory.getSession();
Transaction tran = null;
try {
tran = session.beginTransaction();
session.update(login);
tran.commit();
System.out.println("更新成功!");
} catch (Exception e) {
tran.rollback();
System.out.println("更新失败!");
} finally {
HibernateSessionFactory.closeSession();
}
}
// 根据用户id查询
public Login queryById(int id) {
Login login =null;
Session session = HibernateSessionFactory.getSession();
Transaction tran = null;
try {
tran = session.beginTransaction();
login = (Login) session.get(Login.class, id);
tran.commit();
} catch (Exception e) {
tran.rollback();
System.out.println("未找到用户!");
} finally {
HibernateSessionFactory.closeSession();
}
return login;
}
// 查询全部
public List<Login> queryAll() {
Session session = HibernateSessionFactory.getSession();
String hql = "FROM Login";
List<Login> list = null;
Transaction tran = null;
try {
tran = session.beginTransaction();
Query query = session.createQuery(hql);
list = query.list();
tran.commit();
} catch (Exception e) {
tran.rollback();
} finally {
HibernateSessionFactory.closeSession();
}
return list;
}
// 模糊查询
public List<Login> queryLike(String name) {
Session session = HibernateSessionFactory.getSession();
String hql = "from Login as l where l.username like ?";
Query query = session.createQuery(hql);
query.setString(0, "%" + name + "%");
List<Login> list = query.list();
return list;
}
// 分页查询
public QueryResult queryAll(int firstResult, int maxResult) {
QueryResult qr = null;
Session session = HibernateSessionFactory.getSession();
Transaction tran = null;
try {
tran = session.beginTransaction();
Query query = session.createQuery("FROM Login");
List<Login> list = query.list();
int totalCount = list.size();
int pageSize = (totalCount%maxResult==0)?(totalCount/maxResult):(totalCount/maxResult+1);
query.setFirstResult(firstResult);
query.setMaxResults(maxResult);
List<Login> listSize = query.list();
qr = new QueryResult(pageSize, listSize);
tran.commit();
} catch (Exception e) {
tran.rollback();
} finally {
HibernateSessionFactory.closeSession();
}
return qr;
}
}