在JSP中访问数据库大全

以下是在JSP中访问数据库的完整攻略:

以下是在JSP中访问数据库的完整攻略:

1. 准备工作

要在JSP中访问数据库,首先需要安装JDBC驱动和配置数据库连接信息。

  • 下载对应数据库的JDBC驱动jar包,将其放置于Web应用的WEB-INF/lib目录下
  • 在Web应用的WEB-INF目录下创建一个名为web.xml的文件,并在其中配置数据库连接信息,比如连接地址、用户名、密码等
<!-- 以下是MySQL的配置示例 -->
<context-param>
  <param-name>jdbc_driver_class</param-name>
  <param-value>com.mysql.cj.jdbc.Driver</param-value>
</context-param>

<context-param>
  <param-name>jdbc_url</param-name>
  <param-value>jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC</param-value>
</context-param>

<context-param>
  <param-name>jdbc_username</param-name>
  <param-value>root</param-value>
</context-param>

<context-param>
  <param-name>jdbc_password</param-name>
  <param-value>password</param-value>
</context-param>

2. 连接数据库

在JSP中,连接数据库的代码通常写在<%! %>标签中或者通过JavaBean来完成。

以下是两个示例:

方式一:使用JSP内的Java代码进行连接

<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>

<%
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;

  try {
    // 获取数据库连接
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource) envCtx.lookup("jdbc/myds");
    conn = ds.getConnection();

    // 执行SQL查询语句并处理结果集
    stmt = conn.createStatement();
    rs = stmt.executeQuery("select * from mytable");
    while (rs.next()) {
      out.println(rs.getString(1));
    }
  } catch (Exception e) {
    e.printStackTrace();
  } finally {
    // 关闭数据库资源
    if (rs != null) {
      try {
        rs.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (stmt != null) {
      try {
        stmt.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (conn != null) {
      try {
        conn.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
%>

方式二:使用JavaBean进行连接

<%@ page import="com.example.MyDBBean" %>

<jsp:useBean id="mydb" class="com.example.MyDBBean" scope="page" />

<%
  // 执行SQL查询语句并处理结果集
  ResultSet rs = mydb.query("select * from mytable");
  while (rs.next()) {
    out.println(rs.getString(1));
  }
  rs.close();
%>

3. 执行SQL语句

连接数据库成功后,可以通过StatementPreparedStatement对象来执行SQL查询或更新操作。

以下是两个示例:

方式一:使用Statement执行SQL语句

<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>

<%
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;

  try {
    // 获取数据库连接
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource) envCtx.lookup("jdbc/myds");
    conn = ds.getConnection();

    // 执行SQL查询语句并处理结果集
    stmt = conn.createStatement();
    rs = stmt.executeQuery("select * from mytable");
    while (rs.next()) {
      out.println(rs.getString(1));
    }

    // 执行SQL更新语句
    stmt.executeUpdate("update mytable set column1 = 'newvalue' where id = 1");
  } catch (Exception e) {
    e.printStackTrace();
  } finally {
    // 关闭数据库资源
    if (rs != null) {
      try {
        rs.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (stmt != null) {
      try {
        stmt.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (conn != null) {
      try {
        conn.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
%>

方式二:使用PreparedStatement执行SQL语句

<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>

<%
  Connection conn = null;
  PreparedStatement stmt = null;
  ResultSet rs = null;

  try {
    // 获取数据库连接
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource) envCtx.lookup("jdbc/myds");
    conn = ds.getConnection();

    // 执行SQL查询语句并处理结果集
    stmt = conn.prepareStatement("select * from mytable where column1 = ?");
    stmt.setString(1, "value");
    rs = stmt.executeQuery();
    while (rs.next()) {
      out.println(rs.getString(1));
    }

    // 执行SQL更新语句
    stmt = conn.prepareStatement("update mytable set column1 = ? where id = ?");
    stmt.setString(1, "newvalue");
    stmt.setInt(2, 1);
    stmt.executeUpdate();
  } catch (Exception e) {
    e.printStackTrace();
  } finally {
    // 关闭数据库资源
    if (rs != null) {
      try {
        rs.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (stmt != null) {
      try {
        stmt.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (conn != null) {
      try {
        conn.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
%>

总结

上述是在JSP中访问数据库的完整攻略,包括准备工作、连接数据库、执行SQL语句等几个步骤。在具体使用时,可以根据实际情况选择不同的方式来连接数据库和执行SQL语句。

本文标题为:在JSP中访问数据库大全

基础教程推荐