前言
本篇文章为大家分析如何用JDBC连接Mysql数据库,从而来实现简易的登陆注册功能
代码
1、效果演示
让我们先来看看代码运行结果:
登陆成功效果
登录失败效果
注册效果
2、代码解析
登录要求
1、实现Java和Mysql的连接
2、数据库内存在用户信息
3、通过指定用户名和密码来判断用户是否存在
4、将结果输出在控制台
注册要求
在符合登陆要求的基础上还要符合以下要求
1、判断用户名是否已在数据库中存在
2、在数据库中新增注册用户
3、主要代码
以下内容为代码的各部分内容
数据库
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=jdbc:mysql://localhost:3306/test1?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;
public class jdbc_test {
public static void main(String[] args) throws ClassNotFoundException, SQLException { //输入psvm 或者 main后回车
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
//调用方法
// boolean flag = new jdbc_test().login(username,password);
// if(flag){
// System.out.print("登陆成功!");
// }else {
// System.out.print("登陆失败!");
// }
boolean flag = new jdbc_test().register(username, password);
while(!flag) {
System.out.print("注册失败,请重新输入用户名:");
username = sc.next();
System.out.print("请输入你的密码:");
password = sc.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;
}
}
ps:本代码所演示的是注册功能,注释部分为登录功能
以上就是代码的所有内容
知识总结
1、掌握运用JDBCUtils类,该类用于创建JDBC连接数据库
2、JDBC.properties文件,主要用于存放数据库路径,以及数据库内的数据信息;
3、学会调用数据库,用来判断指定数据是否存在与数据库中
4、学会在Java中新增数据库内容