(JDBC学习)Java连接Mysql数据库,实现初始登录注册
作者想说的话
本篇作品为自己为了学业所做作业,若有问题,可私聊讨论。如果有帮助到你,一起加油。
代码要求描述
登录要求:
1、要求实现Java连接Mysql数据库
2、通过查询指定用户名、密码来确认用户是否存在
3、输出给Java后台
4、判断是否登录成功
5、界面输出
注册要求:
1、要求实现Java连接Mysql数据库
2、通过查询指定用户名来确认用户是否存在
3、如若指定用户存在,则拒绝注册
4、通过SQL语句向数据库新建一条数据
5、判断是否注册成功
6、界面输出
涉及类的主要作用描述
1、JDBCUtils类,主要用于创建JDBC连接数据库,内含连接数据库方法(getCounection),关闭连接方法(close);
2、JDBC.properties文件,主要用于存放数据库路径,管理员用户名、密码以及Driver框架包;
3、jdbc_test类,主要用处就是测试程序,内包含login登录方法,register注册方法;
4、数据库内容:其中id列自动递增
#JDBCUtils类
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
private static String url;
private static String user;
private static String psssword;
private static String driver;
//读取文件,只需读取一次即可拿到这些值,使用静态代码块
static {
try {
//1.创建Properties集合类
Properties pro=new Properties();
//获取src路径下文件————>ClassLoader 类加载器
ClassLoader classLoader=JDBCUtils.class.getClassLoader();
URL res=classLoader.getResource("jdbc.properties");
String path = res.getPath();
System.out.println(path);
//2.加载文件
pro.load(new FileReader(path));
//3.获取数据,赋值
url = pro.getProperty("url");
user = pro.getProperty("user");
psssword = pro.getProperty("password");
driver = pro.getProperty("driver");
//4.注册驱动
Class.forName(driver);
}catch (IOException e){
e.printStackTrace();
}catch (ClassNotFoundException e1){
e1.printStackTrace();
}
}
//连接
public static Connection getCounection() throws SQLException{
return DriverManager.getConnection(url,user,psssword);
}
//释放资源
public static void close(ResultSet rs,Statement stmt,Connection conn) throws SQLException{ //ResultSet 结果集
if(rs != null){
rs.close();
stmt.close();
}
if (stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
}
public static void close(Statement stmt,Connection conn) throws SQLException{
if (stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
}
}
#JDBC.properties文件
#url:数据库路径,其中abc为我所调用的数据库名,大家可自行修改
url = jdbc:mysql://localhost:3306/abc?useSSL=false
user = root
password = 123456
driver = com.mysql.jdbc.Driver
#jdbc_test类
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
/**
* @Title: jdbc_test
* @Project UI_Project
* @Date 2020/6/28 9:24
*/
public class jdbc_test {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的用户名:");
String username = scanner.next();
System.out.print("请输入你的密码:");
String password = scanner.next();
boolean flag = new jdbc_test().register(username, password);
while(!flag) {
System.out.print("注册失败,请重新输入用户名:");
username = scanner.next();
System.out.print("请输入你的密码:");
password = scanner.next();
flag = new jdbc_test().register(username, password);
}
System.out.println("注册成功");
}
//登录方法
public boolean login(String username,String password) throws SQLException {
if (username == null || password == null) {
return false;
}
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = JDBCUtils.getCounection();
//定义sql
String sql = "select * from user where name='" + username + "' and password ='" + password + "' ";
//获取执行sql对象
stmt = conn.createStatement();
//执行查询
rs = stmt.executeQuery(sql);
return rs.next();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(rs, stmt, conn);
}
return false;
}
//注册方法
public boolean register(String username,String password) throws SQLException {
if (username == null || password == null) {
return false;
}
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = JDBCUtils.getCounection();
//定义sql
String sql = "select * from user where name='" + username + "'";
//获取执行sql对象
stmt = conn.createStatement();
//执行查询
rs = stmt.executeQuery(sql);
if (rs.next()) return false; //因为查询到此账户,所以拒绝注册
//定义sql
sql = "INSERT into user(name,password) value ('" + username + "','" + password + "')";
//执行查询
int count = stmt.executeUpdate(sql);
return count != 0;
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(rs, stmt, conn);
}
return false;
}
}
运行结果
本运行结果为使用了注册方法,其中第一次注册失败是因为数据库中已经存在用户名为zzev的用户,所以拒绝注册。
版权声明:本文为Zzve_Takui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。