JDBC详解(3)

12.6 searchPerson.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.sql.Date" %>
<%@ page import="com.helloben.util.*" %>

<%!
    public String forSQL(String sql){
        return sql.replace("‘", "\\‘");
    }
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <title>My JSP ‘searchPerson.jsp‘ starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
    <%
        request.setCharacterEncoding("UTF-8");

        final int pageSize = 5;

        int pageNum = 1;

        try{
            pageNum = new Integer(request.getParameter("pageNum"));
        }catch(Exception e){}

        String nameSearch = request.getParameter("name");
        String sexSearch = request.getParameter("sex");
        String englishNameSearch = request.getParameter("englishName");
        String descriptionSearch = request.getParameter("description");

        String whereClause = "";

        // 模糊匹配
        if(nameSearch!=null && nameSearch.trim().length()!=0){
            if(whereClause.length() == 0)
                whereClause += " name LIKE ‘%" + forSQL(nameSearch) + "%‘";
            else
                whereClause += " AND name LIKE ‘%" + forSQL(nameSearch) + "%‘";
        }
        // 精确匹配
        if(sexSearch!=null && sexSearch.trim().length()!=0){
            if(whereClause.length() == 0)
                whereClause += " sex = ‘" + forSQL(sexSearch) + "‘ ";
            else
                whereClause += " AND sex = ‘" + forSQL(sexSearch) + "‘ ";
        }
        if(englishNameSearch!=null && englishNameSearch.trim().length()!=0){
            if(whereClause.length() == 0)
                whereClause += " english_name LIKE ‘%" + forSQL(englishNameSearch) + "%‘ ";
            else
                whereClause += " AND english_name LIKE ‘%" + forSQL(englishNameSearch) + "%‘ ";
        }
        if(descriptionSearch!=null && descriptionSearch.trim().length()!=0){
            if(whereClause.length() == 0)
                whereClause += " description LIKE ‘%" + forSQL(descriptionSearch) + "%‘ ";
            else
                whereClause += " AND description LIKE ‘%" + forSQL(descriptionSearch) + "%‘ ";
        }

        if(whereClause.length() != 0){
        whereClause = " WHERE " + whereClause;
        }

        String countSQL = " SELECT count(*) FROM tb_person " + whereClause;
        int recordCount = DbManager.getCount(countSQL); 

        int pageCount = (recordCount + pageSize) / pageSize;

        String querySQL = " SELECT * FROM tb_person " + whereClause + " LIMIT " + (pageNum-1)*pageSize + ", " + pageSize;

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

        try{
            conn = DbManager.getConnection();
            stmt = conn.createStatement();
            rs = stmt.executeQuery(querySQL);
    %>
            <form action="searchPerson.jsp" method=get>
              <fieldset style=‘width:80%‘>
                  <legend>查询条件</legend>
                  <table >
                      <tr>
                          <td style="text-align:right; ">姓名</td>
                          <td style="text-align:left; ">
                              <input type=‘text‘ name=‘name‘ value="${ param.name }"/>
                          </td>
                          <td style="text-align:right; ">性别</td>
                          <td style="text-align:left; ">
                              <select name=‘sex‘ />
                                  <option value="">无限制</option>
                                  <option value="男" ${ ‘男‘==param.sex ? ‘selected‘ : ‘‘ }>男</option>
                                  <option value="女" ${ ‘女‘==param.sex ? ‘selected‘ : ‘‘ }>女</option>
                              </select>
                          </td>
                      </tr>
                      <tr>
                          <td style="text-align:right; ">英文名</td>
                          <td style="text-align:left; ">
                              <input type=‘text‘ name=‘englishName‘ value="${ param.englishName }"/>
                          </td>
                          <td style="text-align:right; ">备注</td>
                          <td style="text-align:left; ">
                              <input type=‘text‘ name=‘description‘ value="${ param.description }"/>
                          </td>
                      </tr>
                      <tr>
                          <td colspan=4>
                              <input type="submit" value="提交查询">
                              <input type="reset" value="复位">
                          </td>
                      </tr>
                  </table>
              </fieldset>
              <br/>
              <table bgcolor="#CCCCCC" cellspacing=1 cellpadding=5 width=100%>
                  <tr bgcolor=#DDDDDD>
                      <th></th>
                      <th>ID</th>
                      <th>Name</th>
                      <th>English Name</th>
                      <th>Gender</th>
                      <th>Age</th>
                      <th>Birthday</th>
                      <th>Comment</th>
                      <th>Created Time</th>
                      <th>Operation</th>
                  </tr>
                  <%
                      while(rs.next()){
                          int id = rs.getInt("id");
                        int age = rs.getInt("age");

                        String name = rs.getString("name");
                        String englishName = rs.getString("english_name");
                        String sex = rs.getString("sex");
                        String description = rs.getString("description");

                        Date birthday = rs.getDate("birthday");
                        Timestamp createTime = rs.getTimestamp("create_time");
                  %>
                             <tr bgcolor=#FFFFFF>
                             <td><input type="checkbox" name="id" value="<%= id %>"/></td>
                             <td><%= id %></td>
                             <td><%= name %></td>
                             <td><%= englishName %></td>
                             <td><%= sex %></td>
                             <td><%= age %></td>
                             <td><%= birthday %></td>
                             <td><%= description %></td>
                             <td><%= createTime %></td>
                             <td>
                                 <a href=‘operatePerson.jsp?action=del&id=" + <%= id %> + "‘ onclick=‘delete_Click()‘>Delete</a>
                                 <a href=‘operatePerson.jsp?action=edit&id=" + <%= id %> + "‘>Edit</a>
                             </td>
                         </tr>
                    <%
                        }
                    %>
               </table>
                <table align=right>
                    <tr>
                        <td><%=Pagination.getPagination(pageNum, pageCount,
                                recordCount, request.getRequestURI())%>
                        </td>
                    </tr>
                </table>
                <br />
                <br />
                <br />
                <table width=‘100%‘>
                    <tr>
                        <td style=‘text-align:center; ‘><br />
                        <br /> <%="Count SQL: " + countSQL%> <br />
                        <br /> <%="Query SQL: " + querySQL%></td>
                    </tr>
                </table>
            </form>
    <%
        }
        catch (Exception e){
            out.println("执行SQL:" + querySQL + "时出错:" + e.getMessage());
        }
        finally {
            if(rs != null)    rs.close();
            if(stmt != null)    stmt.close();
            if(conn != null)    conn.close();
        }
    %>
  </body>
