1, 注册页面

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>用户注册</title>
  6. </head>
  7. <body>
  8. <form id="uform" action="saveuser" method="post">
  9. 用户代码:<input id="userid" type="text" name="userid" width=30 />
  10. <br><br>
  11. 用户名称:<input id="username" type="text" name="username" width=30 />
  12. <br><br>
  13. 登录密码:<input id="password" type="password" name="password" width=30 />
  14. <br><br>
  15. 确认密码:<input id="queren" type="password" name="queren" width=30 />
  16. <br><br>
  17. <input type="submit" value="注册" /><br><a href="findoracle">显示所有用户</a>
  18. </form>
  19. </body>
  20. </html>

2, 保存用户数据

  1. package com.hanqi;
  2.  
  3. import java.io.IOException;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.*;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11.  
  12. public class saveuser extends HttpServlet {
  13. private static final long serialVersionUID = 1L;
  14.  
  15. public saveuser() {
  16. super();
  17. }
  18.  
  19. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  20. request.setCharacterEncoding("UTF-8"); //设置字符集
  21. response.setContentType("text/html; charset=UTF-8");
  22. response.setCharacterEncoding("UTF-8");
  23. String strUserid = request.getParameter("userid"); //获取传递过来的参数
  24. String strUsername = request.getParameter("username");
  25. String strPW = request.getParameter("password");
  26. if(strUserid == null||strUserid.trim().length()==0) { //判断获取的参数是否为空
  27. response.getWriter().append("用户ID不能为空");
  28. }
  29. else if(strUsername == null||strUsername.trim().length()==0) {
  30. response.getWriter().append("用户名称不能为空");
  31. }
  32. else {
  33. try {
  34. Class.forName("oracle.jdbc.driver.OracleDriver"); //注册Oracle
  35. String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //设置连接oracle数据库
  36. Connection conn = DriverManager.getConnection(url, "test1204", "1234"); //登录oracle, 连接oracle用户
  37. if(conn!=null) {
  38. //操作数据库
  39. String sql = "insert into T_Test (user_id, user_name, password)"+"values(?,?,?)"; //设置oracle语句的命令
  40. //执行语句的类
  41. PreparedStatement ps = conn.prepareStatement(sql); //创建类ps, 并下达执行命令
  42. //strUsername = new String(strUsername.getBytes("iso-8859-1"),"utf-8");
  43. //转码的问题, 当这个页面接收过来的参数是以post方法传来的, 完全可以只用一个setCharacterEncoding("UTF-8");就能进行转码
  44. ps.setString(1, strUserid); //设置写入oracle表中的值
  45. ps.setString(2, strUsername);
  46. ps.setString(3, strPW);
  47. int row = ps.executeUpdate(); //执行语句的命令并返回数据行数
  48. if(row>0) {
  49. response.getWriter().append("保存数据成功, 保存"+row+"条数据成功!");
  50. }
  51. else {
  52. response.getWriter().append("保存数据失败");
  53. }
  54. ps.close();
  55. conn.close();
  56. }
  57. else
  58. {
  59. response.getWriter().append("连接数据库失败");
  60. }
  61. } catch (Exception e) {
  62. e.printStackTrace();
  63. response.getWriter().append(e.getMessage());
  64. }
  65. }
  66. response.getWriter().append("<br><a href='zhuce.html'>返回注册</a>");
  67. response.getWriter().append("<br><a href='findoracle'>显示所有用户</a>");
  68. }
  69.  
  70. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  71. doGet(request, response);
  72. }
  73. }

