欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaWeb應(yīng)用實例:用servlet實現(xiàn)oracle 基本增刪改查

 更新時間:2017年01月11日 10:19:33   作者:Syliu  
本篇文章主要介紹了JavaWeb應(yīng)用實例:用servlet實現(xiàn)oracle 基本增刪改查,非常具有實用價值,需要的朋友可以參考下。

很久沒有寫博客了,可能是太懶散,不愿意把時間花在這上面,可是我心里還是知道寫博客的重要性的 ,所以從今天開始 ,我將與大家分享一下我學(xué)Java WEB寫的一些小實例  ,我個人是不太喜歡書本上的晦澀的概念的,所以我花了更多的時間在一些應(yīng)用實例上,我覺得這樣的學(xué)習(xí)方式很適合我,由簡到繁,由淺入深

廢話不多話,開始我們的第一個實例:

 servlet實現(xiàn)Oracle 基本增刪改查

開發(fā)環(huán)境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g

首先附上數(shù)據(jù)庫創(chuàng)建腳本:

create table student( 
id VARCHAR2(50) PRIMARY KEY NOT NULL, 
name varchar2(50) NOT NULL, 
calssGrent varchar2(50) NOT NULL , 
result varchar(12) NOT NULL 
); 
insert into student(id,name,calssGrent,result) values(perseq.nextval,'張三','33','98') 

下圖為代碼結(jié)構(gòu)圖和功能演示界面做的比較糟糕 只為實現(xiàn)功能:

MMC_01.Java

頁面 //主界面提供添加,修改刪除的方法

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import oracle.jdbc.oracore.TDSPatch; 
 
public class MMC_01 extends HttpServlet 
{ 
  // 驅(qū)動程序就是之前在classpath中配置的jdbc的驅(qū)動程序的jar包中 
 
  // 連接地址是由各個數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住 
  public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
  // 連接數(shù)據(jù)庫的用戶名 
  public static final String DBUSER = "scott"; 
  // 連接數(shù)據(jù)庫的密碼 
  public static final String DBPASS = "tiger"; 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    //設(shè)置請求和響應(yīng)的編碼 ,不然頁面上容易出現(xiàn)亂碼 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
   
    response.setContentType("text/html;UTF-8"); 
    //輸出流 
    PrintWriter out = response.getWriter(); 
    //數(shù)據(jù)庫連接代碼 
    try 
    { 
      Connection conn = null; // 表示數(shù)據(jù)庫的連接的對象 
      Statement stmt = null; // 表示數(shù)據(jù)庫的更新操作 
      String sql="insert into student(id,name,calssGrent,result) values('67','劉12宇','33','98')"; 
      System.out.println(sql) ; 
      // 1、使用Class類加載驅(qū)動程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、連接數(shù)據(jù)庫 
      conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      // 3、Statement接口需要通過Connection接口進(jìn)行實例化操作 
      stmt = conn.createStatement(); 
      //用 rs獲取查詢結(jié)果 ,這里的SQL語句最好不要用* 我的字段比較少所以就偷一下懶,-,- 
      ResultSet rs=stmt.executeQuery("select *from student"); 
      out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); 
      out.println("<HTML>"); 
      out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); 
      out.println(" <BODY>"); 
      //輸出表頭部分 
      out.print("<table align='center' border='1'><tr><td>姓名" + 
      "</td><td>班級</td><td>成績</td><td>修改</td><td>刪除</td></tr>"); 
      while(rs.next()) 
      { 
        //獲取數(shù)據(jù)庫中的ID 
        String id=rs.getString("id"); 
        //輸出一列元素 
        out.print("<tr><td>"+rs.getString("name") 
        +"</td><td>"+rs.getString("calssGrent")+"" + 
        "</td><td>"+rs.getString("result")+"</td>" + 
        "<td><a href='UpdatePage?id="+id+"'>修改</a></td>" + 
        "<td><a href='delete?id="+id+"'> 刪除 </a></td></tr>"); 
         
      } 
      out.println("<td><a href=AddPage>添加數(shù)據(jù)</a></td>"); 
      out.println(" </BODY>"); 
      out.println("</HTML>");  
      conn.close(); 
       
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
    out.flush(); 
    out.close(); 
  } 
 
} 

 UpdatePage.java    //獲取要修改的數(shù)據(jù) ,并把修改過的數(shù)據(jù)提交給Update

package org.lsy.servlet; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import com.sun.crypto.provider.RSACipher; 
 
