注:该系列教程。部分内容来自王健老师编写ssh整合开发教程
Hibernate是一款优秀的ORM(Object Relation Mapping-对象关系映射图)工具。与Struts、Spring项目并称java领域的三大优秀框架之中的一个。
Hibernate主要是从表到java类(对象)的映射。
该章节代码承接前面所述代码。
第一步:整合Hibernate全部的包复制到WEB-INF/lib文件夹下:
图-1
第二步:在com/xuzheng/model文件夹下,建立users表的映射类文件User.java例如以下:
提示:书写Hibernate类的映射文件。一个类文件映射一个数据表,因为眼下我们在ssh数据库中仅仅有一个表。所以仅仅建立一个文件就能够了。
图-2
第三步:书写Hibernate的映射文件。Hibernate的映射文件以.hbm.xml结尾例如以下:
提示:建议将映射文件和类放在同一个文件夹下
图-3
User.hbm.xml的源文件例如以下:
<?xml version="1.0"?说明:> <!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.xuzheng.model.User" table="users"> <id name="id" column="id" type="string"> <generator class="uuid"></generator> </id> <property name="name" column="name"></property> <property name="pwd" column="pwd"></property> </class> </hibernate-mapping>
1、以<!DOCTYPE开头的文档类型定义
2、<class></class>中定义这User类与users表相应
3、<generator></generator>为声明主键
4、<property></property>声明其它属性
第四步:改动applicationContext.xml文件,配置Hibernate例如以下:
<!-- 1、 凝视之前Spring的事务管理--> <!-- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> --> <!--2、声明Hibernate的sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 2.1|注入DataSource --> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <!-- 2.2、声明Hibernate的属性 --> <prop key="hibernate.dialect">org.hibernate.dialect.mysql5Dialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.current_session_context_class">thread</prop> </props> </property> <property name="mappingResources"> <list> <!--2.3、配置hbm.xml配置文件 --> <value>com/xuzheng/model/user.hbm.xml</value> </list> </property> </bean> <!--3、声明Hibernate的transactionManager --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean>提示:依照1~3进行改动和配置
第五步:配置好以后。公布项目启动程序。直到能正常启动项目为止。若不能正常启动,应该检查文件是否有错。
第六步:改动OneDaoImpl.java,改动成为使用Hibernate的HQL语句进行查询,例如以下:
package com.xuzheng.dao.impl; import java.sql.Types; import java.util.List; import java.util.Map; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.SqlParameter; import org.springframework.jdbc.object.SqlFunction; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.xuzheng.dao.IOneDao; import com.xuzheng.model.User; public class OneDaoImpl extends HibernateDaoSupport implements IOneDao{ //1、对类加入继承 HibernateDaoSupport //2、去掉原有注入的DataSource public Map login(Map map) { String name = (String) map.get("name"); String pwd = (String) map.get("pwd"); //3、声明HQL语句,注意当中的:name String sql = "select count(1) from users where name=:name and pwd=:pwd"; //4、使用Session查询 List temp = getSession().createQuery(sql).setString("name", name) .setString("pwd", pwd) .list(); int i = Integer.parseInt(temp.get(0).toString()); System.out.println("此username的用户数量:"+i); if(i >= 1){ map.put("result", "1"); } return map; } //查询全部用户列表 public List query() { //5、改写query方法 List list = getSession().createCriteria(User.class).list(); return list; } }提示:依照1~5的顺序来实现
第七步:改动applicationContext.xml文件里的OneDao例如以下:
<bean id="oneDao" class="com.xuzheng.dao.impl.OneDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean>
提示:将原来注入DataSource属性。改动成注入sessionFactory
第八步:公布执行项目。看能否正常启动和訪问。
源码下载:
http://download.csdn.net/detail/u014548782/7218965