一、介绍
我创建了3个类和一个.properties配置文件
分别是 JDBCUtils类、JDBCDemo类、JDBCTest类
配置文件是 JDBC.properties
二、代码块
这是JDBCUtils工具类
package zzp.domain.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
/**
* className:JDBCUtils
* Package: zzp.domain.utils
* Description:JDBC工具类
*
* @Author: ZengZhiPENG
* @Create: 2023/6/4 - 16:01
*/
public class JDBCUtils {
private static String url;
private static String user;
private static String password;
private static String driver;
/*
* 使用静态代码块,来读取文件,只需要读取一次
* */
static {
//读取资源文件,获取值
try {
//1、创建Properties集合类
Properties pro = new Properties();
// 读取外界的配置文件
InputStream asStream = JDBCUtils.class.getResourceAsStream("/JDBC.properties");
//解析流 通过Properties对象
pro.load(asStream); // 此步骤执行后,配置文件的内容 就读取到了pro中
//3、获取数据,赋值
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//4、注册驱动
Class.forName(driver);
} catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}
}
/*
* 获取连接
* */
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
/*
* 释放资源方法
* */
public static void close(Statement statement, Connection connection){
if(statement != null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(ResultSet resultSet, Statement statement, Connection connection){
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement != null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
JDBCDemo类
package zzp.domain.jdbc;
import zzp.domain.utils.JDBCUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* className:JDBCDemo9
* Package: zzp.domain.jdbc
* Description:
* 1、通过键盘录入用户名
* 2、判断用户是否登陆成功
*
* @Author: ZengZhiPENG
* @Create: 2023/6/4 - 15:54
*/
public class JDBCDemo {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
/*
* 登录方法
* */
public boolean login(String username,String password){
if(username == null || password == null){
return false;
}
// 连接数据库判断是否成功
try {
//1、获取连接
connection = JDBCUtils.getConnection();
//2、定义sql
String sql = "select * from user where username = '"+username+"' and password = '"+password+"' ";
//出入用户名和密码
//String sql = "insert into user values('"+username+"','"+password+"')";
//3、获取执行sql的对象
statement = connection.createStatement();
//4、执行查询
resultSet = statement.executeQuery(sql);
//5、判断
return resultSet.next();// 如有下一行,则放回true
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(resultSet,statement,connection);
}
return false;
}
}
JDBCTest类
package zzp.domain.jdbc;
import java.util.Scanner;
/**
* className:JDBCTest
* Package: zzp.domain.jdbc
* Description:
*
* @Author:
* @Create: 2023/6/5 - 11:07
*/
public class JDBCTest {
public static void main(String[] args) {
// 1、键盘录入,接受用户名与密码
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
// 2、调用方法
JDBCDemo jdbcDemo9 = new JDBCDemo();
boolean flag = jdbcDemo9.login(username,password);
//3、判断结果,输出不同语句
if(flag){
// 登录成功
System.out.println("登录成功!");
//System.out.println("插入用户和密码成功!");
}else{
System.out.println("登录失败!用户名或者密码错误!");
//System.out.println("插入数据失败!");
}
}
}
配置文件JDBC.properties
url=jdbc:mysql://localhost:3306/zzp04
user=root
password=mysql
driver=com.mysql.jdbc.Driver