• JDBC-oracle(登陆)


    题目:

    第一步:创建用户表,并插入数据(插入后记得commit

    create table users
    (
    name varchar2(16),
    password varchar2(16)
    );
    insert into users values('lisi','123');
    insert into users values('zhangsan','123');

    第二步:编写登陆界面(index.jsp)

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
      <head>    
        <title>index.jsp</title>
      </head>  
      <body>
        <form action="dologin.jsp">
            用户名:<input name="user" type="text"/><br>
            密码:<input name="password" type="text" /><br>
            <input type="submit" value="lojin" />
        </form>
      </body>
    </html>

    第三步:编写工具类(题目要求将COnnection的获取封装,我这里还封装了关闭连接的部分)(Util.jsva)

    关闭注意事项:

    1,关闭先判断(如果不为空在判断,防止未打开就关闭的空指针异常)

    2,try{}catch(){}捕获异常

    3,关闭后及时垃圾回收,xx=null;

    package songyan.Util;
    
    import java.sql.*;
    
    public class Util {
    
        static Connection conn;
        static String sql="select * from users";
     
     
         static String driver= "oracle.jdbc.driver.OracleDriver";
        static String user= "scott";
        static String url="jdbc:oracle:thin:@localhost:1521:inspur";
        static String pass= "tiger";
        
        public static Connection getConnection() throws Exception
        {
            //加载驱动
             Class.forName(driver);
             //获取连接
             return DriverManager.getConnection(url,user,pass);
        }
        
        public static void closeAll(ResultSet rs,PreparedStatement sta,Connection conn) {
            //关闭连接
             if(rs!=null)
             {
                 try{rs.close();}catch(Exception e){}
                 rs=null;
             }
             if(sta!=null)
             {
                 try{rs.close();}catch(Exception e){}
                 rs=null;
             }
             if(conn!=null)
             {
                 try{rs.close();}catch(Exception e){}
                 rs=null;
             }
        }
    }

    第四步:编写处理页面(dologin.jsp)

    注意:

    1,导包(在开始就导入oracle驱动包,放在webinf中的lib目录下)

    2,引入包,songyan.Util.*:自己写的工具

      java.sql.*:java提供的操作数据库的包

    <%@ page language="java"  pageEncoding="UTF-8"%>
    <%@ page import="java.util.*,songyan.Util.*,java.sql.*" %>
    <html>
      <head>    
        <title>dolojin.jsp</title>
      </head>  
      <body>
        <%!
         Connection conn;
         PreparedStatement sta;
         ResultSet rs;
         String sql="select * from users";
     
          String driver= "oracle.jdbc.driver.OracleDriver";
         String user= "scott";
         String url="jdbc:oracle:thin:@localhost:1521:inspur";
         String pass= "tiger";
         String name="";
         String password="";
         %>
         <%
          try {
          name=request.getParameter("user");
          password=request.getParameter("password");
             conn=Util.getConnection();
             //获取sta对象
             sql="select * from users where name=? and password=?";
             sta=conn.prepareStatement(sql);
             sta.setString(1, name);
             sta.setString(2, password);
             
             //执行sql获取结果
             rs=sta.executeQuery();
             //处理结果
             if(rs.next())
             {
                 request.getRequestDispatcher("success.jsp").forward(request, response);
             }else{
                 response.sendRedirect("index.jsp");
             }
            
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
         finally{
             Util.closeAll(rs, sta, conn);
         }
          %>
      </body>
    </html>

    第五步:编写成功登陆界面

    <%@ page language="java"  pageEncoding="UTF-8"%>
    <html>
      <head>    
        <title>success</title>
      </head>  
      <body>
    <%
    out.print("登录成功");
     %>
      </body>
    </html>

    1.在整个过程中,修改.java文件或者修改WEB-INF中的内容都需要重启tomcat(也可以设置自动重启)

    2.在这个题目中涉及到两个username,password,一个是你登陆oracle的用户和密码,一个是自己写的登陆窗口的用户名和密码,在命名上一定要注意区分

    不足之处欢迎补充*&*

  • 相关阅读:
    vite启用host代理,自动无限刷新问题
    机器人语音交互
    让or使用索引
    leetcode 77. Combinations 组合(中等)
    leetcode 257. Binary Tree Paths 二叉树的所有路径(简单)
    leetcode 934. Shortest Bridge 最短的桥(中等)
    为什么 SQL 语句使用了索引,但却还是慢查询?
    leetcode 47. Permutations II 全排列 II(中等)
    leetcode 79. Word Search 单词搜索
    leetcode 126. Word Ladder II 单词接龙 II(困难)
  • 原文地址:https://www.cnblogs.com/excellencesy/p/8587244.html
Copyright © 2020-2023  润新知