用mysql编译:Java Web开发实战经典(基础篇)课后题答案 060502_〖第05章:JSP基础语法〗_第02题
2015-07-08 20:36
579 查看
以下为调试通过代码,需要更详细的可以私信问我
要修改的地方:
1、mysql和oracle之间的转换:
String sql = <span style="white-space:pre"> </span>"SELECT COUNT(empno) FROM emp " + <span style="white-space:pre"> </span>" WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR TO_CHAR(hiredate,'yyyy-mm-dd') LIKE ? " + <span style="white-space:pre"> </span>" OR sal LIKE ? OR comm LIKE ? " ;
改为
String sql = <span style="white-space:pre"> </span>"SELECT COUNT(empno) FROM emp " + <span style="white-space:pre"> </span>" WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR DATE_FORMAT(hiredate,'yyyy-mm-dd') LIKE ? " + <span style="white-space:pre"> </span>" OR sal LIKE ? OR comm LIKE ? " ;
2、<span style="font-family: Arial, Helvetica, sans-serif;">mysql和oracle之间的转换:</span> <span style="white-space:pre"> </span>
sql = <span style="white-space:pre"> </span>"SELECT * FROM (<span style="white-space:pre"> </span>" + <span style="white-space:pre"> </span>" SELECT empno,ename,job,hiredate,sal,comm,ROWNUM rn " + <span style="white-space:pre"> </span>" FROM emp WHERE (empno LIKE ? OR ename LIKE ? OR job LIKE ? OR TO_CHAR(hiredate,'yyyy-mm-dd') LIKE ? OR sal LIKE ? OR comm LIKE ?) AND " + <span style="white-space:pre"> </span>" ROWNUM<=? ORDER BY empno) temp " + <span style="white-space:pre"> </span>" WHERE temp.rn>? " ;
改为:
sql = " SELECT * FROM emp WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR DATE_FORMAT(hiredate,'yyyy-mm-dd') LIKE ? "+ "OR sal LIKE ? OR comm LIKE ? ORDER BY empno LIMIT ? , ? ";
</pre><pre name="code" class="html">3、<input type="hidden" name="cp" value="1">
<pre name="code" class="html">改为
<input type="hidden" id="cp" value="1" name="cp">
4、数据库的连接:
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ; <span style="white-space:pre"> </span>public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:MLDN" ; <span style="white-space:pre"> </span>public static final String DBUSER = "scott" ; <span style="white-space:pre"> </span>public static final String DBPASSWORD = "tiger" ;
改为:
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver"; <span style="white-space:pre"> </span>public static final String DBURL = "jdbc:mysql://localhost:3306/mldn"; <span style="white-space:pre"> </span>public static final String DBUSER = "用户名"; <span style="white-space:pre"> </span>public static final String DBPASSWORD = "t密码";
代码如下:
emp_list.jsp
<pre name="code" class="html"><%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.sql.*" %> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title> <style type="text/css"> <!-- .STYLE6 {font-size: 12px} .STYLE10 {font-size: 14px; font-weight: bold; } --> </style> </head> <script language="javascript"> function changeColor(obj,color){ obj.bgColor = color ; } </script> <body> <%! public static final String URL = "emp_list.jsp" ; %> <%! public static final String DBDRIVER = "org.gjt.mm.mysql.Driver"; public static final String DBURL = "jdbc:mysql://localhost:3306/mldn"; public static final String DBUSER = "root"; public static final String DBPASSWORD = "toor"; %> <% Connection conn = null ; PreparedStatement pstmt = null ; ResultSet rs = null ; %> <% int currentPage = 1 ; // 为当前所在的页,默认在第1页 int lineSize = 3 ; // 每次显示的记录数 int allRecorders = 0 ; // 表示全部的记录数 String keyWord = request.getParameter("kw"); //接收查询关键字 %> <% try{ currentPage = Integer.parseInt(request.getParameter("cp")) ; } catch(Exception e) {} try{ lineSize = Integer.parseInt(request.getParameter("ls")) ; } catch(Exception e) {} if(keyWord == null){ keyWord = ""; } %> <% Class.forName(DBDRIVER) ; conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ; String sql = "SELECT COUNT(empno) FROM emp " + " WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR DATE_FORMAT(hiredate,'yyyy-mm-dd') LIKE ? " + " OR sal LIKE ? OR comm LIKE ? " ; pstmt = conn.prepareStatement(sql) ; pstmt.setString(1,"%"+keyWord+"%") ; pstmt.setString(2,"%"+keyWord+"%") ; pstmt.setString(3,"%"+keyWord+"%") ; pstmt.setString(4,"%"+keyWord+"%") ; pstmt.setString(5,"%"+keyWord+"%") ; pstmt.setString(6,"%"+keyWord+"%") ; rs = pstmt.executeQuery() ; if(rs.next()){ // 取得全部的记录数 allRecorders = rs.getInt(1) ; } %> <center> <h1>雇员列表</h1> <jsp:include page="split_page_plugin.jsp"> <jsp:param name="allRecorders" value="<%=allRecorders%>"/> <jsp:param name="url" value="<%=URL%>"/> </jsp:include> <TABLE BORDER="1" cellpadding="5" cellspacing="0" bgcolor="F2F2F2" width="100%"> <TR onMouseOver="changeColor(this,'white')" onMouseOut="changeColor(this,'F2F2F2')"> <td align="center" valign="middle"><span class="STYLE10">编号</span></td> <td align="center" valign="middle"><span class="STYLE10">姓名</span></td> <td align="center" valign="middle"><span class="STYLE10">职位</span></td> <td align="center" valign="middle"><span class="STYLE10">雇佣日期</span></td> <td align="center" valign="middle"><span class="STYLE10">工资</span></td> <td align="center" valign="middle"><span class="STYLE10">奖金</span></td> </TR> <% sql = " SELECT * FROM emp WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR DATE_FORMAT(hiredate,'yyyy-mm-dd') LIKE ? "+ "OR sal LIKE ? OR comm LIKE ? ORDER BY empno LIMIT ? , ? "; pstmt = conn.prepareStatement(sql) ; pstmt.setString(1,"%"+keyWord+"%"); pstmt.setString(2,"%"+keyWord+"%"); pstmt.setString(3,"%"+keyWord+"%"); pstmt.setString(4,"%"+keyWord+"%"); pstmt.setString(5,"%"+keyWord+"%"); pstmt.setString(6,"%"+keyWord+"%"); pstmt.setInt(7,(currentPage -1)* lineSize) ; pstmt.setInt(8,lineSize) ; rs = pstmt.executeQuery() ; %> <% while(rs.next()){ int empno = rs.getInt(1) ; String ename = rs.getString(2) ; String job = rs.getString(3) ; Date hiredate = rs.getDate(4) ; double sal = rs.getDouble(5) ; double comm = rs.getDouble(6) ; %> <TR onMouseOver="changeColor(this,'white')" onMouseOut="changeColor(this,'F2F2F2')"> <td align="center" valign="middle"><span class="STYLE6"><%=empno%></span></td> <td align="center" valign="middle"><span class="STYLE6"><%=ename%></span></td> <td align="center" valign="middle"><span class="STYLE6"><%=job%></span></td> <td align="center" valign="middle"><span class="STYLE6"><%=hiredate%></span></td> <td align="center" valign="middle"><span class="STYLE6"><%=sal%></span></td> <td align="center" valign="middle"><span class="STYLE6"><%=comm%></span></td> </TR> <% } %> </table> <% conn.close() ; %> </center> </body> </html>
</pre><pre name="code" class="html">split_page_plugin.jsp
</pre><pre name="code" class="html"><%@ page contentType="text/html" pageEncoding="GBK"%> <% int currentPage = 1 ; // 为当前所在的页,默认在第1页 int lineSize = 3 ; // 每次显示的记录数 long allRecorders = 0 ; // 表示全部的记录数 long pageSize = 1 ; // 表示全部的页数(尾页) int lsData[] = {1,3,5,7,9,10,15,20,25,30,50,100} ; String keyWord = request.getParameter("kw"); //接收查询关键字 String url = request.getParameter("url"); %> <% try{ currentPage = Integer.parseInt(request.getParameter("cp")) ; } catch(Exception e) {} try{ lineSize = Integer.parseInt(request.getParameter("ls")) ; } catch(Exception e) {} try{ allRecorders = Long.parseLong(request.getParameter("allRecorders")) ; } catch(Exception e) {} if(keyWord == null){ keyWord = ""; } %> <% pageSize = (allRecorders + lineSize -1) / lineSize ; if(pageSize == 0){ pageSize = 1; } %> <script language="javascript"> function go(num){ document.getElementById("cp").value = num ; document.spform.submit() ; // 表单提交 } </script> <form name="spform" action="<%=url%>" method="post"> 输入查询关键字:<input type="text" name="kw" value="<%=keyWord%>"><input type="sub a909 mit" value="查询"><br> <input type="button" value="首页" onclick="go(1)" <%=currentPage==1?"DISABLED":""%>> <input type="button" value="上一页" onclick="go(<%=currentPage-1%>)" <%=currentPage==1?"DISABLED":""%>> <input type="button" value="下一页" onclick="go(<%=currentPage+1%>)" <%=currentPage==pageSize?"DISABLED":""%>> <input type="button" value="尾页" onclick="go(<%=pageSize%>)" <%=currentPage==pageSize?"DISABLED":""%>> 跳转到第<select name="selcp" onchange="go(this.value)"> <% for(int x=1;x<=pageSize;x++){ %> <option value="<%=x%>" <%=x==currentPage?"SELECTED":""%>><%=x%></option> <% } %> </select>页 每页显示 <select name="ls" onchange="go(1)"> <% for(int x=0;x<lsData.length;x++){ %> <option value="<%=lsData[x]%>" <%=lsData[x]==lineSize?"SELECTED":""%>><%=lsData[x]%></option> <% } %> </select> 条 <input type="hidden" id="cp" value="1" name="cp"> </form>
相关文章推荐
- MySQL中的integer 数据类型
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- MySQL 备份和恢复策略
- MyEclipse Web Project转Eclipse Dynamic Web Project
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复
- MySQL 优化