3, 工具类

  1. package com.hanqi;
  2. //关于用户的实体类
  3. public class User {
  4. //用户代码
  5. private String UserID;
  6. public String getUserID()
  7. {
  8. return UserID;
  9. }
  10. public void setUserID(String UID)
  11. {
  12. this.UserID = UID;
  13. }
  14.  
  15. //用户名称
  16. private String UserName;
  17. public String getUserName()
  18. {
  19. return UserName;
  20. }
  21. public void setUserName(String userName)
  22. {
  23. UserName = userName;
  24. }
  25.  
  26. //密码
  27. private String PassWord;
  28. public String getPassWord()
  29. {
  30. return PassWord;
  31. }
  32. public void setPassWord(String passWord)
  33. {
  34. PassWord = passWord;
  35. }
  36. }
  37.  
  38. //定义连接数据库的方体
  39. package com.hanqi;
  40.  
  41. import java.sql.*;
  42.  
  43. public class DBHelper {
  44. public static Connection getconnection() throws Exception {
  45. Class.forName("oracle.jdbc.driver.OracleDriver");
  46. String url = "jdbc:oracle:thin:@localhost:1521:orcl";
  47. Connection conn = DriverManager.getConnection(url, "test1204", "1234");
  48. return conn;
  49. }
  50.  
  51. }

4, 修改数据

  1. package oraclejdbc;
  2.  
  3. import java.io.IOException;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7.  
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12.  
  13. import com.hanqi.DBHelper;
  14.  
  15. public class Edit extends HttpServlet {
  16. private static final long serialVersionUID = 1L;
  17.  
  18. public Edit() {
  19. super();
  20. }
  21.  
  22. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  23. request.setCharacterEncoding("UTF-8"); //设置字符集
  24. response.setContentType("text/html; charset=UTF-8");
  25. String strUserid = request.getParameter("userid"); //获取传递过来的参数
  26. String strUsername = request.getParameter("username");
  27. String strPW = request.getParameter("password");
  28. if(strUserid == null||strUserid.trim().length()==0) { //判断获取的参数是否为空
  29. response.getWriter().append("用户ID不能为空");
  30. }
  31. else if(strUsername == null||strUsername.trim().length()==0) {
  32. response.getWriter().append("用户名称不能为空");
  33. }
  34. else {
  35. try {
  36. Class.forName("oracle.jdbc.driver.OracleDriver"); //注册Oracle
  37. String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //设置连接oracle数据库
  38. Connection conn = DBHelper.getconnection();
  39. if(conn!=null) { //to_date ( ‘2007-12-20 18:31:34’ , ‘YYYY-MM-DD HH24:MI:SS’ )
  40. //操作数据库
  41. String sql = "update T_Test set user_name=?, password=?"+"where user_id=?"; //设置oracle语句的命令
  42. //执行语句的类
  43. PreparedStatement ps = conn.prepareStatement(sql); //创建类ps, 并下达执行命令
  44. ps.setString(1, strUsername); //设置写入oracle表中的值
  45. ps.setString(2, strPW);
  46. ps.setString(3, strUserid);
  47. int row = ps.executeUpdate(); //执行语句的命令并返回数据行数
  48. ps.close();
  49. conn.close();
  50. response.sendRedirect("findoracle");
  51. }
  52. else
  53. {
  54. response.getWriter().append("连接数据库失败");
  55. }
  56. } catch (Exception e) {
  57. response.getWriter().append(e.getMessage());
  58. }
  59. }
  60. }
  61.  
  62. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  63. doGet(request, response);
  64. }
  65. }

