Struts2 常用的数据库连接方式和实现 (struts2 数据库连接)
Struts2是一款开放源代码的Java Web应用程序框架。开发人员可以使用这个框架轻松地构建Web应用程序。数据库连接是Web应用程序中必不可少的部分,本文将介绍Struts2的常用数据库连接方式和实现。
一、Struts2数据库连接方式
1、基本的JDBC连接方式
基本的JDBC连接方式是使用Java的JDBC API来连接数据库。在Struts2中,可以使用JDBC API来连接数据库并查询数据。在这种情况下,需要手动打开和关闭数据库连接。
以下是一个基本的JDBC连接示例:
“`java
public class DBUtil {
public static Connection getConnection() throws SQLException {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conn =
DriverManager.getConnection(“jdbc:mysql://localhost/StrutsDemo”, “root”, “password”);
return conn;
}
}
public class MyAction {
public String execute() throws Exception {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
pstmt = conn.prepareStatement(“select * from user”);
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(“user_name”));
}
} finally {
JdbcUtils.closeQuietly(conn, pstmt, rs);
}
return null;
}
}
“`
2、使用连接池
使用连接池是一种常用的数据库连接方式,在Struts2中也可以实现该方式。连接池的优点是可以提高数据库连接的效率和并发性。
以下是一个连接池的示例:
在web.xml中配置连接池
“`xml
DB Connection
jdbc/StrutsDemoDB
javax.sql.DataSource
Contner
DB Connection
jdbc/StrutsDemoDB
javax.sql.DataSource
“`
在context.xml中配置连接池
“`xml
maxActive=”100″ maxIdle=”30″ maxWt=”10000″
name=”jdbc/StrutsDemoDB” password=”password” type=”javax.sql.DataSource”
url=”jdbc:mysql://localhost/StrutsDemo” username=”root”/>
“`
在Java代码中获取连接池
“`java
public class MyAction {
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public String execute() throws Exception {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = dataSource.getConnection();
pstmt = conn.prepareStatement(“select * from user”);
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(“user_name”));
}
} finally {
JdbcUtils.closeQuietly(conn, pstmt, rs);
}
return null;
}
}
“`
3、使用Hibernate
Hibernate是一个流行的ORM框架,可以使开发人员更加轻松地与数据库交互。在Struts2中,可以使用Hibernate来连接数据库。
以下是一个使用Hibernate的示例:
在struts.xml中配置Hibernate
“`xml
class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
com/app/model/User.hbm.xml
thread
org.hibernate.dialect.MySQL5Dialect
true
“`
在Java代码中使用Hibernate
“`java
public class MyAction {
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public String execute() throws Exception {
List users = hibernateTemplate.find(“from User”);
for (User user : users) {
System.out.println(user.getUserName());
}
return null;
}
}
“`
以上是三种Struts2数据库连接方式的简单介绍,其中连接池和Hibernate是更为普遍的方式,且可以提高Web应用程序的效率。
总体来说,Struts2提供了许多灵活的方式来连接数据库,开发人员可以根据自己的需求进行选择。这些方式都具有各自的优点和缺点,正确选择连接方式对于Web应用程序的性能和效率至关重要。