需求
1. 创建用户表2. 字段为 编号(id) 主键,姓名(uname),年龄(age),密码(password)功能实现1.实现登陆的功能(避免sql注入)a) 根据姓名和密码登陆i. 登陆成功1. 显示欢迎“xxx”登陆成功2. 显示用户表中所有的数据3. 显示变更和删除的操作4. 根据用户的选择能够实现根据id删除欢迎登陆xx系统请输入用户名请输入密码-----如果登陆成功-----“xxx”登陆成功展示所有的用户信息1 张三 18 1111112 里斯 19 222222需要删除请按 1请输入该用户的id删除成功 | 失败-----登陆失败-----提示用户 用户名错误 还是 密码错误
dba.properties
mysqlDriver=com.mysql.cj.jdbc.DrivermysqlUrl=jdbc:mysql://localhost:3306/bjsxt05?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/ShanghaimysqlUsername=rootmysqlPwd=root
class JdbcUser
package com.bjsxt.pojoA;public class JdbcUser {private int id;private String uname;private int age;private String password;public JdbcUser() {}public JdbcUser(int id, String uname, int age, String password) {this.id = id;this.uname = uname;this.age = age;this.password = password;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "id=" + id +", uname='" + uname + '\'' +", age=" + age +", password='" + password + '\'';}}
class Login
package com.bjsxt.jdbcA;
import com.bjsxt.pojoA.JdbcUser;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Properties;
import java.util.Scanner;
public class Login {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("欢迎登录xx系统");
System.out.println("请输入用户名:");
String na = sc.next();
System.out.println("请输入密码:");
String pw = sc.next();
InputStream ras = Login.class.getClassLoader().getResourceAsStream("dba.properties");
Properties properties = new Properties();
properties.load(ras);
String driver = (String) properties.get("mysqlDriver");
String url = (String) properties.get("mysqlUrl");
String user = (String) properties.get("mysqlUsername");
String pwd = (String) properties.get("mysqlPwd");
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
//1.加载驱动
Class.forName(driver);
//2.连接mysql数据库
connection = DriverManager.getConnection(url, user, pwd);
String sql = "select * from jdbc_user where uname=? and password=?";
//3.创建sql发送器,并将sql语句发送到mysql中
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,na);
preparedStatement.setString(2,pw);
//4.执行sql后的结果集
ResultSet set = preparedStatement.executeQuery();
JdbcUser jdbcUser=null;
LinkedList<JdbcUser> list = new LinkedList<>();//存放用户数据
//展示所有的用户信息
while (set.next()){
int id=set.getInt(1);
String name=set.getString(2);
int age=set.getInt(3);
String password=set.getString(4);
jdbcUser=new JdbcUser(id,name,age,password);
}
//jdbc有值 用户名和密码正确 没有值:用户名或者密码有误
if (jdbcUser==null){
String sql1 = "select * from jdbc_user where uname=?";
PreparedStatement pss = connection.prepareStatement(sql1);
pss.setString(1,na);
ResultSet set2 = pss.executeQuery();
int sum=0;
while (set2.next()){
sum++;
}
if (sum==0){
System.out.println("用户名输入错误");
}else{
System.out.println("密码输入错误");
}
}else{
System.out.println(jdbcUser.getUname()+"登录成功");
//登录成功后显示所有的用户信息
System.out.println("即将展示所有的用户信息");
PreparedStatement ps1 = connection.prepareStatement("select * from jdbc_user");
ResultSet set1 = ps1.executeQuery();
while (set1.next()){
int id=set1.getInt(1);
String name=set1.getString(2);
int age=set1.getInt(3);
String password=set1.getString(4);
jdbcUser=new JdbcUser(id,name,age,password);
list.add(jdbcUser);
}
//用迭代器将集合中的用户数据输出
Iterator<JdbcUser> iterator = list.iterator();
while (iterator.hasNext()){
JdbcUser next = iterator.next();
System.out.println(next);
}
//删除功能
System.out.println("需要删除请按 1");
int i = sc.nextInt();
if (i==1){
System.out.println("请输入该用户的id");
int i1 = sc.nextInt();
PreparedStatement ps2 = connection.prepareStatement("delete from jdbc_user where id=?");
ps2.setInt(1,i1);
int i2 = ps2.executeUpdate();
if (i2>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