public class UpdatePage extends HttpServlet 
{ 
  // 連接地址是由各個數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住 
    public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
    // 連接數(shù)據(jù)庫的用戶名 
    public static final String DBUSER = "scott"; 
    // 連接數(shù)據(jù)庫的密碼 
    public static final String DBPASS = "tiger"; 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    String id=request.getParameter("id"); 
    //設(shè)置請求和響應(yīng)的編碼 ,不然頁面上容易出現(xiàn)亂碼 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
    response.setContentType("text/html;UTF-8"); 
    PrintWriter out = response.getWriter(); 
    try 
    { 
      Connection conn = null; // 表示數(shù)據(jù)庫的連接的對象 
      Statement stmt = null; // 表示數(shù)據(jù)庫的更新操作 
      // 1、使用Class類加載驅(qū)動程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、連接數(shù)據(jù)庫 
      conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      // 3、Statement接口需要通過Connection接口進(jìn)行實例化操作 
      stmt = conn.createStatement(); 
      //用 rs獲取查詢結(jié)果 ,這里的SQL語句最好不要用* 我的字段比較少所以就偷一下懶,-,- 
      ResultSet rs=stmt.executeQuery("select *from student where id='"+id+"'"); 
      while (rs.next()) 
      { 
      out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); 
      out.println("<HTML>"); 
      out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); 
      out.println(" <BODY>"); 
      //輸入成績的表單,提交至Update 
      out.print(" <form action='Update' method='post'> "); 
      out.print("<table align='center'> <tr><td>姓名:<input type='text' value='"+rs.getString("name")+"' 
      name='name' size=20 ></td></tr>"); 
      out.print("<tr><td>班級:<input type='text' value='"+rs.getString("calssGrent")+"' name='grent' size=20></td></tr>"); 
      out.print("<tr><td>成績:<input type='text' value='"+rs.getString("result")+"' name='result' size=20></td></tr>");   
      //為了作為查詢數(shù)據(jù)庫的條件 ,這里要把ID傳過去 
      out.print("<input type='hidden' value='"+id+"' name='id'>"); 
      out.print("<tr><td><input type='submit' value='修改'><input type='reset' value='重置'></td></tr></table></form>"); 
      out.print(" </BODY>"); 
      out.println("</HTML>"); 
      } 
      out.flush(); 
      out.close(); 
    } 
    catch (Exception e) { 
      e.printStackTrace();// TODO: handle exception 
    } 
    } 
 
} 

Update.java  接收要修改的數(shù)據(jù) ,并更新數(shù)據(jù)庫

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class Update extends HttpServlet 
{ 
  // 驅(qū)動程序就是之前在classpath中配置的jdbc的驅(qū)動程序的jar包中 
 
  // 連接地址是由各個數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住 
  public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
  // 連接數(shù)據(jù)庫的用戶名 
  public static final String DBUSER = "scott"; 
  // 連接數(shù)據(jù)庫的密碼 
  public static final String DBPASS = "tiger"; 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    try 
     
    { 
      request.setCharacterEncoding("UTF-8"); 
      response.setCharacterEncoding("UTF-8");  
      response.setContentType("text/html;UTF-8"); 
      PrintWriter out = response.getWriter();  
      Connection conn = null; // 表示數(shù)據(jù)庫的連接的對象 
      Statement stmt = null; // 表示數(shù)據(jù)庫的更新操作 
      //獲取表單提交的參數(shù) 
      String id=request.getParameter("id"); 
      System.out.println(id); 
      String name=request.getParameter("name"); 
      String grent=request.getParameter("grent"); 
      String result=request.getParameter("result"); 
      //更新SQL 
      String sqlString="update student set name='"+name+"' ," + 
          "calssGrent='"+grent+"',result='"+result+"' where id='"+id+"' ";  
      // 1、使用Class類加載驅(qū)動程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、連接數(shù)據(jù)庫 
      conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      // 3、Statement接口需要通過Connection接口進(jìn)行實例化操作 
      stmt = conn.createStatement(); 
      int pd=stmt.executeUpdate(sqlString); 
      if(pd!=0) 
      { 
      out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); 
      out.println("<HTML>"); 
      out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); 
      out.println(" <BODY>"); 
      out.print(" 更新成功<br><a href=MMC_01>查看列表</a> "); 
      out.println(" </BODY>"); 
      out.println("</HTML>"); 
      } 
      out.flush(); 
      out.close(); 
      stmt.close(); 
      conn.close(); 
    } 
    catch (Exception e) 
    { 
      // TODO: handle exception 
    } 
  } 
  public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    doGet(request, response); 
  } 
 
} 