5, 删除数据(包括提交事务, 添加日志)

  1. package oraclejdbc;
  2.  
  3. import java.io.IOException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import com.hanqi.DBHelper;
  9.  
  10. import java.sql.*;
  11.  
  12. public class oracledelete extends HttpServlet {
  13. private static final long serialVersionUID = 1L;
  14.  
  15. public oracledelete() {
  16. super();
  17. }
  18.  
  19. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  20. request.setCharacterEncoding("UTF-8"); //设置字符集
  21. response.setContentType("text/html; charset=UTF-8");
  22. response.setCharacterEncoding("UTF-8");
  23. String userid = request.getParameter("userid");
  24.  
  25. try {
  26. Connection conn = DBHelper.getconnection();
  27. if(userid!=null&&userid.trim().length()>0) {
  28. conn.setAutoCommit(false);
  29. //可以直接组合语句, 但是这样有一定的风险, 当后面的参数值比较多的时候容易遗漏
  30. //String sql = "delete from t_test where user_id = '"+userid+"'";
  31. String sql = "delete from t_test where user_id = ?";
  32. PreparedStatement pst = conn.prepareStatement(sql);
  33. pst.setString(1, userid.trim());
  34. int row = pst.executeUpdate();
  35. //保存日志
  36. try {
  37. //构建sql语句
  38. sql = "insert into t_log (log_id, log, create_time) values(sq_log_id.nextval,?,?)";
  39. pst = conn.prepareStatement(sql);
  40. pst.setString(1, "删除了"+userid.trim()+"的记录");
  41. //实例化一个时间
  42. java.util.Date dt = new java.util.Date();
  43. //java.sql.Date d = new java.sql.Date(dt.getTime()); //只是生成一个日期的值
  44. java.sql.Time d = new java.sql.Time(dt.getTime()); //日期和时间都会生成
  45. pst.setTime(2, d);
  46. pst.executeUpdate(); //执行构建的语句
  47. conn.commit();
  48. }
  49. catch(Exception ex) {
  50. conn.rollback();
  51. //response.getWriter().append("写入日志时出错");
  52. }
  53. finally { //使用finally关键字, 不管出错与否, 都要释放资源
  54. try {
  55. pst.close();
  56. conn.close();
  57. }
  58. catch(Exception ex1) {
  59. conn.close();
  60. }
  61. }
  62. }
  63. else {
  64. response.getWriter().append("userid不能为空");
  65. }
  66. }
  67. catch (Exception e) {
  68. response.getWriter().append(e.getMessage()+"异常信息");
  69. }
  70. response.sendRedirect("findoracle");
  71. }
  72.  
  73. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  74. // TODO Auto-generated method stub
  75. doGet(request, response);
  76. }
  77. }

6, 批处理数据

  1. package oraclejdbc;
  2.  
  3. import java.io.IOException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8.  
  9. import com.hanqi.DBHelper;
  10.  
  11. import java.sql.*;
  12. import java.util.*;
  13.  
  14. public class BatchAdd extends HttpServlet {
  15. private static final long serialVersionUID = 1L;
  16.  
  17. public BatchAdd() {
  18. super();
  19. }
  20.  
  21. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  22. request.setCharacterEncoding("UTF-8"); //设置字符集
  23. response.setContentType("text/html; charset=UTF-8");
  24. response.setCharacterEncoding("UTF-8");
  25. PreparedStatement pps = null;
  26. Connection conn = null;
  27. try {
  28. conn = DBHelper.getconnection();
  29. if(conn!=null) {
  30. try {
  31. //批量插入
  32. String sql = "insert into t_test(user_id, user_name, password) values(?,?,?)";
  33. pps = conn.prepareStatement(sql);
  34. Random rd = new Random();
  35. //用for循环控制插入的个数
  36. for(int i = 0; i<10; i++) {
  37. int m = rd.nextInt(1000);
  38. pps.setString(1, ""+m);
  39. pps.setString(2, "abc"+i);
  40. pps.setString(3, ""+(++i+119));
  41. pps.addBatch();
  42. }
  43. int[] n = pps.executeBatch(); //返回值是一个int[]型数组, 如果插入成功的话, 那数组的每个值都是 -2
  44. response.getWriter().append("已添加"+n.length+"条数据");
  45. } catch(Exception e2) {
  46. response.getWriter().append(e2.getMessage());
  47. }
  48. finally {
  49. pps.close();
  50. conn.close();
  51. }
  52. } //这个括号是if 的
  53. } catch(Exception e) {
  54. response.getWriter().append(e.getMessage());
  55. }
  56. }
  57.  
  58. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  59. doGet(request, response);
  60. }
  61. }

