用户登录
用户注册

分享至

java hibernate 封装基类

  • 作者: 玉臂匠
  • 来源: 51数据库
  • 2021-01-28
hibernate不需要再封装

+ spring,按3层写, 已经很好用



  在eclipse上安装hibernate tool方法如下:
1、启动eclipse
选择help-software updates,打开available software选项卡,然后单击add sites 分别输入jboos的工具和hibernate工具在线安装地址,然后选择安装hibernate toolsjboos 和tools development release,如图示:

等待安装成功,安装过程因要下载不少jar包,视你的网络速度不同,需要的时间不同,安装完毕eclipse将提示你重新启动,重启eclipse安装完成。(注意:先安装hibernate tools成功后,再安装jboos tools development release)
2、新建一个工程myhibernate,然后然后选择file-new-hibernate configuration file(cfg.xml),打开创建hibernate配置向导,我这里配置了一个sql server2000数据库,选中create a console configuration 复选项,以此配置文件创建hibernate控制台配置。
创建hibernate console configuration向导有main、option、classpath、mappings、common五个选项卡,如果你在工程中已经引入了jdbc驱动则,直接点击finish完成即可,以后在完成其他配置。



  package com.lynn.db.dao;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class BaseDao {
static Configuration conf = null;
static SessionFactory factory = null;
static Session session = null;
static{
try {
conf = new Configuration().configure();
factory = conf.buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Session getSession(){
session = factory.openSession();
return session;
}
public static void closeSession(){
if(session!=null)
session.close();
}
}
下面是封装的增、删、改、查
package com.lynn.db.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.FetchMode;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.lynn.page.PageInfo;
public class HibernateDao {
protected Session session = null;
protected Transaction ts = null;
protected Criteria criteria;
public boolean save(Object obj){
boolean check = false;
try {
session = BaseDao.getSession();//获得连接
ts = session.beginTransaction();//创建事务
session.save(obj);//保存对象
ts.commit();//提交事务
check = true;
} catch (Exception e) {
e.printStackTrace();
ts.rollback();//出现异常则回滚事务
}
return check;
}
public boolean delete(Object obj){
boolean check = false;
try {
session = BaseDao.getSession();
ts = session.beginTransaction();
session.delete(obj);
ts.commit();
check = true;
} catch (Exception e) {
e.printStackTrace();
ts.rollback();
}
return check;
}
public boolean update(Object obj){
boolean check = false;
try {
session = BaseDao.getSession();
ts = session.beginTransaction();
session.delete(obj);
ts.commit();
check = true;
} catch (Exception e) {
e.printStackTrace();
ts.rollback();
}
return check;
}
public Criteria QueryByFetch(String...fetch){
try {
if(fetch!=null && fetch.length>0){
for (int i = 0; i < fetch.length;="" i++)="" {="" criteria="criteria.setFetchMode(fetch[i]," fetchmode.join);="" }="" }="" }="" catch="" (exception="" e)="" {="" e.printstacktrace();="" }="" return="" criteria;="" }="" public="" criteria="" querybyproperties(object...properties){="" try="" {="" if(properties!="null" &&="" properties.length="">0){
for (int i = 0; i < properties.length;="" i="i+2)" {="" criteria="criteria.add(Restrictions.like((String)properties[i]," properties[i+1]));="" }="" }="" return="" criteria;="" }="" catch="" (exception="" e)="" {="" e.printstacktrace();="" }="" return="" null;="" }="" public="" criteria="" query(class="" c){="" session="BaseDao.getSession();" criteria="session.createCriteria(c);" return="" criteria;="" }="" public="" list="" querylist(){="" try="" {="" return="" criteria.list();="" }="" catch="" (exception="" e)="" {="" e.printstacktrace();="" }="" return="" null;="" }="" public="" object="" queryunique(){="" try="" {="" return="" criteria.uniqueresult();="" }="" catch="" (exception="" e)="" {="" e.printstacktrace();="" }="" return="" null;="" }="" public="" criteria="" querybypage(pageinfo="" pageinfo){="" return="" criteria.setfirstresult((pageinfo.getpageindex()-1)*="" pageinfo.getpagesize())="" .setmaxresults(pageinfo.getpagesize());="" }="" public="" criteria="" querybyorder(order="" o){="" return="" criteria.addorder(o);="" }="">



  eclipse 不需要封装Hibernate,但是需要导入Hibernate包,例如:hibernate3.jar, 数据库对应的JDBC驱动(例如mysql-connector-java-5.1.5-bin.jar),slf4j-api-1.7.1.jar,slf4j-simple-1.7.1.jar,javax[1].servlet-5.1.12.jar,jta-1.1.jar,hibernate-jpa-2.0-api-1.0.1.Final.jar,javassist-3.12.0.GA.jar,antlr-2.7.6.jar,commons-collections-3.1.jar,dom4j-1.6.1.jar
,把这些jar包导入到lib下。(不知道你想问什么,希望可以帮到你)
软件
前端设计
程序设计
Java相关