Hibernate是一个持久层的框架,主要用于数据的存储,简单的使用步骤。
1、基于MVC设计模式分包
①com.web.bean 主要存放实体类也就是表和类之间的映射关系,实体类中有表中相应的字段,提供get/set方法,实现序列化接口,有无参的构造函数,属性名小写。
②com.web.dao 主要用于和数据库进行交互
③com.web.service 主要用于进行事务处理
④com.web.hbm 主要用来保存格式为xx.hbm.xml,进行表与实体类之间的关联映射
以dept为例
<?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>
<class name="com.web.bean.Dept" table="dept">
<id name="deptno" column="deptno">
<generator class="assigned"></generator>
</id>
<property name="dname" column="dname"></property>
<property name="loc" column="loc"></property>
</class>
</hibernate-mapping>
⑤com.web.test 测试类,主要用来测试程序是否可以正常运行
在src根目录下还有hibernate…cfg.xml配置文件,主要内容包含数据库的注册驱动,url,用户名,密码,方言,是否展现sql语句,还有映射文件的导入,在导入映射文件的,是文件夹的格式
<?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>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">scott</property>
<property name="connection.password">123456</property>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="show_sql">true</property>
<mapping resource="com/web/hbm/dept.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
同时还需导入数据库的包,在主函数调用通过
//初始化配置
Configuration conf = new Configuration();
//创建session工厂
SessionFactory sessionFactory = conf.configure().buildSessionFactory();
//创建session对象
Session session = sessionFactory.openSession();
//开启事务
Transaction transaction = session.beginTransaction();
//增加数据
// Dept dept = new Dept(50, "aaa", "bbb");
// session.save(dept);
//修改数据
// Dept dept = new Dept(50,"ccc","ddd");
// session.update(dept);
//删除数据
// Dept dept = new Dept(50);
// session.delete(dept);
//查询单个对象
// Dept d = (Dept) session.get(Dept.class, 40);
// System.out.println(d);
// transaction.commit();
//查询返回集合
// java.util.List<Dept> list = session.createCriteria(Dept.class).list();
// for(Dept d:list){
// System.out.println(d);
// }
//HQL
String hql = "from Dept where deptno>20";
java.util.List<Dept> list2 = session.createQuery(hql).list();
for(Dept d:list2){
System.out.println(d);
}
}
可完成数据库基本的增删改查任务,这些增删改查的代码段可以放置再com.web.dao的deptDao类中。这样才比较符合mvc设计模式。