7, 显示数据

  1. package com.hanqi;
  2.  
  3. import java.io.IOException;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.*;
  7. import java.util.*;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.ServletRequest;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13.  
  14. public class findoracle extends HttpServlet {
  15. private static final long serialVersionUID = 1L;
  16.  
  17. public findoracle() {
  18. super();
  19. }
  20.  
  21. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  22. request.setCharacterEncoding("UTF-8"); //设置字符集
  23. response.setContentType("text/html; charset=UTF-8");
  24. try {
  25. //这三行可以封装一个类
  26. Class.forName("oracle.jdbc.driver.OracleDriver"); //注册Oracle驱动
  27. String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //设置连接oracle数据库
  28. Connection conn = DriverManager.getConnection(url, "test1204", "1234"); //登录oracle, 连接oracle用户
  29. if(conn!=null) {
  30. //操作数据库
  31. String sql = "select * from t_test"; //设置oracle语句的命令
  32. //strUsername = new String(strUsername.getBytes("iso-8859-1"),"utf-8"); //转码
  33. Statement stm = conn.createStatement();
  34. //执行查询语句, 返回值为ResultSet结果集
  35. ResultSet rs = stm.executeQuery(sql);
  36. ArrayList<User> array = new ArrayList<User>();
  37. //User u = new User();
  38. if(rs!=null) {
  39. //遍历查询结果
  40. while(rs.next()) { //next();判断rs是否有下一个值, 返回的是一个bealoon型数据
  41. User u = new User();
  42. //取出结果集中的value, 也可以写成"u.setUserID(rs.getString(int));"
  43. u.setUserID(rs.getString("user_id"));
  44. u.setUserName(rs.getString("user_name"));
  45. u.setPassWord(rs.getString("password"));
  46. //将取出的结果添加到一个集合中去, 这里集合的内容会经常用到, Result型结果集取出后通常都放在集合里面
  47. array.add(u);
  48. //response.getWriter().append(u.getUserID()+u.getUserName()+u.getPassWord()+"<br>");
  49. }
  50. request.setAttribute("userlist", array);
  51. conn.close();
  52. stm.close();
  53. rs.close();
  54. }
  55. else {
  56. response.getWriter().append("无查询结果");
  57. }
  58. }
  59. else {
  60. response.getWriter().append("连接数据库失败");
  61. }
  62. } catch (Exception e) {
  63. response.getWriter().append(e.getMessage());
  64. }
  65. //跳转页面
  66. request.getRequestDispatcher("show.jsp").forward(request, response);
  67. //response.sendRedirect("show");这个语句不起作用的
  68. }
  69.  
  70. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  71. doGet(request, response);
  72. }
  73.  
  74. }

8, 显示页面

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ page import="java.util.*" %>
  4. <%@ page import="com.hanqi.*" %>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  9. <title>显示查询结果</title>
  10. </head>
  11. <body>
  12. <%
  13. Object obj = request.getAttribute("userlist");
  14. if(obj!=null) {
  15. ArrayList<User> array = (ArrayList<User>)obj;
  16. //foreach遍历,输出结果的时候写一个out.print("");就可以了,为了看的直观写了好几个out.print("");
  17. for(User u:array) {
  18. out.print(u.getUserID()+"/ "+u.getUserName()+"/ "+u.getPassWord()+"<br>");
  19. out.print("\t <a href='oracledelete?userid="+u.getUserID()+"'>删除</a><br>");
  20. out.print("<form action='Edit' method='post'>");
  21. //设置隐藏域的意义在于, 修改用户名和密码的时候必须先将用户代码取出作为唯一的值, 修改完再将用户代码传回表中
  22. out.print("<input type='hidden' name='userid' value='"+u.getUserID()+"'/>"); //隐藏域的应用
  23. out.print("用户名称:<input type='text' name='username' value='"+u.getUserName()+"' /><br>");
  24. out.print("用户密码:<input type='text' name='password' value='"+u.getPassWord()+"' /><br>");
  25. out.print("<input type='submit' value='修改' />");
  26. out.print("</form>");
  27. out.print("<br>"+"———————————————————"+"<br>");
  28. }
  29. }
  30. else {
  31. out.print("无数据返回");
  32. }
  33. %>
  34. <br>
  35. <a href="zhuce.html">注册用户信息</a><br><br><a href="BatchAdd">批量添加用户</a>
  36. </body>
  37. </html>

