jstl <sql:setDataSource>標籤

2019-10-16 22:12:21

<sql:setDataSource>標籤設定資料源組態變數或將資料源資訊儲存在可用作其他JSTL資料庫操作的作用域變數中。也就是建立一個資料庫連線物件。

屬性

<sql:setDataSource>標籤具有以下屬性 -

屬性 描述 必需 預設
driver 要註冊的JDBC驅動程式類的名稱
url 資料庫連線的JDBC的URL
user 資料庫使用者名
password 資料庫使用者的密碼
dataSource 資料庫中預先準備
var 用於表示資料庫的變數的名稱 預設設定
scope 表示資料庫變數的範圍 page

範例

考慮以下有關MySQL資料庫設定的資訊 -

  • 使用JDBC MySQL驅動。
  • 將連線到本地機器上的testdb資料庫。
  • 將使用root使用者以及密碼為123456來存取testdb資料庫。

所有上述引數將根據您的MySQL或任何其他資料庫使用者和密碼設定而有所不同。參考以下範例中的setDataSource標籤來演示使用上述引數 -

下面是JSP頁面的程式碼。檔案:sql_setDataSource.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>sql:setDataSource標籤範例</title>
</head>
<body>
    <sql:setDataSource var="mytestdb" driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost/testdb?useSSL=false&characterEncoding=utf8"
        user="root" password="123456" />
    <sql:query dataSource="${mytestdb}" sql="SELECT * FROM `employees`"
        var="result" />
    <!-- // 讀取並列印查詢員工資訊 -->
    <c:forEach var="row" items="${result.rows}">
        <c:out value="${row.id}" /> - <c:out value="${row.name}" /><br/>
    </c:forEach>
</body>
</html>

注意:需要將MySQL的連線驅動程式:mysql-connector-java-5.1.40-bin.jar放入到{Webpp}/WEB-INFO/lib目錄下。

執行上述專案程式碼,得到以下結果如下 -