<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # JSTL 中的 SQL 查詢標記 原文:http://zetcode.com/java/sqlquerytag/ 在本教程中,我們將學習如何使用 JSTL 的 SQL 查詢標記。 ## JSTL JavaServer Pages 標準標記庫(JSTL) 是有用的 JSP 標記的集合,這些標記提供了許多 JSP 文件所共有的核心功能。 `<sql:query>`標記執行 SQL `SELECT`語句,并將結果保存在范圍變量中。 通常,不建議從 JSP 頁面訪問數據庫。 但是,對于簡單的應用和測試,它可能會很有用。 在我們的應用中,我們將使用 JSTL 的 SQL 查詢標記從 MySQL 數據庫檢索數據。 該項目是使用 Maven 構建的。 我們將應用部署在 Tomcat 上。 ## 創建一個 MySQL 數據庫 首先,我們在 MySQL 中創建`testdb`數據庫和`Cars`表。 `cars_mysql.sql` ```java DROP TABLE IF EXISTS Cars; CREATE TABLE Cars(Id INT PRIMARY KEY AUTO_INCREMENT, Name TEXT, Price INT) ENGINE=InnoDB; INSERT INTO Cars(Name, Price) VALUES('Audi', 52642); INSERT INTO Cars(Name, Price) VALUES('Mercedes', 57127); INSERT INTO Cars(Name, Price) VALUES('Skoda', 9000); INSERT INTO Cars(Name, Price) VALUES('Volvo', 29000); INSERT INTO Cars(Name, Price) VALUES('Bentley', 350000); INSERT INTO Cars(Name, Price) VALUES('Citroen', 21000); INSERT INTO Cars(Name, Price) VALUES('Hummer', 41400); INSERT INTO Cars(Name, Price) VALUES('Volkswagen', 21600); ``` 這是在 MySQL 中創建`Cars`表的 SQL。 要創建數據庫和表,我們使用`mysql`監視工具。 ```java $ sudo service mysql start ``` MySQL 用`sudo service mysql start`命令啟動。 ```java $ mysql -u testuser -p ``` 我們使用`mysql`監視器連接到數據庫。 ```java mysql> CREATE DATABASE testdb; Query OK, 1 row affected (0.02 sec) ``` `CREATE DATABASE`語句創建一個名為`testdb`的新數據庫。 ```java mysql> USE testdb; mysql> SOURCE cars_mysql.sql ``` 使用`source`命令,加載并執行`cars_mysql.sql`文件。 ```java mysql> SELECT * FROM Cars; +----+------------+--------+ | Id | Name | Price | +----+------------+--------+ | 1 | Audi | 52642 | | 2 | Mercedes | 57127 | | 3 | Skoda | 9000 | | 4 | Volvo | 29000 | | 5 | Bentley | 350000 | | 6 | Citroen | 21000 | | 7 | Hummer | 41400 | | 8 | Volkswagen | 21600 | +----+------------+--------+ 8 rows in set (0.00 sec) ``` 我們驗證數據。 請參閱 [MySQL 教程](/databases/mysqltutorial/),以了解有關 MySQL 的更多信息。 ## 使用 Maven 啟動項目 Apache Maven 是一個軟件項目管理和理解工具。 ```java $ mvn archetype:generate -DgroupId=com.zetcode -DartifactId=SqlQueryTag -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false ``` 使用`maven-archetype-webapp`,我們創建了 Web 應用的框架。 ```java $ cd SqlQueryTag/ $ tree . ├── pom.xml └── src └── main ├── resources └── webapp ├── index.jsp └── WEB-INF └── web.xml 5 directories, 3 files ``` Maven 創建了這個項目結構。 ```java $ mkdir src/main/webapp/META-INF $ touch src/main/webapp/META-INF/context.xml ``` 我們創建一個`META-INF`目錄和`context.xml`文件。 ## 應用 應用連接到先前創建的`Cars`表,并檢索其所有行。 要連接到數據庫表,我們使用`<sql:query>`標簽。 Maven 項目對象模型(POM)文件是保存在名為`pom.xml`的文件中的 Maven 項目的 XML 表示。 `pom.xml` ```java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zetcode</groupId> <artifactId>SqlQueryTag</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>SqlQueryTag Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> </dependencies> <build> <finalName>SqlQueryTag</finalName> </build> </project> ``` 在`pom.xml`文件中,我們聲明 MySQL 驅動程序和 JSTL 庫的依賴關系。 `context.xml` ```java <?xml version="1.0" encoding="UTF-8"?> <Context path="/SqlQueryTag" > <Resource name="jdbc/testdb" auth="Container" type="javax.sql.DataSource" username="testuser" password="test623" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/testdb" maxActive="10" maxIdle="4"/> </Context> ``` `context.xml`文件是 Web 應用的 Tomcat 配置文件。 在`context.xml`文件中,我們定義了一個數據源。 請參閱 Java 教程中的[數據源](/java/datasource/)以了解有關數據源的更多信息。 `web.xml` ```java <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app> ``` 我們提供了一個標準的部署描述符。 請注意,Maven 可能會創建與您的 JSTL JAR 不兼容的部署描述符。 `index.jsp` ```java <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Cars</title> </head> <sql:query var="carsList" dataSource="jdbc/testdb"> SELECT * FROM Cars </sql:query> <body> <div align="center"> <table border="1" cellpadding="2"> <h2>List of cars</h2> <tr> <th>Id</th> <th>Name</th> <th>Price</th> </tr> <c:forEach var="car" items="${carsList.rows}"> <tr> <td><c:out value="${car.Id}" /></td> <td><c:out value="${car.Name}" /></td> <td><c:out value="${car.Price}" /></td> </tr> </c:forEach> </table> </div> </body> </html> ``` 在`index.jsp`文件中,我們連接到數據庫,從`Cars`表中檢索數據,并將其顯示在 HTML 表中。 ```java <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ``` 我們需要聲明 JSTL 核心和 sql 模塊。 ```java <sql:query var="carsList" dataSource="jdbc/testdb"> SELECT * FROM Cars </sql:query> ``` 使用`<sql:query>`標記,執行`SELECT * FROM Cars`語句。 數據存儲在`carsList`變量中。 數據源由`dataSource`參數指定。 ```java <c:forEach var="car" items="${carsList.rows}"> <tr> <td><c:out value="${car.Id}" /></td> <td><c:out value="${car.Name}" /></td> <td><c:out value="${car.Price}" /></td> </tr> </c:forEach> ``` `<c:forEach>`變量通過`carsList`變量,`<c:out>`輸出當前值。 ## 構建和部署 現在,我們將構建和部署該應用。 ```java $ mvn package ``` 我們建立項目。 ```java $ mysql start/running, process 6030 $ $TOMCAT_HOME/bin/startup.sh ``` 我們啟動 MySQL 和 Tomcat。 ```java $ cp target/SqlQueryTag.war $TOMCAT_HOME/webapps ``` 我們部署應用。 ![Displaying cars](https://img.kancloud.cn/9f/47/9f47c7bebd094ced78d7c5891a332f17_449x427.jpg) 圖:展示汽車 我們在瀏覽器中導航到該應用,然后從數據庫中獲取數據。 這是 SQL 查詢標記教程。 我們已經使用 JSTL,JSP,MySQL,Tomcat 和 Maven 構建了一個 Web 應用。 您可能還需要檢查 [JSTL forEach 標簽](/articles/jstlforeach/),[驗證過濾器教程](/java/validationfilter/), [JDBI 教程](/db/jdbi/), [MySQL 教程](/databases/mysqltutorial/)或 [Apache Derby 教程](/db/apachederbytutorial/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看