hibernate的内置方法Hql查询
2013-04-25 17:10
274 查看
1.hibernate的工具类
/**
* 根据记录的id查询一条记录
*
* @param obj要查询的对象所属类的class
* @param id要查询的数据id
* @return返回查询出的对象
*/
public <T> T queryOne(Class obj, Serializable id) {
Session session = null;
T object = null;
try {
session = factory.openSession();
object = (T) session.get(obj, id); // 根据id得到某条记录封装到对象中
} catch (Exception e) {
// TODO: handle exception
} finally {
if (session != null) {
session.close();
}
}
return object;
}
/**
* 添加记录
*
* @param obj添加的对象
* @return返回是否成功
*/
public boolean add(Object obj) {
return Update(obj, "save");
}
/**
* 删除记录
*
* @param obj
* 包含要删除记录ID的对象
* @return返回是否添加成功
*/
public boolean delete(Object obj) {
return Update(obj, "delete");
}
/**
* 更新某条记录
*
* @param obj
* 需要修改记录对应的对象
* @return返回是否修改成功
*/
public boolean Alert(Object obj) {
return Update(obj, "alert");
}
/**
* @param obj要更新的某个数据对象
* @param type要执行的操作该类中定义类型SAVE
* 、Alert、DELETE
* @return
*/
private boolean Update(Object obj, String type) {
boolean isok = false;
Session session = null;
Transaction tran = null;
try {
session = factory.openSession(); // 得到会话
tran = session.beginTransaction(); // 开启一个事物
if ("save".equals(type))
session.save(obj); // 保存对象
else if ("alert".equals(type)) {
session.update(obj); // 更新对象
} else if ("delete".equals(type))
session.delete(obj); // 删除对象
tran.commit(); // 提交事物
isok = true;
} catch (Exception e) {
if (tran != null)
tran.rollback(); // 回滚事物
e.printStackTrace();
} finally {
if (session != null)
session.close(); // 关闭会话
}
return isok;
}
/** 这边只给出实现类的代码*/
2.dao.impl
package dao.impl;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.stereotype.Repository;
import util.HibernateUtil;
import dao.BaseDao;
/**
* @author ckl
* @version1.0
*基出Dao类
*/
@Repository
public class BaseDaoImpl implements BaseDao {
@Resource
private HibernateUtil hc;
public <T> T get(Class<T> entityClass, Integer id) {
// TODO Auto-generated method stub
return hc.queryOne(entityClass, id);
}
public <T> boolean delete(T t) {
// TODO Auto-generated method stub
return hc.delete(t);
}
public <T> boolean add(T t) {
// TODO Auto-generated method stub
return hc.add(t);
}
public <T> boolean alert(T t) {
// TODO Auto-generated method stub
return hc.alert(t);
}
}
3.biz.impl
package biz.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import dao.BaseDao;
import entity.P_Login;
import biz.LoginBiz;
@Service
public class LoginBizImpl implements LoginBiz {
@Resource
private BaseDao baseDao;
public BaseDao getBaseDao() {
return baseDao;
}
public void setBaseDao(BaseDao baseDao) {
this.baseDao = baseDao;
}
public P_Login get(int id) {
// TODO Auto-generated method stub
return baseDao.get(P_Login.class, id);
}
public boolean add(P_Login l) {
// TODO Auto-generated method stub
return baseDao.add(l);
}
public boolean alert(P_Login l) {
// TODO Auto-generated method stub
return baseDao.alert(l);
}
public boolean delete(P_Login l) {
// TODO Auto-generated method stub
return baseDao.delete(l);
}
}
4.Action类
package action;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import entity.P_Login;
import biz.LoginBiz;
@Controller
public class UpdateAction {
private String message;
private P_Login login;
public P_Login getLogin() {
return login;
}
public void setLogin(P_Login login) {
this.login = login;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Resource
private LoginBiz biz;
public LoginBiz getBiz() {
return biz;
}
public void setBiz(LoginBiz biz) {
this.biz = biz;
}
public String alert() {
boolean ok=biz.alert(login);
if(ok){
setMessage("修改成功!");
return "success";
}else{
setMessage("修改失败!");
return "faile";
}
}
public String delete() {
boolean ok = biz.delete(login);
if (ok) {
setMessage("删除成功!");
return "success";
} else {
setMessage("删除失败!");
return "faile";
}
}
/**get的方法就不实现了*/
public String add(){
boolean ok=biz.add(login);
if(ok){
setMessage("注册成功!");
return "success";
}else{
setMessage("注册失败!");
return "faile";
}
}
}
说明:1.不用担心没有书写sql语句而担心程序执行不成功,hibernate已经很完美的帮你执行了sql语句。
2.所有的代码都是基于三大框架(ssh)有的代码用了注解,重要看方法。
/**
* 根据记录的id查询一条记录
*
* @param obj要查询的对象所属类的class
* @param id要查询的数据id
* @return返回查询出的对象
*/
public <T> T queryOne(Class obj, Serializable id) {
Session session = null;
T object = null;
try {
session = factory.openSession();
object = (T) session.get(obj, id); // 根据id得到某条记录封装到对象中
} catch (Exception e) {
// TODO: handle exception
} finally {
if (session != null) {
session.close();
}
}
return object;
}
/**
* 添加记录
*
* @param obj添加的对象
* @return返回是否成功
*/
public boolean add(Object obj) {
return Update(obj, "save");
}
/**
* 删除记录
*
* @param obj
* 包含要删除记录ID的对象
* @return返回是否添加成功
*/
public boolean delete(Object obj) {
return Update(obj, "delete");
}
/**
* 更新某条记录
*
* @param obj
* 需要修改记录对应的对象
* @return返回是否修改成功
*/
public boolean Alert(Object obj) {
return Update(obj, "alert");
}
/**
* @param obj要更新的某个数据对象
* @param type要执行的操作该类中定义类型SAVE
* 、Alert、DELETE
* @return
*/
private boolean Update(Object obj, String type) {
boolean isok = false;
Session session = null;
Transaction tran = null;
try {
session = factory.openSession(); // 得到会话
tran = session.beginTransaction(); // 开启一个事物
if ("save".equals(type))
session.save(obj); // 保存对象
else if ("alert".equals(type)) {
session.update(obj); // 更新对象
} else if ("delete".equals(type))
session.delete(obj); // 删除对象
tran.commit(); // 提交事物
isok = true;
} catch (Exception e) {
if (tran != null)
tran.rollback(); // 回滚事物
e.printStackTrace();
} finally {
if (session != null)
session.close(); // 关闭会话
}
return isok;
}
/** 这边只给出实现类的代码*/
2.dao.impl
package dao.impl;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.stereotype.Repository;
import util.HibernateUtil;
import dao.BaseDao;
/**
* @author ckl
* @version1.0
*基出Dao类
*/
@Repository
public class BaseDaoImpl implements BaseDao {
@Resource
private HibernateUtil hc;
public <T> T get(Class<T> entityClass, Integer id) {
// TODO Auto-generated method stub
return hc.queryOne(entityClass, id);
}
public <T> boolean delete(T t) {
// TODO Auto-generated method stub
return hc.delete(t);
}
public <T> boolean add(T t) {
// TODO Auto-generated method stub
return hc.add(t);
}
public <T> boolean alert(T t) {
// TODO Auto-generated method stub
return hc.alert(t);
}
}
3.biz.impl
package biz.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import dao.BaseDao;
import entity.P_Login;
import biz.LoginBiz;
@Service
public class LoginBizImpl implements LoginBiz {
@Resource
private BaseDao baseDao;
public BaseDao getBaseDao() {
return baseDao;
}
public void setBaseDao(BaseDao baseDao) {
this.baseDao = baseDao;
}
public P_Login get(int id) {
// TODO Auto-generated method stub
return baseDao.get(P_Login.class, id);
}
public boolean add(P_Login l) {
// TODO Auto-generated method stub
return baseDao.add(l);
}
public boolean alert(P_Login l) {
// TODO Auto-generated method stub
return baseDao.alert(l);
}
public boolean delete(P_Login l) {
// TODO Auto-generated method stub
return baseDao.delete(l);
}
}
4.Action类
package action;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import entity.P_Login;
import biz.LoginBiz;
@Controller
public class UpdateAction {
private String message;
private P_Login login;
public P_Login getLogin() {
return login;
}
public void setLogin(P_Login login) {
this.login = login;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Resource
private LoginBiz biz;
public LoginBiz getBiz() {
return biz;
}
public void setBiz(LoginBiz biz) {
this.biz = biz;
}
public String alert() {
boolean ok=biz.alert(login);
if(ok){
setMessage("修改成功!");
return "success";
}else{
setMessage("修改失败!");
return "faile";
}
}
public String delete() {
boolean ok = biz.delete(login);
if (ok) {
setMessage("删除成功!");
return "success";
} else {
setMessage("删除失败!");
return "faile";
}
}
/**get的方法就不实现了*/
public String add(){
boolean ok=biz.add(login);
if(ok){
setMessage("注册成功!");
return "success";
}else{
setMessage("注册失败!");
return "faile";
}
}
}
说明:1.不用担心没有书写sql语句而担心程序执行不成功,hibernate已经很完美的帮你执行了sql语句。
2.所有的代码都是基于三大框架(ssh)有的代码用了注解,重要看方法。
相关文章推荐
- Spring中常用的hql查询方法(getHibernateTemplate())
- Hibernate HQL与Native_SQL_查询_Query接口_选择list方法和iterate方法
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法 (getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())(转)
- Hibernate Hql查询方法
- Spring 中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法 (getHibernateTemplate())
- Spring中常用的hql查询方法 getHibernateTemplate()
- Spring中常用的hql查询方法 (getHibernateTemplate())
- J2EE进阶(十七)Hibernate中常用的HQL查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())
- 关于HQL(Hibernate Query Language)的查询方法
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())
- SSH学习---Spring中常用的hql查询方法(getHibernateTemplate())(转载)
- jumliang Spring中常用的hql查询方法(getHibernateTemplate())
- J2EE进阶(十七)Hibernate中常用的HQL查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())