Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 627|回复: 0

[默认分类] Java Web 应用实例 servlet实现oracle 基本增删改查

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-6-22 11:08:53 | 显示全部楼层 |阅读模式


    很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 ,我将与大家分享一下我学Java Web写的一些小实例  ,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深
      
    废话不多话,开始我们的第一个实例:
      Servlet实现oracle 基本增删改查  
    开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g
    首先附上数据库创建脚本:
      
    1. create table student(
    2. id VARCHAR2(50) PRIMARY KEY NOT NULL,
    3. name varchar2(50) NOT NULL,
    4. calssGrent varchar2(50) NOT NULL ,
    5. result varchar(12) NOT NULL
    6. );
    7. insert into student(id,name,calssGrent,result) values(perseq.nextval,"张三","33","98")
    复制代码

      
    下图为代码结构图和功能演示界面做的比较糟糕 只为实现功能:


    MMC_01.java
      
    页面 //主界面提供添加,修改删除的方法




    1. package org.lsy.servlet;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.sql.Connection;
    5. import java.sql.DriverManager;
    6. import java.sql.ResultSet;
    7. import java.sql.Statement;
    8. import javax.servlet.ServletException;
    9. import javax.servlet.http.HttpServlet;
    10. import javax.servlet.http.HttpServletRequest;
    11. import javax.servlet.http.HttpServletResponse;
    12. import oracle.jdbc.oracore.TDSPatch;
    13. public class MMC_01 extends HttpServlet
    14. {
    15.         // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中
    16.         // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住
    17.         public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY";
    18.         // 连接数据库的用户名
    19.         public static final String DBUSER = "scott";
    20.         // 连接数据库的密码
    21.         public static final String DBPASS = "tiger";
    22.         public void doGet(HttpServletRequest request, HttpServletResponse response)
    23.                         throws ServletException, IOException
    24.         {
    25.                 //设置请求和响应的编码 ,不然页面上容易出现乱码
    26.                 request.setCharacterEncoding("UTF-8");
    27.                 response.setCharacterEncoding("UTF-8");       
    28.        
    29.                 response.setContentType("text/html;UTF-8");
    30.                 //输出流
    31.                 PrintWriter out = response.getWriter();
    32.                 //数据库连接代码
    33.                 try
    34.                 {
    35.                         Connection conn = null; // 表示数据库的连接的对象
    36.                         Statement stmt = null; // 表示数据库的更新操作
    37.                         String sql="insert into student(id,name,calssGrent,result) values("67","刘12宇","33","98")";
    38.                         System.out.println(sql) ;
    39.                         // 1、使用Class类加载驱动程序
    40.                         Class.forName("oracle.jdbc.driver.OracleDriver");
    41.                         // 2、连接数据库
    42.                         conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
    43.                         // 3、Statement接口需要通过Connection接口进行实例化操作
    44.                         stmt = conn.createStatement();
    45.                         //用 rs获取查询结果  ,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,-
    46.                         ResultSet rs=stmt.executeQuery("select *from student");
    47.                         out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
    48.                         out.println("<HTML>");
    49.                         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
    50.                         out.println("  <BODY>");
    51.                         //输出表头部分
    52.                         out.print("<table align="center" border="1"><tr><td>姓名" +
    53.                         "</td><td>班级</td><td>成绩</td><td>修改</td><td>删除</td></tr>");
    54.                         while(rs.next())
    55.                         {
    56.                                 //获取数据库中的ID
    57.                                 String id=rs.getString("id");
    58.                                 //输出一列元素
    59.                                 out.print("<tr><td>"+rs.getString("name")
    60.                                 +"</td><td>"+rs.getString("calssGrent")+"" +
    61.                                 "</td><td>"+rs.getString("result")+"</td>" +
    62.                                 "<td><a href="UpdatePage?id="+id+"">修改</a></td>" +
    63.                                 "<td><a href="delete?id="+id+""> 删除 </a></td></tr>");
    64.                                
    65.                         }
    66.                         out.println("<td><a href=AddPage>添加数据</a></td>");
    67.                         out.println("  </BODY>");
    68.                         out.println("</HTML>");
    69.                         conn.close();
    70.                        
    71.                 }
    72.                 catch (Exception e)
    73.                 {
    74.                         e.printStackTrace();
    75.                 }
    76.                 out.flush();
    77.                 out.close();
    78.         }
    79. }
    80.        
    复制代码

    UpdatePage.java    //获取要修改的数据 ,并把修改过的数据提交给Update
      
    1. package org.lsy.servlet;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.sql.Connection;
    5. import java.sql.DriverManager;
    6. import java.sql.ResultSet;
    7. import java.sql.Statement;
    8. import javax.servlet.ServletException;
    9. import javax.servlet.http.HttpServlet;
    10. import javax.servlet.http.HttpServletRequest;
    11. import javax.servlet.http.HttpServletResponse;
    12. import com.sun.crypto.provider.RSACipher;
    13. public class UpdatePage extends HttpServlet
    14. {
    15.         // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住
    16.                 public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY";
    17.                 // 连接数据库的用户名
    18.                 public static final String DBUSER = "scott";
    19.                 // 连接数据库的密码
    20.                 public static final String DBPASS = "tiger";
    21.         public void doGet(HttpServletRequest request, HttpServletResponse response)
    22.                         throws ServletException, IOException
    23.         {
    24.                 String id=request.getParameter("id");
    25.                 //设置请求和响应的编码 ,不然页面上容易出现乱码
    26.                 request.setCharacterEncoding("UTF-8");
    27.                 response.setCharacterEncoding("UTF-8");       
    28.                 response.setContentType("text/html;UTF-8");
    29.                 PrintWriter out = response.getWriter();
    30.                 try
    31.                 {
    32.                         Connection conn = null; // 表示数据库的连接的对象
    33.                         Statement stmt = null; // 表示数据库的更新操作
    34.                         // 1、使用Class类加载驱动程序
    35.                         Class.forName("oracle.jdbc.driver.OracleDriver");
    36.                         // 2、连接数据库
    37.                         conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
    38.                         // 3、Statement接口需要通过Connection接口进行实例化操作
    39.                         stmt = conn.createStatement();
    40.                         //用 rs获取查询结果  ,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,-
    41.                         ResultSet rs=stmt.executeQuery("select *from student where id=""+id+""");
    42.                         while (rs.next())
    43.                         {
    44.                         out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
    45.                         out.println("<HTML>");
    46.                         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
    47.                         out.println("  <BODY>");
    48.                         //输入成绩的表单,提交至Update
    49.                         out.print(" <form action="Update" method="post"> ");
    50.                         out.print("<table align="center"> <tr><td>姓名:<input type="text" value=""+rs.getString("name")+""
    复制代码
    1.                                          name="name" size=20 ></td></tr>");
    2.                         out.print("<tr><td>班级:<input type="text" value=""+rs.getString("calssGrent")+"" name="grent" size=20></td></tr>");
    3.                         out.print("<tr><td>成绩:<input type="text" value=""+rs.getString("result")+"" name="result" size=20></td></tr>");       
    4.                         //为了作为查询数据库的条件 ,这里要把ID传过去
    5.                         out.print("<input type="hidden" value=""+id+"" name="id">");
    6.                         out.print("<tr><td><input type="submit" value="修改"><input type="reset" value="重置"></td></tr></table></form>");
    7.                         out.print("  </BODY>");
    8.                         out.println("</HTML>");
    9.                         }
    10.                         out.flush();
    11.                         out.close();
    12.                 }
    13.                 catch (Exception e) {
    14.                         e.printStackTrace();// TODO: handle exception
    15.                 }
    16.                 }
    17. }
    复制代码

    Update.java  接收要修改的数据 ,并更新数据库
      
      
    1. package org.lsy.servlet;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.sql.Connection;
    5. import java.sql.DriverManager;
    6. import java.sql.Statement;
    7. import javax.servlet.ServletException;
    8. import javax.servlet.http.HttpServlet;
    9. import javax.servlet.http.HttpServletRequest;
    10. import javax.servlet.http.HttpServletResponse;
    11. public class Update extends HttpServlet
    12. {
    13.         // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中
    14.         // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住
    15.         public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY";
    16.         // 连接数据库的用户名
    17.         public static final String DBUSER = "scott";
    18.         // 连接数据库的密码
    19.         public static final String DBPASS = "tiger";
    20.         public void doGet(HttpServletRequest request, HttpServletResponse response)
    21.                         throws ServletException, IOException
    22.         {
    23.                 try
    24.                
    25.                 {
    26.                         request.setCharacterEncoding("UTF-8");
    27.                         response.setCharacterEncoding("UTF-8");       
    28.                         response.setContentType("text/html;UTF-8");
    29.                         PrintWriter out = response.getWriter();       
    30.                         Connection conn = null; // 表示数据库的连接的对象
    31.                         Statement stmt = null; // 表示数据库的更新操作
    32.                         //获取表单提交的参数
    33.                         String id=request.getParameter("id");
    34.                         System.out.println(id);
    35.                         String name=request.getParameter("name");
    36.                         String grent=request.getParameter("grent");
    37.                         String result=request.getParameter("result");
    38.                         //更新SQL
    39.                         String sqlString="update student set name=""+name+"" ," +
    40.                                         "calssGrent=""+grent+"",result=""+result+"" where id=""+id+""  ";  
    41.                         // 1、使用Class类加载驱动程序
    42.                         Class.forName("oracle.jdbc.driver.OracleDriver");
    43.                         // 2、连接数据库
    44.                         conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
    45.                         // 3、Statement接口需要通过Connection接口进行实例化操作
    46.                         stmt = conn.createStatement();
    47.                         int pd=stmt.executeUpdate(sqlString);
    48.                         if(pd!=0)
    49.                         {
    50.                         out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
    51.                         out.println("<HTML>");
    52.                         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
    53.                         out.println("  <BODY>");
    54.                         out.print(" 更新成功<br><a href=MMC_01>查看列表</a> ");
    55.                         out.println("  </BODY>");
    56.                         out.println("</HTML>");
    57.                         }
    58.                         out.flush();
    59.                         out.close();
    60.                         stmt.close();
    61.                         conn.close();
    62.                 }
    63.                 catch (Exception e)
    64.                 {
    65.                         // TODO: handle exception
    66.                 }
    67.         }
    68.         public void doPost(HttpServletRequest request, HttpServletResponse response)
    69.                         throws ServletException, IOException
    70.         {
    71.                 doGet(request, response);
    72.         }
    73. }
    复制代码

    addPage .java,添加数据页面]
      
      
    1. package org.lsy.servlet;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import javax.servlet.ServletException;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. public class AddPage extends HttpServlet
    9. {
    10.         public void doGet(HttpServletRequest request, HttpServletResponse response)
    11.                         throws ServletException, IOException
    12.         {
    13.                 //设置请求和响应的编码 ,不然页面上容易出现乱码
    14.                 request.setCharacterEncoding("UTF-8");
    15.                 response.setCharacterEncoding("UTF-8");       
    16.                 response.setContentType("text/html;UTF-8");
    17.                 PrintWriter out = response.getWriter();
    18.                 out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
    19.                 out.println("<HTML>");
    20.                 out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
    21.                 out.println("  <BODY>");
    22.                 //输入成绩的表单,提交至add
    23.                 out.print(" <form action="Add" method="post"> ");
    24.                 out.print("<table align="center"> <tr><td>姓名:<input type="text" name="name" size=20 ></td></tr>");
    25.                 out.print("<tr><td>班级:<input type="text" name="grent" size=20></td></tr>");
    26.                 out.print("<tr><td>成绩:<input type="text" name="result" size=20></td></tr>");       
    27.                 out.print("<tr><td><input type="submit" value="添加"><input type="reset" value="重置"></td></tr></table></form>");
    28.                 out.println("<tr><td><a href=MMC_01>查看列表</a></td></tr>");
    29.                 out.println("  </BODY>");
    30.                 out.println("</HTML>");
    31.                 out.flush();
    32.                 out.close();
    33.         }
    34. }
    复制代码
    add   接收addpage传来的传,更新数据库
      
      
    1. package org.lsy.servlet;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.sql.Connection;
    5. import java.sql.DriverManager;
    6. import java.sql.PreparedStatement;
    7. import java.sql.ResultSet;
    8. import java.sql.Statement;
    9. import javax.servlet.ServletException;
    10. import javax.servlet.http.HttpServlet;
    11. import javax.servlet.http.HttpServletRequest;
    12. import javax.servlet.http.HttpServletResponse;
    13. import com.sun.org.apache.xerces.internal.impl.io.UTF8Reader;
    14. import oracle.jdbc.oracore.TDSPatch;
    15. public class Add extends HttpServlet
    16. {
    17.         // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中
    18.         // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住
    19.         public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY";
    20.         // 连接数据库的用户名
    21.         public static final String DBUSER = "scott";
    22.         // 连接数据库的密码
    23.         public static final String DBPASS = "tiger";
    24.         @Override
    25.         protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    26.                         throws ServletException, IOException
    27.         {
    28.                 // TODO Auto-generated method stub
    29.                 doGet(req, resp);
    30.         }
    31.         public void doGet(HttpServletRequest request, HttpServletResponse response)
    32.                         throws ServletException, IOException
    33.         {
    34.                 //设置请求和响应的编码 ,不然页面上容易出现乱码
    35.                 request.setCharacterEncoding("UTF-8");
    36.                 response.setCharacterEncoding("UTF-8");       
    37.        
    38.                 response.setContentType("text/html;UTF-8");
    39.                 //输出流
    40.                 PrintWriter out = response.getWriter();
    41.                 //数据库连接代码
    42.                 try
    43.                 {
    44.                         Connection conn = null; // 表示数据库的连接的对象
    45.                         Statement pstmt = null; // 表示数据库的更新操作
    46.                         String nameString=request.getParameter("name");
    47.                         String grentString=request.getParameter("grent");
    48.                         String resultString=request.getParameter("result");
    49.                         System.out.print(nameString);
    50.                         String sql="insert into student(id,name,calssGrent,result)
    复制代码
    1.                                         values(perseq.nextval,""+nameString+"",""+grentString+"",""+resultString+"")";
    2.        
    3.                         // 1、使用Class类加载驱动程序
    4.                         Class.forName("oracle.jdbc.driver.OracleDriver");
    5.                         // 2、连接数据库
    6.                         conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
    7.                         pstmt=conn.createStatement();
    8.                         int pd=pstmt.executeUpdate(sql);
    9.                         if (pd!=0)
    10.                         {
    11.                                 out.println("添加成功");
    12.                                 out.println("<br><a href=MMC_01>查看列表</a>");
    13.                         }
    14.                         conn.close();
    15.                        
    16.                 }
    17.                 catch (Exception e)
    18.                 {
    19.                         e.printStackTrace();
    20.                 }
    21.                 out.flush();
    22.                 out.close();
    23.         }
    24. }
    25.        
    复制代码
    web.xml 配置文件  
      
      
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <web-app version="2.5"
    3.         xmlns="http://java.sun.com/xml/ns/javaee"
    4.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    5.         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    6.         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    7.   <display-name></display-name>       
    8.   <welcome-file-list>
    9.     <welcome-file>index.jsp</welcome-file>
    10.   </welcome-file-list>
    11.     <servlet-name>MMC_01</servlet-name>
    12.     <servlet-class>org.lsy.servlet.MMC_01</servlet-class>
    13.   </servlet>
    14.   <servlet>
    15.     <servlet-name>delete</servlet-name>
    16.     <servlet-class>org.lsy.servlet.delete</servlet-class>
    17.   </servlet>
    18.   <servlet>
    19.     <servlet-name>Add</servlet-name>
    20.     <servlet-class>org.lsy.servlet.Add</servlet-class>
    21.   </servlet>
    22.   <servlet>
    23.     <servlet-name>AddPage</servlet-name>
    24.     <servlet-class>org.lsy.servlet.AddPage</servlet-class>
    25.   </servlet>
    26.   <servlet>
    27.     <servlet-name>UpdatePage</servlet-name>
    28.     <servlet-class>org.lsy.servlet.UpdatePage</servlet-class>
    29.   </servlet>
    30.   <servlet>
    31.     <servlet-name>Update</servlet-name>
    32.     <servlet-class>org.lsy.servlet.Update</servlet-class>
    33.   </servlet>
    34.   <servlet-mapping>
    35.     <servlet-name>MMC_01</servlet-name>
    36.     <url-pattern>/MMC_01</url-pattern>
    37.   </servlet-mapping>
    38.   <servlet-mapping>
    39.     <servlet-name>delete</servlet-name>
    40.     <url-pattern>/delete</url-pattern>
    41.   </servlet-mapping>
    42.   <servlet-mapping>
    43.     <servlet-name>Add</servlet-name>
    44.     <url-pattern>/Add</url-pattern>
    45.   </servlet-mapping>
    46.   <servlet-mapping>
    47.     <servlet-name>AddPage</servlet-name>
    48.     <url-pattern>/AddPage</url-pattern>
    49.   </servlet-mapping>
    50.   <servlet-mapping>
    51.     <servlet-name>UpdatePage</servlet-name>
    52.     <url-pattern>/UpdatePage</url-pattern>
    53.   </servlet-mapping>
    54.   <servlet-mapping>
    55.     <servlet-name>Update</servlet-name>
    56.     <url-pattern>/Update</url-pattern>
    57.   </servlet-mapping>
    58. </web-app>
    复制代码


    参考资料 :JavaWEB   整合开发与项目实战 徐明华等;
    本人并非老鸟,一直处于学习中,有什么错误的地方还请指证,上面的代码有很多重复的部分,很多不合理的地方 ,比较数据库连接直接暴露于操作servlet中  ,为了看的更直观 ,我就没有更改……
    从今天开始会为大家再带来更多的实例  ,不喜匆喷


      


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-24 19:22 , Processed in 0.366145 second(s), 38 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表