实例: Java代码操作oracle数据库(JDBC+sevrlet+jsp+html)的更多相关文章

  1. 使用java代码编辑oracle数据库

    package com.hanqi; import java.io.IOException; import java.sql.Connection; import java.sql.DriverMan ...

  2. java代码连接oracle数据库的方法

    oracle连接数据库的方式和mysql是大同小异的,主要的困难点在于oracle的数据库驱动包和依赖只有官方提供,如果你是用maven添加依赖的话,需要自己从官网下载jar包安装到你本地的maven ...

  3. 【JDBC】java PreparedStatement操作oracle数据库

    ************************************************************************ ****原文:blog.csdn.net/clark_ ...

  4. 不使用spring的情况下用java原生代码操作mongodb数据库的两种方式

    由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常.   主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...

  5. Java java jdbc thin远程连接并操作Oracle数据库

    JAVA jdbc thin远程连接并操作Oracle数据库 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 编码工具:Eclipse 编码平台:W ...

  6. loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试

    调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...

  7. Java操作Oracle数据库以及调用存储过程

    操作Oracle数据库 publicclass DBConnection {     //jdbc:oracle:thin:@localhost:1521:orcl     publicstaticf ...

  8. Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...

  9. PHP操作Oracle数据库

    原文出处 (这是来自“百度文库”中的文章写得很不错) PHP操作Oracle数据库(OCI数据抽象层)OCI(Oracle 8 Call-Interface)是PHP中内置的数据库抽象层函数.下面针对 ...

随机推荐

  1. vue.js 源代码学习笔记 ----- text-parse.js

    /* @flow */ import { cached } from 'shared/util' import { parseFilters } from './filter-parser' //找到 ...

  2. react中父组件调用子组件的方法

    1.直接使用ref进行获取 import React, {Component} from 'react'; export default class Parent extends Component ...

  3. [转载]MySQL索引原理与慢查询优化

    好文,以防丢失,故转之,另对排版做简单优化.原文地址:http://ourmysql.com/archives/1401 索引目的 索引的目的在于提高查询效率,可以类比字典,如果要查"mys ...

  4. Ubuntu用户管理

    本文主要介绍Ubuntu的用户管理,包括建立和删除用户,用户授权等 ================== 创建用户并授权================== sudo adduser xxx 会在ho ...

  5. 算法初探:Tensorflow及PAI平台的使用

    前言 Tensorflow这个词由来已久,但是对它的理解一直就停留在“听过”的层面.之前做过一个无线图片适配问题智能识别的项目,基于Tensorflow实现了GoogLeNet - Inception ...

  6. 转-JAVA webservice之CXF 范例--http://cxshun.iteye.com/blog/1275408

    JAVA webservice之CXF 博客分类: j2ee相关 昨天我们一起学习了一下xfire,今天我们来看一下CXF,为什么学完那个接着学这个呢.因为CXF是在xfire的基础上实现 的,所以我 ...

  7. Python中定时任务框架APScheduler

    前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APSc ...

  8. ajax请求返回Json字符串运用highcharts数据图表展现数据

    [1].[图片] Json字符串和highcharts数据图表展现.jpg 跳至 [1] code=26754#44745" rel="nofollow"> [2] ...

  9. eclipse adt logcat过滤用法

    点击Save Filters的加号,by Log Tag如下就可以只看2dx程序出来的debug信息了

  10. sql update set使用case when语句

    1. update TD_XXXsetdjyzmdm=null,djyzmsj=null,DLCS= case when DLCS is null then 1 else DLCS+1 end whe ...