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 }

 

 

 

 

转载于:https://www.cnblogs.com/llsq/p/7709475.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值