模拟用户登录功能

来源:互联网 发布:甲骨文 ibm做啥软件 编辑:程序博客网 时间:2024/05/21 21:43

1.抽取jdbc数据连接类:

DBUtils.java工具类代码如下:

 public class DBUtils {
    private static String driverClass;
    private static String url;
    private static String username;
    private static String password;
    static{
        ResourceBundle rb=ResourceBundle.getBundle("dbinfo");
        driverClass=rb.getString("driverClass");
        url=rb.getString("url");
        username=rb.getString("username");
        password=rb.getString("password");
        System.out.println(driverClass+"======="+url+"=============="+username+"-------------"+password);
        try {
            Class.forName(driverClass);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //创建连接
    public static Connection getConnection() throws SQLException{
        return DriverManager.getConnection(url,username,password);
    }
    //关闭资源
    public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            rs=null;
        }
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt=null;
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn=null;
        }
    }
}

2.编写dbinfo.properties文件如下:

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/shop
username=root
password=123

3.编写userbean

package com.qq1009108034.entity;

public class User {
    private int id;
    private String username;
    private String password;
    private String email;
    private String birthday;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", password="
                + password + ", email=" + email + ", birthday=" + birthday
                + "]";
    }

}


4.编写数据库操作方法findUser()代码如下:

public class DoLogin {
    public User findUser(String name,String pwd){
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        User u = null;
        try {
            conn = DBUtils.getConnection();//得到连接对象Connection
            String sql ="SELECT * FROM users WHERE USERNAME=? AND PASSWORD=?";
            stmt = conn.prepareStatement(sql);//得到执行sql语句的对象Statement
            //给?赋值
            stmt.setString(1, name);
            stmt.setString(2, pwd);
            
            rs = stmt.executeQuery();//执行sql语句
            if(rs.next()){
                u = new User();
                u.setId(rs.getInt(1));
                u.setUsername(rs.getString(2));
                u.setPassword(rs.getString(3));
                u.setEmail(rs.getString(4));
                
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            DBUtils.closeAll(rs, stmt, conn);;
        }
        
        return u;
    }
}
简单的登录功能实现,其中解决了sql注入问题。



原创粉丝点击