当前位置:K88软件开发文章中心网站服务器框架Struts2 → 文章内容

Struts2 Hibernate集成

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-25 14:39:46

由 lxjazni_7 创建,youj 最后一次修改 2016-12-12 Hibernate是一个高性能的对象/关系留存和查询服务,它是根据开源GNU宽通用公共许可证(LGPL)许可的,可以免费下载。在这一章。 我们将学习如何实现Struts2 与Hibernate的集成。如果你不熟悉Hibernate,可以查看我们的Hibernate教程。 数据库设置对于本教程,我们将使用“struts2_tutorial”MySQL数据库,使用用户名“root”连接到机器上的这个数据库,不设密码。首先,你需要运行以下脚本。此脚本创建一个名为student的新表,并在此表中创建少量记录: CREATE TABLE IF NOT EXISTS `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(40) NOT NULL, `last_name` varchar(40) NOT NULL, `marks` int(11) NOT NULL, PRIMARY KEY (`id`));---- Dumping data for table `student`--INSERT INTO `student` (`id`, `first_name`, `last_name`, `marks`) VALUES(1, 'George', 'Kane', 20);INSERT INTO `student` (`id`, `first_name`, `last_name`, `marks`) VALUES(2, 'Melissa', 'Michael', 91);INSERT INTO `student` (`id`, `first_name`, `last_name`, `marks`) VALUES(3, 'Jessica', 'Drake', 21); Hibernate配置接下来让我们创建hibernate.cfg.xml,它是hibernate配置文件。 <?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory> <property name="hibernate.connection.driver_class">c om.mysql.jdbc.Driver </property> <property name="hibernate.connection.url"> jdbc:mysql://www.k88.net/struts_tutorial </property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"></property> <property name="hibernate.connection.pool_size">10</property> <property name="show_sql">true</property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="hibernate.hbm2ddl.auto">update</property> <mapping class="cn.k88.hibernate.Student" /></session-factory></hibernate-configuration> 让我们过一下hibernate配置文件。首先,我们声明使用MySQL驱动程序。然后我们声明了jdbc url用于连接到数据库。接着我们声明连接的用户名,密码和池大小。我们还指出希望通过将“show_sql”打开为true来查看日志文件中的SQL。请通过Hibernate教程了解这些属性的含义。最后,我们将映射类设置为在本章中创建的cn.k88.hibernate.Student。 环境搭建这个项目需要很多jar文件,以下的是所需的JAR文件的完整列表的屏幕截图: 大多数JAR文件可以作为struts分发的一部分获取。如果你有安装一个应用程序服务器,如glassfish,websphere或jboss,那么你可以从appserver的lib文件夹中获取大多数剩余的jar文件。如果没有,你可以单独下载文件: Hibernate的jar文件- Hibernate.org Struts的Hibernate插件- Struts hibernate plugin JTA文件- JTA file Dom4j文件- Dom4j SLF4J文件- SLF4J log4j文件- log4j 其余的文件,你应该能够从struts2 中分配。 Hibernate类现在让我们为hibernate集成创建所需的java类。按照Student.java的内容: package cn.k88.hibernate;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="student")public class Student { @Id @GeneratedValue private int id; @Column(name="last_name") private String lastName; @Column(name="first_name") private String firstName; private int marks; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public int getMarks() { return marks; } public void setMarks(int marks) { this.marks = marks; }}这是一个POJO类,根据Hibernate规范表示的student表。它具有对应于student表列名的属性id,firstName和lastName。接下来让我们创建StudentDAO.java文件,如下所示: package cn.k88.hibernate;import java.util.ArrayList;import java.util.List;import org.hibernate.Session;import org.hibernate.Transaction;import com.googlecode.s2hibernate.struts2.plugin. annotations.SessionTarget;import com.googlecode.s2hibernate.struts2.plugin. annotations.TransactionTarget;public class StudentDAO { @SessionTarget Session session; @TransactionTarget Transaction transaction; @SuppressWarnings("unchecked") public List<Student> getStudents() { List<Student> students = new ArrayList<Student>(); try { students = session.createQuery("from Student").list(); } catch(Exception e) { e.printStackTrace(); } return students; } public void addStudent(Student student) { session.save(student); }}StudentDAO类是Student类的数据访问层。它有方法来列出所有学生,然后保存一个新的学生记录。 Action类下面的文件AddStudentAction.java定义了我们的action类。我们在这里有两个action方法:execute()和listStudents()。execute()方法用于添加新的学生记录。我们使用dao的save()方法来实现这一点。另一种listStudents()方法用于列出学生。我们使用dao的列表方法来获取所有学

[1] [2]  下一页


Struts2 Hibernate集成