使用Java连接数据库,执行查询验证用户名和密码是否匹配,若匹配则登录成功,否则提示错误信息。
需求分析
实现一个Java程序,通过数据库连接和操作,实现用户登录功能,具体需求如下:
1、用户输入用户名和密码;
2、程序查询数据库中是否存在该用户;
3、如果存在,验证密码是否正确;
4、如果正确,显示登录成功,否则显示登录失败。
技术选型
1、数据库:MySQL
2、JDBC驱动:MySQL Connector/J
3、Java开发工具:IntelliJ IDEA
数据库设计
1、创建一个名为user
的表,包含以下字段:
id:主键,自增长
username:用户名,唯一,不允许为空
password:密码,不允许为空
Java代码实现
1、导入相关依赖包:
<!pom.xml > <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysqlconnectorjava</artifactId> <version>8.0.26</version> </dependency> </dependencies>
2、编写数据库连接工具类DBUtil
:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; private static final String USER = "root"; private static final String PASSWORD = "your_password"; public static Connection getConnection() { Connection connection = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); connection = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return connection; } }
3、编写用户登录功能类Login
:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class Login { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入用户名:"); String username = scanner.nextLine(); System.out.println("请输入密码:"); String password = scanner.nextLine(); login(username, password); } public static void login(String username, String password) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { connection = DBUtil.getConnection(); String sql = "SELECT * FROM user WHERE username = ?"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, username); resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { String dbPassword = resultSet.getString("password"); if (dbPassword != null && dbPassword.equals(password)) { System.out.println("登录成功!"); } else { System.out.println("密码错误!"); } } else { System.out.println("用户名不存在!"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (resultSet != null) { resultSet.close(); } if (preparedStatement != null) { preparedStatement.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }
测试与部署
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/642554.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复