在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

JavaWeb应用实例:用servlet实现oracle 基本增删改查

2017-3-7 12:51| 发布者: zhangjf| 查看: 1240| 评论: 0

摘要: 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 ,我将与大家分享一下我学Java WEB写的一些小实例 ,我个人是不太喜欢书本上的晦涩的概念的,所以 ...

很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 ,我将与大家分享一下我学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. response.setContentType("text/html;UTF-8");
  29. //输出流
  30. PrintWriter out = response.getWriter();
  31. //数据库连接代码
  32. try
  33. {
  34. Connection conn = null; // 表示数据库的连接的对象
  35. Statement stmt = null; // 表示数据库的更新操作
  36. String sql="insert into student(id,name,calssGrent,result) values('67','刘12宇','33','98')";
  37. System.out.println(sql) ;
  38. // 1、使用Class类加载驱动程序
  39. Class.forName("oracle.jdbc.driver.OracleDriver");
  40. // 2、连接数据库
  41. conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
  42. // 3、Statement接口需要通过Connection接口进行实例化操作
  43. stmt = conn.createStatement();
  44. //用 rs获取查询结果 ,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,-
  45. ResultSet rs=stmt.executeQuery("select *from student");
  46. out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
  47. out.println("<HTML>");
  48. out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  49. out.println(" <BODY>");
  50. //输出表头部分
  51. out.print("<table align='center' border='1'><tr><td>姓名" +
  52. "</td><td>班级</td><td>成绩</td><td>修改</td><td>删除</td></tr>");
  53. while(rs.next())
  54. {
  55. //获取数据库中的ID
  56. String id=rs.getString("id");
  57. //输出一列元素
  58. out.print("<tr><td>"+rs.getString("name")
  59. +"</td><td>"+rs.getString("calssGrent")+"" +
  60. "</td><td>"+rs.getString("result")+"</td>" +
  61. "<td><a href='UpdatePage?id="+id+"'>修改</a></td>" +
  62. "<td><a href='delete?id="+id+"'> 删除 </a></td></tr>");
  63. }
  64. out.println("<td><a href=AddPage>添加数据</a></td>");
  65. out.println(" </BODY>");
  66. out.println("</HTML>");
  67. conn.close();
  68. }
  69. catch (Exception e)
  70. {
  71. e.printStackTrace();
  72. }
  73. out.flush();
  74. out.close();
  75. }
  76. }
复制代码

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. request.setCharacterEncoding("UTF-8");
  26. response.setCharacterEncoding("UTF-8");
  27. response.setContentType("text/html;UTF-8");
  28. PrintWriter out = response.getWriter();
  29. Connection conn = null; // 表示数据库的连接的对象
  30. Statement stmt = null; // 表示数据库的更新操作
  31. //获取表单提交的参数
  32. String id=request.getParameter("id");
  33. System.out.println(id);
  34. String name=request.getParameter("name");
  35. String grent=request.getParameter("grent");
  36. String result=request.getParameter("result");
  37. //更新SQL
  38. String sqlString="update student set name='"+name+"' ," +
  39. "calssGrent='"+grent+"',result='"+result+"' where id='"+id+"' ";
  40. // 1、使用Class类加载驱动程序
  41. Class.forName("oracle.jdbc.driver.OracleDriver");
  42. // 2、连接数据库
  43. conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
  44. // 3、Statement接口需要通过Connection接口进行实例化操作
  45. stmt = conn.createStatement();
  46. int pd=stmt.executeUpdate(sqlString);
  47. if(pd!=0)
  48. {
  49. out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
  50. out.println("<HTML>");
  51. out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  52. out.println(" <BODY>");
  53. out.print(" 更新成功<br><a href=MMC_01>查看列表</a> ");
  54. out.println(" </BODY>");
  55. out.println("</HTML>");
  56. }
  57. out.flush();
  58. out.close();
  59. stmt.close();
  60. conn.close();
  61. }
  62. catch (Exception e)
  63. {
  64. // TODO: handle exception
  65. }
  66. }
  67. public void doPost(HttpServletRequest request, HttpServletResponse response)
  68. throws ServletException, IOException
  69. {
  70. doGet(request, response);
  71. }
  72. }
复制代码

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. response.setContentType("text/html;UTF-8");
  38. //输出流
  39. PrintWriter out = response.getWriter();
  40. //数据库连接代码
  41. try
  42. {
  43. Connection conn = null; // 表示数据库的连接的对象
  44. Statement pstmt = null; // 表示数据库的更新操作
  45. String nameString=request.getParameter("name");
  46. String grentString=request.getParameter("grent");
  47. String resultString=request.getParameter("result");
  48. System.out.print(nameString);
  49. String sql="insert into student(id,name,calssGrent,result)
复制代码
  1. values(perseq.nextval,'"+nameString+"','"+grentString+"','"+resultString+"')";
  2. // 1、使用Class类加载驱动程序
  3. Class.forName("oracle.jdbc.driver.OracleDriver");
  4. // 2、连接数据库
  5. conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
  6. pstmt=conn.createStatement();
  7. int pd=pstmt.executeUpdate(sql);
  8. if (pd!=0)
  9. {
  10. out.println("添加成功");
  11. out.println("<br><a href=MMC_01>查看列表</a>");
  12. }
  13. conn.close();
  14. }
  15. catch (Exception e)
  16. {
  17. e.printStackTrace();
  18. }
  19. out.flush();
  20. out.close();
  21. }
  22. }
复制代码

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>
复制代码

本人并非老鸟,一直处于学习中,有什么错误的地方还请指证,上面的代码有很多重复的部分,很多不合理的地方 ,比较数据库连接直接暴露于操作servlet中 ,为了看的更直观 ,我就没有更改……

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-5-4 02:43

Copyright 2015-2025 djqfx

返回顶部