addPage .java,添加數(shù)據(jù)頁面

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class AddPage extends HttpServlet 
{ 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    //設(shè)置請求和響應(yīng)的編碼 ,不然頁面上容易出現(xiàn)亂碼 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
    response.setContentType("text/html;UTF-8"); 
    PrintWriter out = response.getWriter(); 
    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); 
    out.println("<HTML>"); 
    out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); 
    out.println(" <BODY>"); 
    //輸入成績的表單,提交至add 
    out.print(" <form action='Add' method='post'> "); 
    out.print("<table align='center'> <tr><td>姓名:<input type='text' name='name' size=20 ></td></tr>"); 
    out.print("<tr><td>班級:<input type='text' name='grent' size=20></td></tr>"); 
    out.print("<tr><td>成績:<input type='text' name='result' size=20></td></tr>");  
    out.print("<tr><td><input type='submit' value='添加'><input type='reset' value='重置'></td></tr></table></form>"); 
    out.println("<tr><td><a href=MMC_01>查看列表</a></td></tr>"); 
    out.println(" </BODY>"); 
    out.println("</HTML>"); 
    out.flush(); 
    out.close(); 
  } 
 
} 

add   接收addpage傳來的傳,更新數(shù)據(jù)庫

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import com.sun.org.apache.xerces.internal.impl.io.UTF8Reader; 
 
import oracle.jdbc.oracore.TDSPatch; 
 
public class Add extends HttpServlet 
{ 
  // 驅(qū)動程序就是之前在classpath中配置的jdbc的驅(qū)動程序的jar包中 
 
  // 連接地址是由各個數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住 
  public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
  // 連接數(shù)據(jù)庫的用戶名 
  public static final String DBUSER = "scott"; 
  // 連接數(shù)據(jù)庫的密碼 
  public static final String DBPASS = "tiger"; 
 
  @Override 
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException 
  { 
    // TODO Auto-generated method stub 
    doGet(req, resp); 
  } 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    //設(shè)置請求和響應(yīng)的編碼 ,不然頁面上容易出現(xiàn)亂碼 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
   
    response.setContentType("text/html;UTF-8"); 
    //輸出流 
    PrintWriter out = response.getWriter(); 
    //數(shù)據(jù)庫連接代碼 
    try 
    { 
      Connection conn = null; // 表示數(shù)據(jù)庫的連接的對象 
      Statement pstmt = null; // 表示數(shù)據(jù)庫的更新操作 
      String nameString=request.getParameter("name"); 
      String grentString=request.getParameter("grent"); 
      String resultString=request.getParameter("result"); 
      System.out.print(nameString); 
      String sql="insert into student(id,name,calssGrent,result)  

 values(perseq.nextval,'"+nameString+"','"+grentString+"','"+resultString+"')"; 
   
      // 1、使用Class類加載驅(qū)動程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、連接數(shù)據(jù)庫 
      conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      pstmt=conn.createStatement(); 
      int pd=pstmt.executeUpdate(sql); 
      if (pd!=0) 
      { 
        out.println("添加成功"); 
        out.println("<br><a href=MMC_01>查看列表</a>"); 
      } 
      conn.close(); 
       
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
    out.flush(); 
    out.close(); 
  } 
 
} 

web.xml 配置文件

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5"  
  xmlns="http://java.sun.com/xml/ns/javaee"  
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
 <display-name></display-name>  
 <welcome-file-list> 
  <welcome-file>index.jsp</welcome-file> 
 </welcome-file-list> 
  <servlet-name>MMC_01</servlet-name> 
  <servlet-class>org.lsy.servlet.MMC_01</servlet-class> 
 </servlet> 
 <servlet> 
  <servlet-name>delete</servlet-name> 
  <servlet-class>org.lsy.servlet.delete</servlet-class> 
 </servlet> 
 <servlet> 
  <servlet-name>Add</servlet-name> 
  <servlet-class>org.lsy.servlet.Add</servlet-class> 
 </servlet> 
 <servlet> 
  <servlet-name>AddPage</servlet-name> 
  <servlet-class>org.lsy.servlet.AddPage</servlet-class> 
 </servlet> 
 <servlet> 
  <servlet-name>UpdatePage</servlet-name> 
  <servlet-class>org.lsy.servlet.UpdatePage</servlet-class> 
 </servlet> 
 <servlet> 
  <servlet-name>Update</servlet-name> 
  <servlet-class>org.lsy.servlet.Update</servlet-class> 
 </servlet> 
 
 
 <servlet-mapping> 
  <servlet-name>MMC_01</servlet-name> 
  <url-pattern>/MMC_01</url-pattern> 
 </servlet-mapping> 
 <servlet-mapping> 
  <servlet-name>delete</servlet-name> 
  <url-pattern>/delete</url-pattern> 
 </servlet-mapping> 
 <servlet-mapping> 
  <servlet-name>Add</servlet-name> 
  <url-pattern>/Add</url-pattern> 
 </servlet-mapping> 
 <servlet-mapping> 
  <servlet-name>AddPage</servlet-name> 
  <url-pattern>/AddPage</url-pattern> 
 </servlet-mapping> 
 <servlet-mapping> 
  <servlet-name>UpdatePage</servlet-name> 
  <url-pattern>/UpdatePage</url-pattern> 
 </servlet-mapping> 
 <servlet-mapping> 
  <servlet-name>Update</servlet-name> 
  <url-pattern>/Update</url-pattern> 
 </servlet-mapping> 
