• JDBC练习实例(实现注册登录等增删改查)


    问题描述:流程如下,先登录,登录成功后显示操作界面,根据界面的提示,执行注册,修改,删除,查询的功能

                 1、实现用户的注册功能

                 2、实现用户的登陆功能

                 3、实现用户的修改,但要考虑用户是否真实存在

                 4、实现用户的删除功能。

                 5、实现用户的查询功能,查询全部及根据userName名去查询

    注释+代码:

      1 package jdbcxiti_1;
      2 
      3 import java.sql.Connection;
      4 import java.sql.DriverManager;
      5 import java.sql.SQLException;
      6 import java.sql.Statement;
      7 import java.util.Scanner;
      8 import java.sql.PreparedStatement;
      9 import java.sql.ResultSet;
     10 
     11 public class text_1 {
     12 
     13     public static void main(String[] args) {
     14         // TODO Auto-generated method stub
     15          Scanner sc=new Scanner(System.in);
     16          String name,pass;
     17          person ob=new person();
     18          //注册
     19          System.out.println("输入要注册的用户名");
     20          name=sc.nextLine();
     21          System.out.println("输入要注册的密码");
     22          pass=sc.nextLine();
     23          ob.register(name, pass);
     24          //登录
     25             System.out.println("输入登录用户名");
     26                name=sc.nextLine();
     27             System.out.println("输入登录密码");
     28             pass=sc.nextLine();
     29             ob.login(name, pass);
     30          //修改
     31       System.out.println("输入修改用户名");
     32        String a=sc.nextLine();
     33        System.out.println("输入修改密码");
     34        String b=sc.nextLine();
     35       ob.update(a, b);
     36         //显示
     37       ob.show();
     38 }
     39 }
     40 class person{
     41     String name;
     42     String password;
     43     boolean islogin=false;
     44     
     45     void register(String name,String password)//用户注册
     46     {                  //1、连接
     47          try (Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","数据库用户名","数据库密码");){
     48                        //sql语句
     49              String sql="insert into t_user(username,pwd) values (?,?)";
     50                 //2、声明(PrepareStatement是Statement类的子类,解决了sql注入问题
     51              PreparedStatement ps=con.prepareStatement(sql);
     52              ps.setString(1, name);
     53              ps.setString(2, password);
     54                //3、执行
     55              ps.execute();
     56               //4、关闭
     57              ps.close();
     58             
     59         } catch (SQLException e) {
     60             // TODO Auto-generated catch block
     61             e.printStackTrace();
     62         }
     63    }
     64     void login(String name,String password)//用户登录
     65     {
     66          try (Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","数据库用户名","数据库密码");){
     67              String sql="select * from t_user where username=? and pwd=?";
     68              PreparedStatement ps=con.prepareStatement(sql);
     69              ps.setString(1, name);
     70              ps.setString(2, password);
     71              ps.execute();
     72              ResultSet re=ps.getResultSet();
     73              if(re.next())
     74              {
     75                  this.name=name;
     76                  this.password=password;
     77                  islogin=true;
     78                  System.out.println("登陆成功,欢迎"+name);
     79              }else
     80              {
     81                  System.out.println("用户名或密码错误!");
     82              }
     83              re.close();
     84              ps.close();
     85             
     86         } catch (SQLException e) {
     87             // TODO Auto-generated catch block
     88             e.printStackTrace();
     89         }
     90     }
     91     
     92     void update(String a,String b)//更改用户名或密码
     93     {   if(islogin)
     94      {   
     95         try (Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","数据库用户名","数据库密码");){
     96             String sql="update t_user set username=?,pwd=? where username=? and pwd=?";
     97             PreparedStatement ps=con.prepareStatement(sql);
     98             ps.setString(1, a);
     99             ps.setString(2, b);
    100            ps.setString(3, name);
    101            ps.setString(4, password);
    102             ps.execute();
    103             System.out.println("修改成功");
    104             ps.close();
    105             this.name=a;
    106             this.password=b;
    107         } catch (SQLException e) {
    108             // TODO Auto-generated catch block
    109             e.printStackTrace();
    110         }
    111      }else
    112     {
    113         
    114     }
    115     
    116     }
    117     void show() //用户名及密码列表显示
    118     {
    119         try (Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","数据库用户名","数据库密码");){
    120                Statement start=con.createStatement();
    121                ResultSet re=start.executeQuery("select * from t_user");
    122                String a,b;
    123                while(re.next()){
    124                    a=re.getString(2);
    125                    b=re.getString(3);
    126                    System.out.println("name:"+a+" password:"+b);
    127                }
    128                re.close();
    129                start.close();
    130         } catch (SQLException e) {
    131             // TODO Auto-generated catch block
    132             e.printStackTrace();
    133         }
    134     }
    135     void delete()  //删除用户
    136     {
    137         if(islogin)
    138          {   
    139             try (Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","数据库用户名","数据库密码");){
    140                 String sql="delete from t_user where username=? and pwd=?";
    141                 PreparedStatement ps=con.prepareStatement(sql);
    142                 ps.setString(1, name);
    143                ps.setString(2, password);
    144                 ps.execute();
    145                 System.out.println("删除成功");
    146                 ps.close();
    147                 islogin=false;
    148             } catch (SQLException e) {
    149                 // TODO Auto-generated catch block
    150                 e.printStackTrace();
    151             }
    152          }else
    153         {
    154             
    155         }
    156         
    157     }
    158 }

     

     

  • 相关阅读:
    前端技术学习路线及技术汇总
    周末学习笔记——B/S和C/S的介绍
    前端个人笔记----------vue.js
    js中闭包来实现bind函数的一段代码的分析
    零碎总结
    最近要做的事
    递归中的返回
    近期写js库中遇到的一个判别的问题
    js中函数的写法
    关于异步回调的一段代码及相关总结
  • 原文地址:https://www.cnblogs.com/llsq/p/7709475.html
Copyright © 2020-2023  润新知