</html>

JDBC详解(3)

时间: 2024-10-26 05:00:39

JDBC详解(3)的相关文章

JDBC详解(2)

1.加载驱动程序. 注册驱动程序有多方法,Class.forName();是一种显式地加载.当一个驱动程序类被Classloader装载后,在溶解的过程中,DriverManager会注册这个驱动类的实例.这个调用是自动发生的,也就是说DriverManager.registerDriver()方法被自动调用了, Class.forName("oracle.jdbc.driver.OracleDriver"); 当然我们也可以直接调用DriverManager.registerDriv

Spring JDBC详解

<Spring JDBC详解> 本文旨在讲述Spring JDBC模块的用法.Spring JDBC模块是Spring框架的基础模块之一. 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.概述 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1)core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJdbcInsert类,SimpleJdbcCall类,以及NamedP

JDBC详解(2)

12.4 listPagedPerson.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="java.sql.*" %> <%@ page import="java.sql.Date" %> <%@ page import="c

JDBC 详解(1)

在以java application server应用为主的平台是,JDBC的最高级应用是DataSource的实现, 其它的,JDO,webcache,hibernate等不过是一种封装,所以看数据库应用的性能,主要看据库连结的利用率, 所以,DataSource可以说是J2EE最最重要的应用. 对于主流的数据库,如mysql,ms sqlserver,oracle,从其通用的性能来看,我建议在JAVA平台上应用oracle和mysql, ms sqlserver的数据库在JAVA平台上的性能

J2EE学习篇之--JDBC详解

今天我们来说一下关于JDBC的相关知识,关于JDBC我想大家都不陌生了,而且我记得早就开始使用它了,记得那是大二的时候做课程设计,但是那时候是为了完成任务,所以遇到问题就google,那时候也没有时间去整理,所以这次就来详细说一下关于JDBC的知识 摘要: JDBC(Java Data Base Connectivity,java数据库连接),由一些接口和类构成的API. J2SE的一部分,由java.sql,javax.sql包组成. 应用程序.JDBC API.数据库驱动及数据库之间的关系

JDBC详解1

JDBC详解1 JDBC整体思维导图 JDBC入门 导jar包:驱动! 加载驱动类:Class.forName("类名"); 给出url.username.password,其中url背下来! 使用DriverManager类来得到Connection对象! ? ? ? 1 什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Ja

JDBC详解系列(二)之加载驱动

---[来自我的CSDN博客](http://blog.csdn.net/weixin_37139197/article/details/78838091)--- ??在JDBC详解系列(一)之流程中,我将数据库的连接分解成了六个步骤. JDBC流程: 第一步:加载Driver类,注册数据库驱动: 第二步:通过DriverManager,使用url,用户名和密码建立连接(Connection): 第三步:通过Connection,使用sql语句打开Statement对象: 第四步:执行语句,将结

JDBC 详解

工作原理流程:装载驱动程序---->获得数据库连接---->使用Statement或PreparedStatement执行SQL语句----> 返回执行的结果---->关闭相关的连接 JDBC 原理浅析一.本节目的:了解JDBC的概念及工作原理写在详解前对JAVA基础知识的回顾:JAVA接口:是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能).通过接口可以实现不相关的类的相

JDBC详解(转)

原文链接:http://blog.csdn.net/cai_xingyun/article/details/41482835 什么是JDBC? Java语言访问数据库的一种规范,是一套API JDBC (JavaDatabase Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库.比如建立数据库连接.执行SQL语句进行数据的存取操作. JDBC规范采用接口和实现分离的思想设计了Jav