Spring数据库编程---实验项目

271 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 ​核心代码如下,需要完整代码随时私信源码哦!

实验目的

通过所学的Spring数据库编程知识,实现学生管理系统的登录及增删改查的功能。要求学生在控制台输入用户名密码,如果用户账号密码正确则显示用户个人信息,如果登录失败则显示登录失败。登录成功后,可以进行增删改查的功能。

项目的主要架构

编辑

实验步骤

1.新建一个新项目ldu.university.spring父项目,不用勾选模板

2.再新建一个子模块项目spring-01-login-register

3.在java文件夹下建一个包cn.edu.ldu

4.在刚刚新建的包下,再新建几个包:dao,entity,service,controller:

StudentDaoImpl实现类:



public class StudentDaoImpl implements StudentDao {


    //声明JdbcTemplate属性,省略了setter方法
    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }



    public int save(Student student){

        String sql="insert into student(username,password,course) value(?,?,?)";
        Object[] obj=new Object[]{
               student.getUsername(),
                student.getPassword(),
                student.getCourse()
        };
        int num=this.jdbcTemplate.update(sql,obj);
        return num;
    }

    public int update(Student student) {

        String sql = "update student set username=?,password=?,course=? where id=?";

        Object[] params=new Object[]{
                student.getUsername(),
                student.getPassword(),
                student.getCourse(),
                student.getId()
        };
        int num=this.jdbcTemplate.update(sql,params);
        return num;
    }


    public int delete(int id) {

        String sql="delete from student where id=?";
        int num=this.jdbcTemplate.update(sql,id);
        return num;

    }

    public Student findById(int id){

        String sql="select * from student where id=?";
        RowMapper<Student> rowMapper=new BeanPropertyRowMapper<Student>(Student.class);
        Student student=this.jdbcTemplate.queryForObject(sql,rowMapper,id);
        return student;
    }

    public List<Student> findAll() {

        String sql="select *from student";
        RowMapper<Student> rowMapper=new BeanPropertyRowMapper<Student>(Student.class);
        return this.jdbcTemplate.query(sql,rowMapper);
    }


}

2)service包下的两个文件

IStudentService接口:


public interface IStudentService {

    public int update(Student student);
    public int delete(Integer studentId);
    public int save(Student student);

    List<Student> findAll();
    Student findStudentById(int i);
}

4)controller包下的一个文件:

StudentController实现类:


public class StudentController {

    public static void main(String[] args) {
        Boolean aBoolean = false;
        String course = null;
        Scanner sa = new Scanner(System.in);
        System.out.println("欢迎来到学生管理系统");
        System.out.println("请输入用户:");
        String username = sa.nextLine();
        System.out.println("请输入" + username + "的密码:");
        String password = sa.nextLine();
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        StudentDao studentDao = (StudentDao) context.getBean("StudentDao");
        List<Student> students = studentDao.findAll();

        for (Student student : students) {
            if (verification(student.getUsername(), student.getPassword(), username, password)) {
                aBoolean = true;
                course = student.getCourse();
                break;
            }
            ;
        }
        if (aBoolean) {
            System.out.println("用户登入成功!\n" + username + "是" + course + "班的");
        } else {
            System.out.println("用户登入失败!");
        }
    }

    public static Boolean verification(String Username, String Password, String username, String password) {
        Boolean bBoolean = null;
        if (Username.equals(username) && Password.equals(password)) {
            bBoolean = true;
        } else {
            bBoolean = false;
        }
        return bBoolean;
    }

}

5.在resources里新建一个applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--    配置数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url"
                  value="jdbc:mysql://localhost:3306/spring?serverTimezone-UTC&amp;useUnicode-true&amp;characterEncoding=utf8"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
    </bean>
    <!--    配置JDBC模板-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--    定义id为StudentDao的bean-->
    <bean id="studentDao" class="cn.edu.ldu.dao.StudentDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>

    <bean id="studentService" class="cn.edu.ldu.service.StudentServiceImpl">
        <property name="studentDao" ref="studentDao"/>
    </bean>

</beans>

6.在下面的java文件下新建一个测试类StudentServiceTest



public class StudentServiceTest {

    public void updateTest(){
        Student student=new Student();
        student.setId(2);
        student.setUsername("张三");
        student.setPassword("1234");
        student.setCourse("高数");

        int num=studentService.update(student);
        if (num>0){
            System.out.println("成功修改了"+num+"条数据");
        }
        else{
            System.out.println("修改操作执行失败");
        }

    }

    @Test
    public void deleteTest(){

        int num=studentService.delete(1);
        if (num>0){
            System.out.println("成功删除了"+num+"条数据");
        }
        else {
            System.out.println("删除操作执行失败");
        }
    }

    @Test
    public void findByIdTest(){

        Student student=studentService.findStudentById(1);
        System.out.println(student);
    }

    // AccountServiceImpl类的条件查询方法

    public Student findById(Integer studentId){
        StudentDaoImpl studentDao=new StudentDaoImpl();
        return studentDao.findById(studentId);

    }

    @Test
    public void findAllTest(){

        List<Student> studentList=studentService.findAll();
        for (Student student:studentList){
            System.out.println(student);
        }
    }

    // AccountServiceImpl类的查询方法

    public List<Student> findAll(){

        StudentDaoImpl studentDao=new StudentDaoImpl();
        return studentDao.findAll();

    }


}

7.需要导入的 配置文件pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>ldu.university.spring</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>spring-01-login-register</module>
    </modules>


    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.18</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.3.18</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.18</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.18</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.18</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.3.18</version>
        </dependency>

    </dependencies>

</project>

8.自己在数据库spring里新建一个表student

 9.下面开始测试:

1)要求学生在控制台输入用户名密码,如果用户账号密码正确则显示用户个人信息,如果登录失败则显示登录失败。

在StudentController.java进行测试:

登录成功测试:

 登录失败测试:

 2登录成功后,可以进行增删改查的功能。

在StudentServiceTest里测试:

更新测试:

 我们再次刷新数据库表,发现数据发生更新:

 删除测试:

刷新数据库表发现部分数据已经删除:

 本篇博客到此结束啦!