zoukankan      html  css  js  c++  java
  • Servlet与Jsp学习笔记9、JDBC

    JDBCsql server 2005

    1、下载sqljdbc_1.2.2828.100_chs

    http://www.microsoft.com/downloads/details.aspx?familyid=C47053EB-3B64-4794-950D-81E1EC91C1BA&displaylang=zh-cn

    2、将sqljdbc.jar放入D:"Tomcat"common"libD:"Tomcat"webapps"ora"WEB-INF"lib ora是应用程序目录)

    3server.xml

    <Context path="/ora" docBase="ora" debug="5" reloadable="true" crossContext="true">

              <Resource name="jdbc/sqlserver" auth="Container" type="javax.sql.DataSource"

                   maxActive="100" maxIdle="30" maxWait="10000" username="wangxin" password="wangxin"

            driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

                   url="jdbc:sqlserver://localhost:1433;DatabaseName=ora; "/>

            </Context>

    ......      </Host>

    4web.xml:

     <!-- Used by the JSTL database actions -->

     <context-param>

        <param-name>

         javax.servlet.jsp.jstl.sql.dataSource

        </param-name>

        <param-value>

     jdbc/sqlserver

     <!-- jdbc:mysql:///test,org.gjt.mm.mysql.Driver -->

        </param-value>

     </context-param>

    5、搞定!

    写段代码来测试一下:

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

    <sql:query var="empDbInfo">

      SELECT * FROM Employee

        WHERE UserName = ?

     <sql:param value="${param.userName}" />

    </sql:query>

    INSERT

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

    <%--

     See if the employee is already defined. If not, insert the

     info, else update it.

    --%>

    <sql:query var="empDbInfo">

     SELECT * FROM Employee

        WHERE UserName = ?

     <sql:param value="${param.userName}" />

    </sql:query>

    <%--

     Deal with the date values: parse the employment date and create a

     Date object from it, and create a new variable to hold the current

     date.

    --%>

    <fmt:parseDate value="${param.empDate}" var="parsedEmpDate"

     pattern="yyyy-MM-dd" />

    <jsp:useBean id="now" class="java.util.Date" />

    <c:choose>

     <c:when test="${empDbInfo.rowCount == 0}">

        <sql:update>

          INSERT INTO Employee

            (UserName, Password, FirstName, LastName, Dept,

              EmpDate, EmailAddr, ModDate)

            VALUES(?, ?, ?, ?, ?, ?, ?, ?)

          <sql:param value="${param.userName}" />

          <sql:param value="${param.password}" />

          <sql:param value="${param.firstName}" />

          <sql:param value="${param.lastName}" />

          <sql:param value="${param.dept}" />

          <sql:dateParam value="${parsedEmpDate}" type="date" />

          <sql:param value="${param.emailAddr}" />

          <sql:dateParam value="${now}" />

        </sql:update>

     </c:when>

     <c:otherwise>

        <sql:update>

          UPDATE Employee

            SET Password = ?,

                FirstName = ?,

                LastName = ?,

                Dept = ?,

                EmpDate = ?,

                EmailAddr = ?,

                ModDate = ?

            WHERE UserName = ?

          <sql:param value="${param.password}" />

          <sql:param value="${param.firstName}" />

          <sql:param value="${param.lastName}" />

          <sql:param value="${param.dept}" />

          <sql:dateParam value="${parsedEmpDate}" type="date" />

          <sql:param value="${param.emailAddr}" />

          <sql:dateParam value="${now}" />

          <sql:param value="${param.userName}" />

        </sql:update>

     </c:otherwise>

    </c:choose>

    <%-- Get the new or updated data from the database --%>

    <sql:query var="newEmpDbInfo" scope="session">

     SELECT * FROM Employee

        WHERE UserName = ?

     <sql:param value="${param.userName}" />

    </sql:query>

    <%-- Redirect to the confirmation page --%>

    <c:redirect url="confirmation.jsp" />

    Search

    Form

    <html>

     <head>

        <title>Search in Employee Database</title>

     </head>

     <body bgcolor="white">

        Please enter information about the employee you're looking for.

        You can use partial information in all fields.

        <form action="find.jsp" method="get">

          <table>

              <td>First Name:</td>

              <td><input type="text" name="firstName">

              </td>

            </tr>

            <tr>

              <td>Last Name:</td>

              <td><input type="text" name="lastName">

              </td>

            </tr>

            <tr>

              <td>Department:</td>

              <td><input type="text" name="dept">

              </td>

            </tr>

            <tr>

              <td colspan=2><input type="submit" value="Search"></td>

            </tr>

          </table>

        </form>

     </body>

    </html>

    Find

    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

    <%--

     Execute query, with wildcard characters added to the

     parameter values used in the search criteria

    --%>

    <sql:query var="empList" scope="request">

     SELECT * FROM Employee

        WHERE FirstName LIKE ?

          AND LastName LIKE ?

          AND Dept LIKE ?

        ORDER BY LastName

     <sql:param value="%${param.firstName}%" />

     <sql:param value="%${param.lastName}%" />

     <sql:param value="%${param.dept}%" />

    </sql:query>

    <jsp:forward page="list.jsp" />

    List

    <%@ page contentType="text/html" %>

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

    <html>

     <head>

        <title>Search Result</title>

     </head>

     <body bgcolor="white">

     <c:choose>

        <c:when test="${empList.rowCount == 0}">

          Sorry, no employees were found.

        </c:when>

        <c:otherwise>

          The following employees were found:

          <p>

          <table border="1">

            <th>Last Name</th>

            <th>First Name</th>

            <th>Department</th>

            <th>Email Address</th>

            <th>Modified</th>

            <c:forEach items="${empList.rows}" var="row">

              <tr>

                <td><c:out value="${row.LastName}" /></td>

                <td><c:out value="${row.FirstName}" /></td>

                <td><c:out value="${row.Dept}" /></td>

                <td><c:out value="${row.EmailAddr}" /></td>

                <td><c:out value="${row.ModDate}" /></td>

                <td>

                  <form action="delete.jsp" method="post">

                    <input type="hidden" name="userName"

                      value="<c:out value="${row.UserName}" />">

                    <input type="hidden" name="firstName"

                      value="<c:out value="${param.firstName}" />">

                    <input type="hidden" name="lastName"

                      value="<c:out value="${param.lastName}" />">

                    <input type="hidden" name="dept"

                      value="<c:out value="${param.dept}" />">

                    <input type="submit" value="Delete">

                  </form>

                </td>

              </tr>

            </c:forEach>

          </table>

        </c:otherwise>

     </c:choose>

     </body>

    </html>

    Update/Delete

    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <sql:update>

     DELETE FROM Employee

        WHERE UserName = ?

     <sql:param value="${param.userName}" />

    </sql:update>

    <c:redirect url="find.jsp">

     <c:param name="firstName" value="${param.firstName}" />

     <c:param name="lastName" value="${param.lastName}" />

     <c:param name="dept" value="${param.dept}" />

    </c:redirect>

    maxRows

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

    <html>

     <head>

        <title>All Employees</title>

     </head>

     <body bgcolor="white">

        <%-- Set number of rows to process --%>

        <c:set var="noOfRows" value="2" />

        <sql:query var="empList"

          sql="SELECT * FROM Employee ORDER BY LastName"

          startRow="${param.start}" maxRows="${noOfRows}"

        />

        <c:choose>

          <c:when test="${empList.rowCount == 0}">

            No one seems to work here any more ...

          </c:when>

          <c:otherwise>

            The following people work here:

            <p>

            <table border="1">

              <th>Last Name</th>

              <th>First Name</th>

              <th>Department</th>

              <th>Email Address</th>

              <c:forEach items="${empList.rows}" var="row">

                <tr>

                  <td><c:out value="${row.LastName}" /></td>

                  <td><c:out value="${row.FirstName}" /></td>

                  <td><c:out value="${row.Dept}" /></td>

                  <td><c:out value="${row.EmailAddr}" /></td>

                </tr>

              </c:forEach>

            </table>

          </c:otherwise>

        </c:choose>

        <p>

        <c:choose>

          <c:when test="${param.start > 0}">

            <a href="maxrows.jsp?start=<c:out

              value="${param.start - noOfRows}" />">

              Previous Page</a>

          </c:when>

          <c:otherwise>

              Previous Page

          </c:otherwise>

        </c:choose>

        <c:choose>

          <c:when test="${empList.limitedByMaxRows}">

            <a href="maxrows.jsp?start=<c:out

              value="${param.start + noOfRows}" />">

              Next Page</a>

          </c:when>

          <c:otherwise>

              Next Page

          </c:otherwise>

        </c:choose>

     </body>

    </html>

    另一种写法:

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

    <html>

     <head>

        <title>All Employees</title>

     </head>

     <body bgcolor="white">

        <%-- Set number of rows to process --%>

        <c:set var="noOfRows" value="5" />

        <c:if test="${empList == null}">

          <sql:query var="empList" scope="session"

            sql="SELECT * FROM Employee ORDER BY LastName"

          />

        </c:if>

        <c:choose>

          <c:when test="${empList.rowCount == 0}">

            No one seems to work here anymore ...

          </c:when>

          <c:otherwise>

            The following people work here:

            <p>

            <table border="1">

              <th>Last Name</th>

              <th>First Name</th>

              <th>Department</th>

              <th>Email Address</th>

              <c:forEach items="${empList.rows}" var="row"

                begin="${param.start}" end="${param.start + noOfRows - 1}">

                <tr>

                  <td><c:out value="${row.LastName}" /></td>

                  <td><c:out value="${row.FirstName}" /></td>

                  <td><c:out value="${row.Dept}" /></td>

                  <td><c:out value="${row.EmailAddr}" /></td>

                </tr>

              </c:forEach>

            </table>

          </c:otherwise>

        </c:choose>

        <p>

        <c:choose>

          <c:when test="${param.start > 0}">

            <a href="foreach.jsp?start=<c:out

              value="${param.start - noOfRows}" />">

              Previous Page</a>

          </c:when>

          <c:otherwise>

              Previous Page

          </c:otherwise>

        </c:choose>

        <c:choose>

          <c:when test="${param.start + noOfRows < empList.rowCount}">

            <a href="foreach.jsp?start=<c:out

              value="${param.start + noOfRows}" />">

              Next Page</a>

          </c:when>

          <c:otherwise>

              Next Page

          </c:otherwise>

        </c:choose>

     </body>

    </html>

    关于作者: 王昕(QQ:475660) 在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
    目前维护的开源产品:https://gitee.com/475660
  • 相关阅读:
    C# 文件类的操作---删除
    C#实现Zip压缩解压实例
    UVALIVE 2431 Binary Stirling Numbers
    UVA 10570 meeting with aliens
    UVA 306 Cipher
    UVA 10994 Simple Addition
    UVA 696 How Many Knights
    UVA 10205 Stack 'em Up
    UVA 11125 Arrange Some Marbles
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/starcrm/p/1377134.html
Copyright © 2011-2022 走看看