📄 jdbc.java
字号:
/*
*连接数据库并验证登录名和密码
*/
import java.sql.*;
public class JDBC {
// String user_name, user_password;//接收登录名和密码
Connection conn = null;//得到与数据库的连接,建立与程序间的联系
Statement stmt = null;//向数据库发送 sql 语句
ResultSet rs = null;//存放返回的查询内容
/**
*这是此类的构造方法,用于调用类中的 connJDBC 方法以连接数据库
*/
public JDBC() {
this.connJDBC();
}
/**
*此方法完成与数据库的连接
*/
private void connJDBC() {
try{//加载数据库驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch(ClassNotFoundException e) {
System.out.println("找不到数据库驱动!");
System.exit(-1);
}
try {//连接目的数据库
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName = test";
String sqlUser = "sa";
String sqlPassword = "123";
conn = DriverManager.getConnection(url, sqlUser, sqlPassword);//
stmt = conn.createStatement();
} catch(SQLException e) {
System.out.println("数据库连接错误!请检查是否开启数据库服务器……");
System.exit(-1);
}
}
/**
*此方法实现对登录名和密码的验证。
*从数据库查询所有登录名和密码,与用户所输入的信息进行比较,
*若验证通过,此方法会返回一个 true;否则返回 false。
*/
public boolean checkPassword(String name, String password) {
String user_name = name;//接收用户输入的登录名
String user_password = password;//接收用户输入的密码
try {
String sql = "select * from zhu";
rs = stmt.executeQuery(sql);//向数据库发送要执行相应操作的SQL语句
} catch(SQLException e) {
System.out.println("无法从数据库查询!");
}
try {
//遍历数据库,得到数据库中的登录名和密码
while(rs.next()) {
if(user_name.equals(rs.getString("USER_NAME"))) {
//验证登录名和密码
if(user_password.equals(rs.getString("USER_PASSWORD"))) {
this.closeJDBCconn(); //关闭数据库连接
return true;//登录名和密码正确
} else {
return false;
}
}
}
} catch(SQLException e) {
System.out.println("读取数据库信息异常!");
}
return false;
}
/**
*此方法将用户修改的新密码更新到数据库,最终完成密码的修改操作。
*参数包括用户的登录名和新的密码:
* 登录名(user_name)用于再数据库查询时准确的找到相应记录信息;
* 新密码(newPassword)则是要更新到数据库的内容。
*/
public void changePassword(String newPassword, String user_name) {
String sql = "UPDATE zhu SET USER_PASSWORD = '"
+ newPassword + "' WHERE USER_NAME = '" + user_name + "'";
try {
stmt.executeUpdate(sql);
this.closeJDBCconn();//更新成功后关闭数据库连接
} catch(SQLException e) {
System.out.println("更新数据时发生错误!");
}
}
/**
*此方法用于验证修改密码时输入的原始密码。
*参数:oldPwd 用户输入的原始密码;
* user_name 登录名,以准确找并返回所查询的相应密码;
*返回值:当输入的密码与数据库里的密码一致时,返回 true;
* 当输入的密码与数据库里的密码不符时,返回 false。
*/
public boolean oldPwdCheck(String oldPwd, String name) {
String oldPWD = oldPwd;//接收用户所输入的原密码
String user_name = name;//
//根据用户名查询相应的密码
String sql = "SElECT * FROM zhu "
+ "WHERE USER_NAME = '" + user_name + "'";
try {
//获得查询的结果
rs = stmt.executeQuery(sql);
while(rs.next()) {//遍历结果集
//判断原密码
if(oldPWD.equals(rs.getString("USER_PASSWORD"))) {
return true;
} else {
return false;
}
}
} catch(SQLException e) {
//e.printStackTrace();
System.out.println("更新数据时发生错误!");
}
return false;
}
/**
*当所有操作完成,不再用到数据库时,此方法完成对数据库的关闭操作;
*但当数据库还被使用时,抛出异常信息。
*/
public void closeJDBCconn() {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch(SQLException e) {
System.out.println("无法关闭与数据库的连接!");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -