Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)

Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)

没错!!!我刚开始写报了一堆错
Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)_第1张图片

先是这个 然后我一搜这个问题 发现了错误在

在这里插入图片描述

因为一个这个例子

在这里插入图片描述

于是 我!把注册 删除等等都用了这个executeQuery()方法

后来我看了几个网站 重点来了 如果你的SQL 语句是诸如update,insert的更新语句,应该用statement的execute()方法,如果用的是statement的executeQuery()就会出现上诉问题

留下了感动的泪水 终于找到原因了 结果 我又又又报错了

好家伙 当天晚上给我崩溃地不想写了 第二天中午继续 我丢 我发现 我的sql语句里面 from变成form了 哭唧唧 总之经过99八十一难 作为一个只学了MySQL一两天的我! 写粗来了 留下了争气的泪水

展示一波我的代码

先出我的Java代码

public class User {
	private String userPwd;
	private String userName;
	public User(String userName, String userPwd) {
		this.userName = userName;
		this.userPwd = userPwd;
	}
	
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	
	public String toString() {
		return "User [userName=" + userName + ", userPwd=" + userPwd + "]";
	}
	
}
public class DatabaseUtil {
	// 数据库连接对象
	private Connection conn = null;
	// 操作句柄[执行SQL语句]
	private Statement stat = null;
	// 结果集对象[获取查询的结果]
	private ResultSet rs = null;

	// 连接相关的字符串对象
	String url = "jdbc:mysql://localhost:3306/homework?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
	String username = "root";
	String password = "a123456*";

