{"id":395,"date":"2018-06-22T14:12:25","date_gmt":"2018-06-22T06:12:25","guid":{"rendered":"http:\/\/www.sniper97.cn\/?p=395"},"modified":"2018-06-22T14:12:25","modified_gmt":"2018-06-22T06:12:25","slug":"jsp%e4%b8%8e%e6%95%b0%e6%8d%ae%e5%ba%93%ef%bc%88%e6%9b%b4%e6%96%b0%e4%b8%ad%ef%bc%89","status":"publish","type":"post","link":"http:\/\/www.sniper97.cn\/index.php\/note\/jsp\/395\/","title":{"rendered":"JSP\u4e0e\u6570\u636e\u5e93"},"content":{"rendered":"<p>\u672c\u7ae0\u6ca1\u6709\u8fd0\u884c\u622a\u56fe\uff0c\u56e0\u4e3a\u7535\u8111\u6ca1\u6709MySQL\uff0cemm\u4e3b\u8981\u662f\u61d2\uff0c\u5b9e\u9645\u4e0aMySQL\u548c\u53ef\u89c6\u5316\u7ba1\u7406\u8f6f\u4ef6Navicat for MySQL\u4e00\u5171\u4e5f\u4e0d\u8fc7100M\u5de6\u53f3\uff0c\u60f3\u64cd\u4f5c\u4e00\u4e0b\u8fd8\u662f\u4e0d\u9ebb\u70e6\u7684\uff08\u63d0\u793a\uff1a\u8bb0\u5f97\u4e0b\u8f7dMySQL\u7684jdbc\u5e76\u653e\u5728ext\u6587\u4ef6\u4e0b\uff0c\u5426\u5219\u7a0b\u5e8f\u65e0\u6cd5\u52a0\u8f7d\u6570\u636e\u5e93\u9a71\u52a8\uff09\uff0c\u672c\u7ae0\u7684\u6817\u5b50\u4e5f\u4f1a\u5728\u6700\u540e\u7ed9\u51fa\u4e00\u4e2a\u7efc\u5408\u6027\u7a0b\u5e8f\u7528\u4f5c\u6f14\u793a\uff0c\u4e0d\u518d\u4e00 \u4e00\u6f14\u793a\u3002<\/p>\n<h3>1.\u6570\u636e\u5e93<\/h3>\n<p>\u4e0b\u9762\u662f\u5728JSP\u4e2d\u4f7f\u7528\u6570\u636e\u5e93\u7684\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u5728JSP\u9875\u9762\u4e2d\u4e00\u822c\u53ea\u8d1f\u8d23\u663e\u793a\u90e8\u5206\uff0c\u8fd0\u7b97\u903b\u8f91\u90e8\u5206\u4ea4\u7ed9Servlet\uff0c\u4f46\u662f\u4e0b\u4f8b\u4e2d\u4f9d\u7136\u628a\u903b\u8f91\u90e8\u5206\u4ea4\u7ed9\u4e86JSP\u9875\u9762\u3002<br \/>\nexample7_1.jsp<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;%@ page contentType=\"text\/html;charset=gb2312\" %&gt;\n&lt;%@ page import=\"java.sql.*\" %&gt;\n&lt;HTML&gt;&lt;body bgcolor=#EEDDFF&gt;\n&lt;% Connection con;\nStatement sql;\nResultSet rs;\ntry{ Class.forName(\"com.mysql.jdbc.Driver\"); \/\/\u52a0\u8f7d\u9a71\u52a8\n}\ncatch(Exception e){\nout.println(\"\u5fd8\u8bb0\u628aMySQL\u6570\u636e\u5e93\u7684JDBC-\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\u590d\u5236\u5230JDK\u7684\u6269\u5c55\u76ee\u5f55\u4e2d\");\n}\ntry { String uri= \"jdbc:mysql:\/\/127.0.0.1\/warehouse\";\nString user=\"root\";\nString password=\"\";\ncon=DriverManager.getConnection(uri,user,password);\/\/\u521b\u5efa\u8fde\u63a5\n\/\/\u4e5f\u53ef\u4ee5\u5199\u6210con=DriverManager.getConnection(uri+\"?user=root&amp;password=\");\nsql=con.createStatement();\nrs=sql.executeQuery(\"SELECT * FROM product \"); \/\/\u67e5\u8be2\u6570\u636e\nout.print(\"&lt;table border=2&gt;\"); \/\/\u7ed8\u5236\u8868\u683c\nout.print(\"&lt;tr&gt;\");\nout.print(\"&lt;th width=100&gt;\"+\"\u4ea7\u54c1\u53f7\");\nout.print(\"&lt;th width=100&gt;\"+\"\u540d\u79f0\");\nout.print(\"&lt;th width=50&gt;\"+\"\u751f\u4ea7\u65e5\u671f\");\nout.print(\"&lt;th width=50&gt;\"+\"\u4ef7\u683c\");\nout.print(\"&lt;\/TR&gt;\");\nwhile(rs.next()){ \/\/\u8fed\u4ee3\u5668\nout.print(\"&lt;tr&gt;\");\nout.print(\"&lt;td &gt;\"+rs.getString(1)+\"&lt;\/td&gt;\");\nout.print(\"&lt;td &gt;\"+rs.getString(2)+\"&lt;\/td&gt;\");\nout.print(\"&lt;td &gt;\"+rs.getDate(\"madeTime\")+\"&lt;\/td&gt;\");\nout.print(\"&lt;td &gt;\"+rs.getFloat(\"price\")+\"&lt;\/td&gt;\");\nout.print(\"&lt;\/tr&gt;\") ;\n}\nout.print(\"&lt;\/table&gt;\");\ncon.close();\n}\ncatch(SQLException e){\nout.print(e);\n}\n%&gt;\n&lt;\/body&gt;&lt;\/HTML&gt;\n<\/pre>\n<p>\u5bf9\u4e8eSQL\u8bed\u53e5\uff0c\u4e0a\u4f8b\u4f7f\u7528\u4e86\u201cSELECT * FROM product \u201d\uff0c\u67e5\u627e\u5168\u90e8\uff0c\u8fd8\u6709\u66f4\u65b0\uff08update\uff09\u3001\u5220\u9664\uff08delete\uff09\u7b49\u64cd\u4f5c\uff0c\u5df2\u7ecf\u5728\u6570\u636e\u5e93\u5b66\u8fc7\uff0c\u5c31\u4e0d\u5728\u91cd\u590d\u3002<br \/>\n\u5f53\u7136\uff0c\u4e0a\u6817\u662f\u5df2\u77e5\u6570\u636e\u5e93\u7ed3\u6784\uff0c\u5bf9\u4e8e\u4e0d\u77e5\u9053\u76ee\u6807\u6570\u636e\u5e93\u7ed3\u6784\u7684\u6570\u636e\u5e93\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u65b9\u6cd5\u6765\u83b7\u53d6\u6570\u636e\u5e93\u7684\u4fe1\u606f\uff08\u65b9\u6cd5\u7531jdbc\u63d0\u4f9b\uff09\u3002<br \/>\nResultSetMetaData metaData=rs.getMetaData();<br \/>\n\u7136\u540e\u8c03\u7528\u5bf9\u5e94\u7684\u65b9\u6cd5\u6765\u83b7\u53d6\u4fe1\u606f\u3002<br \/>\nint columnCount=metaData.getColumeCount(); \u83b7\u53d6\u7ed3\u679c\u96c6rs\u4e2d\u5217\u7684\u6570\u76ee\u3002<br \/>\nString columnName=metaData.getColumeName(i); \u83b7\u53d6\u7ed3\u679c\u96c6rs\u4e2d\u7b2ci\u5217\u7684\u540d\u5b57\u3002<\/p>\n<h3>2.\u9884\u5904\u7406\u8bed\u53e5<\/h3>\n<p>\u6211\u4eec\u77e5\u9053\uff0cSQL\u8bed\u53e5\u662f\u7b2c\u4e09\u4ee3\u8bed\u8a00\uff0c\u6240\u4ee5\u6570\u636e\u5e93\u9700\u8981\u5c06\u5b83\u7ffb\u8bd1\u6210\u6570\u636e\u5e93\u81ea\u5df1\u7684\u5185\u90e8\u547d\u4ee4\uff0c\u8fd9\u6837\u5728\u591a\u4eba\u8bbf\u95ee\u7684\u65f6\u5019\u5c31\u4f1a\u9020\u6210\u6570\u636e\u5e93\u538b\u529b\u8fc7\u5927\uff0c\u6240\u4ee5\u6211\u4eec\u9700\u8981\u5bf9SQL\u8bed\u53e5\u8fdb\u884c\u9884\u5904\u7406\uff0c\u5373\u5728\u5ba2\u6237\u7aef\u5c06SQL\u8bed\u53e5\u7ffb\u8bd1\u6210\u5185\u90e8\u547d\u4ee4\u7136\u540e\u518d\u8bbf\u95ee\u6570\u636e\u5e93\uff0c\u51cf\u8f7b\u6570\u636e\u5e93\u8d1f\u62c5\uff0c\u63d0\u9ad8\u6267\u884c\u901f\u5ea6\u3002<br \/>\n\u8c03\u7528<br \/>\nPreparedStatement pre = con.prepareStatement(String SQL);<br \/>\n\u5373\u53ef\u5c06SQL\u8bed\u53e5\u7ffb\u8bd1\u6210\u5185\u90e8\u547d\u4ee4\u3002<\/p>\n<h3>3.\u4f7f\u7528\u901a\u914d\u7b26<\/h3>\n<p>\u5728\u5bf9SQL\u8bed\u53e5\u8fdb\u884c\u9884\u5904\u7406\u65f6\u53ef\u4ee5\u4f7f\u7528\u901a\u914d\u7b26\u201c?\u201d\u6765\u4ee3\u66ff\u5b57\u6bb5\u7684\u503c\uff0c\u53ea\u8981\u5728\u9884\u5904\u7406\u8bed\u53e5\u6267\u884c\u4e4b\u524d\u518d\u8bbe\u7f6e\u901a\u914d\u7b26\u6240\u8868\u793a\u7684\u5177\u4f53\u503c\u5373\u53ef\u3002<br \/>\n&nbsp;<br \/>\n\u4e0b\u9762\u662f\u6817\u5b50\uff0c\u5305\u62ec\u4e86\u6570\u636e\u5e93\u7684\u8fde\u63a5\u3001\u67e5\u8be2\u3001\u8bed\u53e5\u7684\u9884\u5904\u7406\u3001\u901a\u914d\u7b26\uff0c\u5168\u90e8\u90fd\u6ce8\u91ca\u4e86\uff1a<br \/>\nexample7_6.jsp<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;%@ page contentType=\"text\/html;charset=gb2312\" %&gt;\n&lt;HTML&gt;&lt;body bgcolor=#AAFFEE&gt;&lt;font size=2&gt;\n&lt;form action=\"preparedServlet\" method=post&gt;\n&lt;b&gt;\u8f93\u5165\u4e3b\u952enumber\u662f&lt;input type=\"text\" name=\"number\" size=10&gt;&lt;br&gt;\n   \u7684name,madeTime\u548cprice\u7684\u66f4\u65b0\u503c\uff1a&lt;br&gt;\n   name:&lt;input type=\"text\" name=\"name\" size=7&gt;&lt;br&gt;\n   madeTime:&lt;input type=\"text\" name=\"madeTime\" size=10&gt;&lt;br&gt;\n   price:&lt;input type=\"text\" name=\"price\" size=8&gt;&lt;br&gt;\n  &lt;input type=\"submit\" name=\"b\" value=\"\u63d0\u4ea4\"&gt;\n&lt;\/font&gt;&lt;\/body&gt;&lt;\/HTML&gt;\n<\/pre>\n<p>example7_6_Servlet.java<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">package myservlet.control;\nimport mybean.data.Example7_2_Bean; \/\/\u5f15\u5165\u4f8b\u5b502\u4e2d\u7684Javabean\u6a21\u578b\nimport java.io.*;\nimport java.sql.*;\nimport javax.servlet.*;\nimport javax.servlet.http.*;\nimport java.util.Calendar;\npublic class Example7_6_Servlet extends HttpServlet{\n   public void init(ServletConfig config) throws ServletException{\n      super.init(config);\n   }\n   public void doPost(HttpServletRequest request,HttpServletResponse response)\n               throws ServletException,IOException{\n      Example7_2_Bean resultBean=null;\n      try{  resultBean=(Example7_2_Bean)request.getAttribute(\"resultBean\");\n            if(resultBean==null){\n                resultBean=new Example7_2_Bean(); \/\/\u521b\u5efaJavabean\u5bf9\u8c61\n                request.setAttribute(\"resultBean\",resultBean);\n            }\n      }\n      catch(Exception exp){\n            resultBean=new Example7_2_Bean();  \/\/\u521b\u5efaJavabean\u5bf9\u8c61\n            request.setAttribute(\"resultBean\",resultBean);\n      }\n     try{  Class.forName(\"com.mysql.jdbc.Driver\");\n     }\n     catch(Exception e){}\n     request.setCharacterEncoding(\"gb2312\");\n     String number=request.getParameter(\"number\");\n     String name=request.getParameter(\"name\");\n     String madeTime=request.getParameter(\"madeTime\");\n     String pr=request.getParameter(\"price\");\n     if(number==null||number.length()==0) {\n        fail(request,response,\"\u66f4\u65b0\u8bb0\u5f55\u5931\u8d25,\u5fc5\u987b\u7ed9\u51fa\u8bb0\u5f55\");\n        return;\n     }\n     float price=Float.parseFloat(pr);\n     String [] str=madeTime.split(\"[-\/]\");\/\/\u8f93\u5165\u7684\u65e5\u671f\u5fc5\u987b\u7528-\u6216\/\u683c\u5f0f\n     int year=Integer.parseInt(str[0]);\n     int month=Integer.parseInt(str[1]);\n     int day=Integer.parseInt(str[2]);\n     Calendar calendar =Calendar.getInstance();\n     calendar.set(year,month-1,day);\n     Date date=new Date(calendar.getTimeInMillis());\n     Connection con;\n     PreparedStatement sql; \/\/\u9884\u5904\u7406\u8bed\u53e5 ;\n     ResultSet rs;\n     try{\n          String uri=\"jdbc:mysql:\/\/127.0.0.1\/warehouse?\"+\n                      \"user=root&amp;password=&amp;characterEncoding=gb2312\";\n          con=DriverManager.getConnection(uri);\/\/\u8fde\u63a5\u6570\u636e\u5e93\n          String condition =\n         \"UPDATE product SET name = ?,price = ?,madeTime = ?  WHERE number=?\";\n          sql=con.prepareStatement(condition); \/\/\u9884\u5904\u7406\n          sql.setString(1,name);   \/\/\u8bbe\u7f6e\u7b2c1\u4e2a\u7edf\u914d\u7b26\u201c\uff1f\u201d\u4ee3\u8868\u7684\u5177\u4f53\u503c\n          sql.setFloat(2,price);   \/\/\u8bbe\u7f6e\u7b2c2\u4e2a\u7edf\u914d\u7b26\u201c\uff1f\u201d\u4ee3\u8868\u7684\u5177\u4f53\u503c\n          sql.setDate(3,date);     \/\/\u8bbe\u7f6e\u7b2c3\u4e2a\u7edf\u914d\u7b26\u201c\uff1f\u201d\u4ee3\u8868\u7684\u5177\u4f53\u503c\n          sql.setString(4,number); \/\/\u8bbe\u7f6e\u7b2c4\u4e2a\u7edf\u914d\u7b26\u201c\uff1f\u201d\u4ee3\u8868\u7684\u5177\u4f53\u503c\n          sql.executeUpdate();\n          sql=con.prepareStatement(\"select * from product\");\n          rs=sql.executeQuery();          \/\/\u6267\u884cSQL\u8bed\u53e5\n          ResultSetMetaData metaData = rs.getMetaData();\n          int columnCount = metaData.getColumnCount(); \/\/\u5f97\u5230\u7ed3\u679c\u96c6\u7684\u5217\u6570\n          String []columnName = new String[columnCount];\n          for(int i=0;i&lt;columnName.length;i++) {\n             columnName[i] = metaData.getColumnName(i+1); \/\/\u5f97\u5230\u5217\u540d\n          }\n          resultBean.setColumnName(columnName);   \/\/\u66f4\u65b0Javabean\u6570\u636e\u6a21\u578b\n          rs.last();\n          int rowNumber=rs.getRow();  \/\/\u5f97\u5230\u8bb0\u5f55\u6570\n          String [][] tableRecord=resultBean.getTableRecord();\n          tableRecord = new String[rowNumber][columnCount];\n          rs.beforeFirst();\n          int i=0;\n          while(rs.next()){\n            for(int k=0;k&lt;columnCount;k++)\n              tableRecord[i][k] = rs.getString(k+1);\n            i++;\n          }\n          resultBean.setTableRecord(tableRecord); \/\/\u66f4\u65b0Javabean\u6570\u636e\u6a21\u578b\n          con.close();\n          RequestDispatcher dispatcher=\n          request.getRequestDispatcher(\"showRecord.jsp\");\n          dispatcher.forward(request,response);  \/\/\u8f6c\u53d1\n     }\n     catch(SQLException e){\n          System.out.println(e);\n          fail(request,response,\"\u66f4\u65b0\u8bb0\u5f55\u5931\u8d25:\"+e.toString());\n     }\n   }\n   public  void  doGet(HttpServletRequest request,HttpServletResponse response)\n           throws ServletException,IOException{\n       doPost(request,response);\n   }\n   public void fail(HttpServletRequest request,HttpServletResponse response,\n                      String backNews) {\n        response.setContentType(\"text\/html;charset=GB2312\");\n        try {\n         PrintWriter out=response.getWriter();\n         out.println(\"&lt;html&gt;&lt;body&gt;\");\n         out.println(\"&lt;h2&gt;\"+backNews+\"&lt;\/h2&gt;\") ;\n         out.println(\"\u8fd4\u56de\");\n         out.println(\"&lt;a href =example7_6.jsp&gt;\u8f93\u5165\u8bb0\u5f55&lt;\/a&gt;\");\n         out.println(\"&lt;\/body&gt;&lt;\/html&gt;\");\n        }\n        catch(IOException exp){}\n    }\n}\n<\/pre>\n<p>&nbsp;<br \/>\n&nbsp;<\/p>\n<h3><strong>\u8bfe\u540e\u9898\uff1a<\/strong><\/h3>\n<p>1.\u52a0\u8f7dMySQL\u7684JDBC\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\u4ee3\u7801\u662f\u4ec0\u4e48?<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">try{\n    Class.forName(\"com.mysql.jdbc.Driver\");\n} catch(Exception e){\n }<\/pre>\n<p>2.\u52a0\u8f7dSQL server\u7684JDBC\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\u4ee3\u7801\u662f\u4ec0\u4e48\uff1f<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">try{\n    Class.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\");\n} catch(Exception e){\n }<\/pre>\n<p>4.\u4f7f\u7528\u9884\u5904\u7406\u8bed\u53e5\u7684\u597d\u5904\u662f\u4ec0\u4e48\uff1f<br \/>\n\u00b7\u00a0\u00a0\u00a0\u9884\u5904\u7406\u8bed\u53e5PreparedStatement\u4f1a\u5c06\u4f20\u5165\u7684SQL\u547d\u4ee4\u5c01\u88c5\u5728PreparedStatement\u5bf9\u8c61\u4e2d,\u4e8b\u5148\u8fdb\u884c\u9884\u7f16\u8bd1\u5904\u7406\u7b49\u5f85\u4f7f\u7528\u3002<br \/>\n\u5f53\u6709\u5355\u4e00\u7684SQL\u8bed\u53e5\u591a\u6b21\u6267\u884c\u65f6\uff0c\u7528PreparedStatement\u7c7b\u4f1a\u6bd4Statement\u7c7b\u66f4\u6709\u6548\u7387\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7ae0\u6ca1\u6709\u8fd0\u884c\u622a\u56fe\uff0c\u56e0\u4e3a\u7535\u8111\u6ca1\u6709MySQL\uff0cemm\u4e3b\u8981\u662f\u61d2\uff0c\u5b9e\u9645\u4e0aMySQL\u548c\u53ef\u89c6\u5316\u7ba1\u7406\u8f6f\u4ef6Navic [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[22],"tags":[],"views":4909,"_links":{"self":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts\/395"}],"collection":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/comments?post=395"}],"version-history":[{"count":0,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts\/395\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/media?parent=395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/categories?post=395"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/tags?post=395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}