在这里,我们将使用Hibernate创建一个Web应用程序。为了创建Web应用程序,我们使用JSP进行表现逻辑,Bean类表示数据,DAO类表示数据库代码。

由于我们在Hibernate中创建了简单的应用程序,因此我们不需要执行任何额外的操作来创建Web应用程序。在这种情况下,我们使用JSP文件从用户那里获取值。

使用Hibernate创建Web应用程序的示例

在此示例中,我们将在数据库中插入用户的记录。这只是一个注册表单。

index.jsp

此页面从用户获取输入,并使用post方法将其发送到register.jsp文件。

<form action="register.jsp" method="post">  
Name:<input type="text" name="name"/><br><br/>  
Password:<input type="password" name="password"/><br><br/>  
Email ID:<input type="text" name="email"/><br><br/>  
<input type="submit" value="register"/>"  
  
</form>  

register.jsp

此文件获取所有请求参数,并将此信息存储到User类的对象中。此外,它调用UserDao类的register方法,传递User类对象。

<%@page import="cn.javatiku.mypack.UserDao"%>  
<jsp:useBean id="obj" class="cn.javatiku.mypack.User">  
</jsp:useBean>  
<jsp:setProperty property="*" name="obj"/>  
  
<%  
int i=UserDao.register(obj);  
if(i>0)  
out.print("You are successfully registered");  
  
%>  

User.java

这是表示Hibernate中持久类的简单Bean类。

package cn.javatiku.mypack;  
  
public class User {  
private int id;  
private String name,password,email;  
  
//getters and setters  
  
}  

user.hbm.xml

它将User类映射到数据库表。

<?xml version='1.0' encoding='UTF-8'?>  
<!DOCTYPE hibernate-mapping PUBLIC  
 "-//Hibernate/Hibernate Mapping DTD 5.3//EN"  
 "http://hibernate.sourceforge.net/hibernate-mapping-5.3.dtd">  
  
 <hibernate-mapping>  
 <class name="cn.javatiku.mypack.User" table="u400">  
 <id name="id">  
 <generator class="increment"></generator>  
 </id>  
 <property name="name"></property>  
 <property name="password"></property>  
 <property name="email"></property>  
 </class>  
         
 </hibernate-mapping>  

UserDao.java

一个Dao类,包含存储User类实例的方法。

package cn.javatiku.mypack;    
  
import org.hibernate.Session;  
import org.hibernate.SessionFactory;  
import org.hibernate.Transaction;  
import org.hibernate.boot.Metadata;  
import org.hibernate.boot.MetadataSources;  
import org.hibernate.boot.registry.StandardServiceRegistry;  
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;  
   
public class UserDao {    
    
public static int register(User u){    
 int i=0;    
  
 StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();  
 Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build();  
  
SessionFactory factory = meta.getSessionFactoryBuilder().build();  
Session session = factory.openSession();  
Transaction t = session.beginTransaction();   
  
i=(Integer)session.save(u);    
  
t.commit();    
session.close();    
    
return i;    
   
 }    
}    

hibernate.cfg.xml

这是一个配置文件,包含有关数据库和映射文件的信息。

<?xml version='1.0' encoding='UTF-8'?>  
<!DOCTYPE hibernate-configuration PUBLIC  
          "-//Hibernate/Hibernate Configuration DTD 5.3//EN"  
          "http://hibernate.sourceforge.net/hibernate-configuration-5.3.dtd">  
  
<hibernate-configuration>  
  
<session-factory>  
 <property name="hbm2ddl.auto">create</property>  
 <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>  
 <property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>  
 <property name="connection.username">system</property>  
 <property name="connection.password">jtp</property>  
 <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>  
      
 <mapping resource="user.hbm.xml"/>  
 </session-factory>  
  
</hibernate-configuration>  

输出

5-1.jpg
5-2.jpg

标签: Hibernate, Hibernate教程, Hibernate框架, Hibernate框架设计, Hibernate初级教程, Hibernate框架用法, Hibernate指南, Hibernate入门, Hibernate中级教程, Hibernate进阶教程, Hibernate高级教程, Hibernate下载