📅  最后修改于: 2023-12-03 14:47:44.334000             🧑  作者: Mango
在进行Web应用开发时,经常需要与数据库进行交互。 Struts 2框架提供了许多选项来访问数据库。在本文中,我们将讨论这些选项。
JDBC(Java Database Connectivity)是Java平台上连接数据库的标准API。 JDBC允许开发人员使用Java编程语言编写SQL语句,以及读取和写入与数据库相关的数据。
Struts 2框架提供了一个JDBC插件,其中包括了一个JDBC拦截器和一个JDBC动作映射器。这些插件允许Struts 2应用程序使用JDBC API访问数据库。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-jdbc</artifactId>
<version>2.x.x</version>
</dependency>
使用JDBC访问数据库的步骤如下:
struts.xml
文件中配置JDBC拦截器和动作映射器:<action name="get-all-employees" class="com.example.EmployeeAction">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="jdbc"/>
<result name="success">/employees.jsp</result>
</action>
public class EmployeeAction extends ActionSupport {
private List<Employee> employees;
public String execute() {
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM employees");
employees = new ArrayList<>();
while (rs.next()) {
Employee employee = new Employee(rs.getInt("id"), rs.getString("name"), rs.getString("address"));
employees.add(employee);
}
conn.close();
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
}
// getters and setters
}
Hibernate是一个开源的对象关系映射框架。它简化了Java应用程序与关系型数据库之间的数据交互。
Struts 2框架提供了一个Hibernate插件,它允许应用程序使用Hibernate访问数据库。该插件提供了一个拦截器和一个动作映射器,可以在Struts 2中使用Hibernate进行数据持久化。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-hibernate-plugin</artifactId>
<version>2.x.x</version>
</dependency>
使用Hibernate访问数据库的步骤如下:
struts.xml
文件中配置Hibernate拦截器和动作映射器:<action name="get-all-employees" class="com.example.EmployeeAction">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="hibernate"/>
<result name="success">/employees.jsp</result>
</action>
public class EmployeeAction extends ActionSupport {
private List<Employee> employees;
public String execute() {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
employees = session.createQuery("FROM Employee").list();
tx.commit();
session.close();
return SUCCESS;
}
// getters and setters
}
MyBatis是一个Java持久化框架。它提供了一种与SQL语句解耦的方式来管理数据。
Struts 2框架提供了一个Mybatis插件,它允许应用程序使用Mybatis访问数据库。该插件提供了一个拦截器和一个动作映射器,可以在Struts 2中使用Mybatis进行数据持久化。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-mybatis-plugin</artifactId>
<version>2.x.x</version>
</dependency>
使用Mybatis访问数据库的步骤如下:
struts.xml
文件中配置Mybatis拦截器和动作映射器:<action name="get-all-employees" class="com.example.EmployeeAction">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="mybatis"/>
<result name="success">/employees.jsp</result>
</action>
public class EmployeeAction extends ActionSupport {
private List<Employee> employees;
public String execute() {
SqlSession sqlSession = MybatisUtil.getSqlSessionFactory().openSession();
employees = sqlSession.selectList("com.example.EmployeeMapper.getAllEmployees");
sqlSession.close();
return SUCCESS;
}
// getters and setters
}
通过本文,您可以了解到Struts 2提供的不同选项来访问数据库。 JDBC访问是直接访问数据库的一种最基本的方法,而Hibernate和Mybatis提供了更高级的、更容易使用的方法来访问数据库。 选择哪种方法取决于您的需求和技能。