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