</web-app> 

本人并非老鳥,一直處于學(xué)習(xí)中,有什么錯誤的地方還請指證,上面的代碼有很多重復(fù)的部分,很多不合理的地方 ,比較數(shù)據(jù)庫連接直接暴露于操作servlet中  ,為了看的更直觀 ,我就沒有更改……

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot 分布式驗證碼登錄方案示例詳解

    SpringBoot 分布式驗證碼登錄方案示例詳解

    為了防止驗證系統(tǒng)被暴力破解,很多系統(tǒng)都增加了驗證碼效驗,比較常見的就是圖片二維碼,業(yè)內(nèi)比較安全的是短信驗證碼,當(dāng)然還有一些拼圖驗證碼,加入人工智能的二維碼等等,我們今天的主題就是前后端分離的圖片二維碼登錄方案,感興趣的朋友一起看看吧
    2023-10-10
  • Java多線程中synchronized的工作原理

    Java多線程中synchronized的工作原理

    這篇文章主要介紹了Java多線程中synchronized的工作原理,本期講解 synchronized 工作的原理以及常見的鎖優(yōu)化機(jī)制,相信大家在看完這篇博文后對 synchronized 工作流程有一定的理解,需要的朋友可以參考下
    2023-07-07
  • 詳解Java七大阻塞隊列之SynchronousQueue

    詳解Java七大阻塞隊列之SynchronousQueue

    SynchronousQueue不需要存儲線程間交換的數(shù)據(jù),它的作用像是一個匹配器,使生產(chǎn)者和消費(fèi)者一一匹配。本文詳細(xì)講解了Java七大阻塞隊列之一SynchronousQueue,需要了解的小伙伴可以參考一下這篇文章
    2021-09-09
  • 詳解SpringBoot的Run方法

    詳解SpringBoot的Run方法

    本文給大家介紹了SpringBoot的Run方法,文中通過實例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-10-10
  • java排查死鎖示例

    java排查死鎖示例

    這篇文章主要介紹了java排查死鎖示例,通過java中簡單的死鎖示例引出四種排查死鎖的工具,詳細(xì)講解請看全文,希望對大家有所幫助
    2021-08-08
  • 深入理解Java設(shè)計模式之中介者模式

    深入理解Java設(shè)計模式之中介者模式

    這篇文章主要介紹了JAVA設(shè)計模式之中介者模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解
    2021-11-11
  • Java日常練習(xí)題,每天進(jìn)步一點點(59)

    Java日常練習(xí)題,每天進(jìn)步一點點(59)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • Java超詳細(xì)講解設(shè)計模式中的命令模式

    Java超詳細(xì)講解設(shè)計模式中的命令模式

    命令模式是將一個請求封裝為一個對象,從而可用不同的請求對客戶進(jìn)行參數(shù)化,對請求排隊或者對請求做日志記錄,以及可以支持撤銷的操作
    2022-04-04
  • 淺談@RequestMapping注解的注意點

    淺談@RequestMapping注解的注意點

    這篇文章主要介紹了淺談@RequestMapping注解的注意點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java開發(fā)常見錯誤之?dāng)?shù)值計算精度和舍入問題詳析

    Java開發(fā)常見錯誤之?dāng)?shù)值計算精度和舍入問題詳析

    除了使用Double保存浮點數(shù)可能帶來精度問題外,更匪夷所思的是這種精度問題,下面這篇文章主要給大家介紹了關(guān)于Java開發(fā)常見錯誤之?dāng)?shù)值計算精度和舍入問題的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11

最新評論