Servlet 数据库访问学习笔记

介绍

在 Web 应用程序中,Servlet 是一个非常重要的组件。Servlet 可以接收来自客户端的请求,并返回响应;同时,Servlet 还可以访问数据库,将数据存储到数据库中。

Servlet 访问数据库的方式

通常情况下,Servlet 可以通过以下几种方式访问数据库:

直接使用 JDBC API

利用 Java 中提供的 JDBC API,我们可以在 Servlet 中完成对数据库的操作。具体步骤如下:

  1. 加载数据库驱动程序
  2. 建立数据库连接
  3. 创建 SQL 语句
  4. 执行 SQL 语句
  5. 处理查询结果
  6. 关闭连接

下面是一个简单的范例,实现了对 test 表进行查询的操作:

javaCopy Code
import java.sql.*; public class TestServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 定义数据库连接信息 String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; try { // 加载驱动程序 Class.forName(driver); // 建立连接 Connection conn = DriverManager.getConnection(url, user, password); // 创建 SQL 语句 String sql = "select * from test"; // 执行 SQL 语句 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); // 处理查询结果 while (rs.next()) { System.out.println(rs.getInt("id") + " " + rs.getString("name")); } // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } }

使用 JDBC 框架

如果你使用的是 Spring 框架,那么可以通过 JDBC 框架来访问数据库。Spring 的 JDBC 框架可以大大简化我们的代码量,同时提升我们的编码效率。下面是一个范例:

javaCopy Code
import org.springframework.jdbc.core.JdbcTemplate; public class TestServlet extends HttpServlet { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sql = "select * from test"; List<Map<String, Object>> list = jdbcTemplate.queryForList(sql); for (Map<String, Object> map : list) { System.out.println(map.get("id") + " " + map.get("name")); } } }

使用 ORM 框架

如果你希望更快捷地完成数据库操作,那么或许可以考虑使用 ORM 框架。Hibernate 和 MyBatis 都是比较流行的 ORM 框架。下面是一个使用 Hibernate 进行数据库操作的实例:

javaCopy Code
import org.hibernate.SessionFactory; import org.hibernate.Session; import org.hibernate.Transaction; public class TestServlet extends HttpServlet { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Session session = sessionFactory.openSession(); String hql = "from Test"; Query query = session.createQuery(hql); List<Test> list = query.list(); for (Test test : list) { System.out.println(test.getId() + " " + test.getName()); } session.close(); } }

总结

本文介绍了 Servlet 访问数据库的三种方式:直接使用 JDBC API、使用 Spring 的 JDBC 框架以及使用 Hibernate 进行 ORM 操作。读者可以根据实际情况进行选择。