	// 通过反射机制讲jdbc的驱动jar包 动态的加载到JVM
	static {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");//// forName() 返回与带有给定字符串名的类或接口相关联的 Class 对象
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	// 修改密码功能
	public void modify(String name, String pwd) {
		String sql = "update users set user_pwd='" + pwd + "' where user_name='" + name + "'";
		try {
			// 建立连接通道
			// DriverManager 管理一组 JDBC 驱动程序的基本服务。java.sql
			// getConnection() 返回: 到 URL 的连接
			conn = DriverManager.getConnection(url, username, password);
			// System.out.println("连接成功...");

			// 获取一个执行sql语句的对象
			// Statement 用于执行静态 SQL 语句并返回它所生成结果的对象。
			// createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库。
			stat = conn.createStatement();

			// 执行sql语句
			// 执行给定 SQL语句,语句可能为 INSERT、UPDATE 或 DELETE 语句,或不返回内容
			stat.execute(sql);
			System.out.println("修改成功");
		} catch (SQLException e) {
			System.out.println("修改失败");
			e.printStackTrace();
		} finally {
			if (null != stat) {
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (null != conn) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

	}

	// 删除用户功能
	public void delete(String name) {
		String sql = "delete from users where user_name='" + name + "'";
		try {
			// 建立连接通道
			// DriverManager 管理一组 JDBC 驱动程序的基本服务。java.sql
			// getConnection() 返回: 到 URL 的连接
			conn = DriverManager.getConnection(url, username, password);
			// System.out.println("连接成功...");

			// 获取一个执行sql语句的对象
			// Statement 用于执行静态 SQL 语句并返回它所生成结果的对象。
			// createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库。
			stat = conn.createStatement();

			// 执行sql语句
			// 执行给定 SQL语句,语句可能为 INSERT、UPDATE 或 DELETE 语句,或不返回内容
			stat.execute(sql);
			System.out.println("删除成功");
		} catch (SQLException e) {
			System.out.println("删除失败");
			e.printStackTrace();
		} finally {
			if (null != stat) {
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (null != conn) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}

	// 注册用户功能
	public void register(String name, String pwd) {
		String sql = "insert into users values('" + name + "','" + pwd + "')";
		try {
			// 建立连接通道
			// DriverManager 管理一组 JDBC 驱动程序的基本服务。java.sql
			// getConnection() 返回: 到 URL 的连接
			conn = DriverManager.getConnection(url, username, password);
			// System.out.println("连接成功...");

			// 获取一个执行sql语句的对象
			// Statement 用于执行静态 SQL 语句并返回它所生成结果的对象。
			// createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库。
			stat = conn.createStatement();

			// 执行sql语句
			// 执行给定 SQL语句,语句可能为 INSERT、UPDATE 或 DELETE 语句,或不返回内容
			stat.execute(sql);
			System.out.println("注册成功");
		} catch (SQLException e) {
			System.out.println("注册失败");
			e.printStackTrace();
		} finally {
			if (null != stat) {
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (null != conn) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

	}

	// 登录
	public boolean isLogin(User user) {
		boolean login_win = false;
		String sql = "select * from users where user_name='" + user.getUserName() + "' and user_pwd='"
				+ user.getUserPwd() + "'";
		try {
			// 建立连接通道
			// DriverManager 管理一组 JDBC 驱动程序的基本服务。java.sql
			// getConnection() 返回: 到 URL 的连接
			conn = DriverManager.getConnection(url, username, password);
			// System.out.println("连接成功...");

			// 获取一个执行sql语句的对象
			// Statement 用于执行静态 SQL 语句并返回它所生成结果的对象。
			// createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库。
			stat = conn.createStatement();

			// 执行sql语句
			// 执行给定 SQL语句,语句可能为 INSERT、UPDATE 或 DELETE 语句,或不返回内容
			rs = stat.executeQuery(sql);

			if (rs.next()) {
				login_win = true;
			}

		} catch (SQLException e) {
			System.out.println("连接失败....");
			e.printStackTrace();
		} finally {
			if (null != rs) {
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (null != stat) {
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (null != conn) {
				try {
					// 关闭连接
					// 立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		return login_win;
	}
}

public class Test {
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println("请选择你的操作:a.登录用户 b.修改密码 c.删除用户 d.注册用户");
		Scanner sc = new Scanner(System.in);
		String function = sc.next().trim();
		switch (function) {

		case "a":
			t.login();
			break;

		case "b":
			t.modify();
			break;

		case "c":
			t.delete();
			break;

		case "d":
			t.register();
			break;
		default:
			System.out.println("输入格式有误,请重新输入");
		}
	}

	// 修改密码
	public void modify() {
		DatabaseUtil dbUtil = new DatabaseUtil();
		Scanner s = new Scanner(System.in);
		System.out.println("请输入用户名:");
		String uname = s.next().trim();
		System.out.println("请输入新密码:");
		String upwd = s.next().trim();
		dbUtil.modify(uname, upwd);
	}

	// 删除
	public void delete() {
		DatabaseUtil dbUtil = new DatabaseUtil();
		System.out.println("请输入要删除的用户名");
		Scanner s = new Scanner(System.in);
		String uname = s.next().trim();
		dbUtil.delete(uname);
	}

	public void login() {
		DatabaseUtil dbUtil = new DatabaseUtil();
		Scanner s = new Scanner(System.in);
		System.out.println("请输入用户名:");
		String uname = s.next().trim();
		System.out.println("请输入密码:");
		String upwd = s.next().trim();
		User user = new User(uname, upwd);

		if (dbUtil.isLogin(user)) {
			System.out.println("登录成功...");
		} else {
			System.out.println("登陆失败...");
		}
	}

	// 注册用户
	public void register() {
		DatabaseUtil dbUtil = new DatabaseUtil();
		Scanner s = new Scanner(System.in);
		System.out.println("请输入用户名:");
		String uname = s.next().trim();
		System.out.println("请输入密码:");
		String upwd = s.next().trim();
		dbUtil.register(uname, upwd);
	}

}

我的MySQL代码

create table homework
(
		user_name varchar(20),
		user_pwd varchar(20)
);

insert into users values('admin','123');
insert into users values('aa','111');
insert into users values('bb','222');


select * from homework;

提几点要注意的:

我的MySQL版本是8.0.21的,所以我的是这样的

Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/homework?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";

对了 jdbc和你的MySQL版本要一样

MySQL5版本的代码和我的有些不一样 在DatabaseUtil这:

Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://127.0.0.1:3306/mysql01?useUnicode=true&"
			+ "characterEncoding=UTF8&allowMultiQueries=true";

然后这个是这地方输入你自己mysql的密码

String username = "root";
	String password = "a123456*";

溜了溜了 我验证了一波 我的是没有错的

Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)_第2张图片

Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)_第3张图片

Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)_第4张图片

Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)_第5张图片
溜了溜了 我验证了一波 我的是没有错的

Java+MySQL小项目(实现登录、注册、删除用户以及修改密码功能)_第6张图片

嘿嘿嘿 开心!!!!!!!

你可能感兴趣的:(MySQL)