**
Hibernate 项目创建
**
1.创建项目
File—New—Web Project—项目名—Next()—勾选Generate web.xml….
2.创建数据库(SQL代码)
——判断表是否存在,并删除
declare num number;
begin
select count(1) into num from user_tables
where table_name='H_User';
if num=1 then
execute immediate 'drop table h_user';
end if;
end;
——创建表
create table H_user
(
userId Integer not null,
userName varchar2(50),
email varchar2(50),
age integer
);
——创建表序列
create sequence seq_userId
start with 1
maxvalue 9999
increment by 1
nocache
——添加约束
alter table H_User
add constraint PK_H_USERID primary key(userId);
alter table H_books
add constraint PK_H_BOOKID primary Key(bookId);
alter table H_books
add constraint PK_H_BOOKMONEY check(bookMoney>=0);
3.添加jar包
步骤:项目右键—Build Path–AddExterArchives…—jar包
4.创建配置文件:hibernate.cfg.xml
步骤:项目右键–MyEclipse—Project Facets[Capabilities]—Install Hibrnate Facet—选择版本Next—
–选择DB Driver—finish
5.创建ORM映射文件
src右键—New—Other—xml(Basic Templates) Next—.hbm.xml—Finish*
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">–导入–hibernate-mapping-3.0.dtd
生成映射文件*.hbm.xml和表类文件.java
window—Show View—Othor…—DB Browser
–选择表右键 Hibernate R E
6.BaseDao.java
public class BaseDAO {
/**
* 添加对象的方法
* @param obj 要添加的对象
*/
public void add(Object obj){
//获取会话工厂对象
SessionFactory sf=HibernateSessionFactory.getSessionFactory();
//打开会话对象
Session session=sf.openSession();
//开启事务
Transaction ts=session.beginTransaction();
//保存对象
session.save(obj);
//提交事务
ts.commit();
//关闭资源
HibernateSessionFactory.closeSession();
}
/**
*修改方法
* @param obj 修改的对象
*/
public void update(Object obj){
//获取会话工厂的对象
SessionFactory sf=HibernateSessionFactory.getSessionFactory();
//打开会话对象
Session session=sf.openSession();
//开启事务
Transaction ts=session.beginTransaction();
//修改对象
session.update(obj);
//提交事务
ts.commit();
//关闭资源
HibernateSessionFactory.closeSession();
}
/**
* 删除方法
* @param obj 删除对象
*/
public void delete(Object obj){
//获取会话工厂对象
SessionFactory sf=HibernateSessionFactory.getSessionFactory();
//打开会话对象
Session session =sf.openSession();
//开启事务
Transaction ts=session.beginTransaction();
//删除对象
session.delete(obj);
//提交事务
ts.commit();
//关闭资源
HibernateSessionFactory.closeSession();
}
/**
* 根据id查询对象
* @param cls 该对象对应的实体类
* @param Id 该对象的id
* @return 查询的对象
*/
public Object getById(Class cls, Integer Id){
//获取会话工厂对象
SessionFactory sf= HibernateSessionFactory.getSessionFactory();
//打开会话工厂
Session session =sf.openSession();
//根据id查询对象
Object obj=session.get(cls, Id);
//关闭资源
HibernateSessionFactory.closeSession();
//返回结果
return obj;
}
/**
* 查询所有
* @param hql hql语句
* @return 查询所有语句
*/
public List getAll(String hql){
//获取会话工厂对象
SessionFactory sf=HibernateSessionFactory.getSessionFactory();
//打开会话对象
Session session =sf.openSession();
//创建查询对象
Query query =session.createQuery(hql);
//查询
List list=query.list();
//关闭资源
HibernateSessionFactory.closeSession();
//返回结果
return list;
}
}
7.*Dao.java
8.*Test.java