⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbc.java

📁 简单的登录系统
💻 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 + -