JavaEE——声明式事务管理案例:实现用户登录

作者 : admin 本文共2674个字,预计阅读时间需要7分钟 发布时间: 2024-06-17 共1人阅读

一、案例要求

        本案例要求在控制台输入用户名密码,如果用户账号密码正确则显示用户所属班级,如果登录失败则显示登录失败。实现用户登录项目运行成功后控制台效果如下所示。

欢迎来到学生管理系统
请输入用户名:
zhangsan
请输入zhangsan的密码:
123456
用户登录成功!
zhangsan是Java班的

二、思路分析

        根据学生管理系统及其登录要求,可以分析案例的实现步骤如下。

(1)为了存储学生信息,需要创建一个数据库

(2)为了程序连接数据库并完成对数据的增删改查操作,需要在XML配置文件中配置数据库连接和事务等信息。

(3)在Dao层实现查询用户信息的方法。

(4)在Controller层处理业务逻辑,如判断用户输入的用户名与密码是否正确 。

1、创建数据库

        在MySQL中的spring数据库中创建一个名为student的表。

字段名类型长度是否主键说明
idint11学生编号
usernamevarchar255学生姓名
passwordvarchar255学生密码
coursevarchar255学生班级

2、编写实体类

        创建Student类,在该类中定义id、username、password和course属性,以及属性对应的getter/setter方法。

public class Student {
    //学生ID
    private Integer id;
    //学生姓名
    private String username;
    //学生密码
    private String password;
    //学生班级
    private String course;

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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 getCourse() {
        return course;
    }

    public void setCourse(String course) {
        this.course = course;
    }
}

3、编写配置文件

        创建配置文件applicationContext-student.xml,在该文件中配置id为dataSource的数据源Bean和id为jdbcTemplate的JDBC模板Bean,并将数据源注入到JDBC模板中。



    
    
        
        
        
        
        
        
        
        
    
    
    
        
        
    
    
    
        
        
    
    
    
        
    
    
    

4、编写Dao层方法

        创建StudentDao接口,在StudentDao接口中声明查询所有用户信息的方法。

public interface StudentDao {
    //查询所有账户
    public List findAllStudent();

5、实现Dao层方法

        创建StudentDaoImpl实现类,在StudentDaoImpl类中实现StudentDao接口中的findAllStudent()方法。

public class StudentDaoImpl implements StudentDao {
    // 声明JdbcTemplate属性,省略了setter方法
    private JdbcTemplate jdbcTemplate;
    public List findAllStudent() {
        String sql = "select * from student";
        RowMapper rowMapper =
                new BeanPropertyRowMapper(Student.class);
        // 执行静态的SQL查询,并通过RowMapper返回结果
        return this.jdbcTemplate.query(sql, rowMapper);
    }}

6、编写Controller层

        创建StudentController类,用于实现用户登录操作。

public class StudentController {
    public static void main(String[] args) {
        System.out.println("欢迎来到学生管理系统");
        System.out.println("请输入用户名:");
        Scanner sca = new Scanner(System.in);
        String name = sca.nextLine();
        // 加载配置文件
        ApplicationContext applicationContext = new
                ClassPathXmlApplicationContext("applicationContext-student.xml");
        // 获取AccountDao实例
        StudentDao studentDao =
                (StudentDao) applicationContext.getBean("studentDao");
        // 执行findAllAccount()方法,获取Account对象的集合
        List student = studentDao.findAllStudent();
        // 循环输出集合中的对象
        for (Student stu : student) {
            if (name.equals(stu.getUsername())) {
                System.out.println("请输入" + stu.getUsername() + "的密码:");
                String mima = sca.nextLine();
                if (mima.equals(stu.getPassword())) {
                    System.out.println("用户登录成功!");
                    System.out.println(stu.getUsername() + "是" + stu.getCourse() + "班的");
                    return;
                }
            } else {
                System.out.println("账号密码错误!");
                return;
            }
        }
    }
}

7、 查看运行结果

        在IDEA中启动StudentController类,在控制台按照提示输入账号密码进行登录。

欢迎来到学生管理系统
请输入用户名:
zhangsan
请输入zhangsan的密码:
123456
用户登录成功!
zhangsan是Java班的

本站无任何商业行为
个人在线分享 » JavaEE——声明式事务管理案例:实现用户登录
E-->