Hibernate框架搭建与实战应用初级

一、构建Hibernate框架要先导入jar包需要导入的jar包有

1、commons-fileupload-1.2.1.jar

2、commons-logging-1.0.4.jar

3、freemarker-2.3.15.jar

4、ognl-2.7.3.jar

5、struts2-core-2.1.8.jar

6、xwork-core-2.1.6.jar

以上6个是搭建struts2框架必须要导入的jar包;三大框架并不冲突,而是各有各的作用。下面是Hibernate的jar包

1、antlr-2.7.6.jar

2、classes12.jar

3、commons-collections-3.1.jar

4、commons-dbcp.jar

5、dom4j-1.6.1.jar

6、ehcache-1.5.0.jar

7、hibernate3.jar

8、javassist-3.12.0.GA.jar

9、jta-1.1.jar

10、log4j-1.2.15.jar

11、slf4j-api-1.5.0.jar

12、slf4j-log4j12-1.5.0.jar

将这些jar包全部复制粘贴到lib目录下,然后在src下建hibernate的相关文件

二、构建hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- oracle数据库驱动 -->
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<!-- 连接 oracle 的数据库字符串 -->
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:oracle
</property>
<property name ="connection.username" >
scott
</property>
<property name ="connection.password" >
scott
</property>
<!-- 数据库 方言针对数据库不同的版本,在sql语法上有不同 -->
<property name="dialect">
org.hibernate.dialect.OracleDialect
</property>
<!-- 在控制台打印底层执行的sql命令 -->
<property name="show_sql">true</property>
<!-- -->
<property name="format_sql">true</property>
<!-- 把实体类和表的影射文件写在下面,有几个写几个 -->
<mapping resource="com/adminsys/entity/Admin.hbm.xml"/>
</session-factory>
</hibernate-configuration>

以上是我的hibernate.cfg.xml文件代码

注意自己的数据库名字,数据库的登录名,密码,还有自己的实体类的位置然后去配置自己的Admin.hbm.xml

三、下面是我的Admin.hbm.xml的代码

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<!-- 把实体类admin和数据库中的表做映射 -->
<class name="com.adminsys.entity.Admin" table="ADMIN">
<!-- id标签是用来影射主键的,name是实体类中对应主键的属性名
column是数据库表中主键段的名字
-->
<id name="id" column="id" >
<!-- 主键生成的方式 -->
<generator class="sequence"><param name="sequence">admin_seq</param></generator>
</id>
<!-- putong属性与普通字段的影射 -->
<property name="name" column="name"/>
<property name="sex" column="sex"/>
<property name="date" column="birthday"/>
<property name="telphone" column="telphone"/>
</class>
</hibernate-mapping>

完成实体类与数据库的影射

四、构建方法,实现数据的持久化操作,增删改查

package com.adminsys.util;


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

 


public class HIBUtil {
/**
* 创建session工厂

* @Description:@return
*/
public static SessionFactory getSessionFactory() {
// 加载hibernate的主配置文件
Configuration config = new Configuration().configure();
return config.buildSessionFactory();
}

/**
* 获取会话

* @Description:@return
*/
public static Session getSession() {
return getSessionFactory().openSession();
}

public static boolean add(Object o) {
boolean flag = false;
Session session = null;
Transaction ts = null;
try {
// 获取会话
session = getSession();
// 开启事物
ts = session.beginTransaction();
// 持久化操作,调用hibernate的save方法添加数据
session.save(o);
// 提交事物
ts.commit();
flag = true;
} catch (Exception e) {
e.printStackTrace();
// 如果发生异常,事物回滚
ts.rollback();
} finally {
// 关闭session
if (session != null) {
session.close();
}
}
return flag;
}
}

里面只写了一个添加数据的方法,其他方法可以自己尝试

五、调用这个方法实现数据的增删改查

public class AdminDaoImpl implements AdminDao {

@Override
public boolean addAdmin(Admin admin) {
return HibUtil.add(admin);
}

@Override
public List<Admin> getAllAdmin() {
// TODO Auto-generated method stub
return null;
}

@Override
public boolean deletAdmins(String ids) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean getAdminsByName(Admin admin) {
// TODO Auto-generated method stub
return false;
}

}

 

posted @ 2017-03-07 13:27  还是叫我Jack好了  阅读(56)  评论(0编辑  收藏  举报