spring实现增删改查学生管理系统-工学云打卡助手习讯云黔职通打卡管理系统

测试类:

代码语言:java
复制
package top.thecat.test;

// 工学云打卡助手习讯云黔职通打卡管理系统项目展示:https://liangzhizhangyu.com/#/

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.thecat.pojo.Users;
import top.thecat.service.UsersService;

import java.util.List;

public class ShowStudentTest2 {
public static void main(String[] args) {

    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    UsersService usersService = (UsersService) applicationContext.getBean("usersService");

    List<Users> list = usersService.select2();
    list.forEach(System.out::println);
}

}

代码语言:java
复制
package top.thecat.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.thecat.pojo.Users;
import top.thecat.service.UsersService;

import java.util.List;

public class ShowStudentTest {
public static void main(String[] args) {
// 启动Spring
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UsersService usersService = (UsersService) applicationContext.getBean("usersService");

    List<Users> list = usersService.select();
    list.forEach(System.out::println);
}

}

代码语言:java
复制
package top.thecat.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.thecat.pojo.Users;
import top.thecat.service.UsersService;

public class FindStudentByIdTest {
public static void main(String[] args) {
// 启动Spring
// 工学云打卡助手习讯云黔职通打卡管理系统项目展示:https://liangzhizhangyu.com/#/
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UsersService usersService = (UsersService) applicationContext.getBean("usersService");

    Users student = usersService.findUsersById(100001);
    System.out.println(student.toString());

}

}

代码语言:java
复制
package top.thecat.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.thecat.pojo.Users;
import top.thecat.service.UsersService;

import java.util.ArrayList;
import java.util.List;

public class BachAddStudentTest {
public static void main(String[] args) {
// 启动Spring
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UsersService usersService = (UsersService) applicationContext.getBean("usersService");
// 创建对象并且赋予属性(三个对象添加)
// 工学云打卡助手习讯云黔职通打卡管理系统项目展示:https://liangzhizhangyu.com/#/
Users users = new Users();
users.setStudentno(100001);
users.setSname("白菜");
users.setSsex("男");
users.setSbirthday("2023-12-10");
users.setTc(100);
users.setSpecialityno("080703");
Users users1 = new Users();
users1.setStudentno(100002);
users1.setSname("小白");
users1.setSsex("女");
users1.setSbirthday("2023-12-10");
users1.setTc(100);
users1.setSpecialityno("080703");
Users users2 = new Users();
users2.setStudentno(100003);
users2.setSname("大黄");
users2.setSsex("男");
users2.setSbirthday("2023-12-10");
users2.setTc(100);
users2.setSpecialityno("080703");
// 创建list容器,将对象添加到list
List<Users> list = new ArrayList<>();
list.add(users);
list.add(users1);
list.add(users2);
// 传递list
int[] ints = usersService.addStudents(list);
System.out.println(ints.toString());
}
}

代码语言:java
复制
package top.thecat.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.thecat.pojo.Users;
import top.thecat.service.UsersService;

public class AddStudentTest {
public static void main(String[] args) {
// 启动Spring
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UsersService usersService = (UsersService) applicationContext.getBean("usersService");
// 创建对象并且赋予属性
Users users = new Users();
users.setSname("白菜");
users.setSsex("男");
users.setSbirthday("2023-12-10");
users.setTc(100);
users.setSpecialityno("080703");
int rows = usersService.addStudents(users);
System.out.println(rows);
}
}

业务层

代码语言:java
复制
package top.thecat.service;

import top.thecat.pojo.Users;

import java.util.List;

//业务层接口
public interface UsersService {
int addStudents(Users users);
int[] addStudents(List<Users> users);
Users findUsersById(int studentno);
List<Users> select();
List<Users> select2();
}

代码语言:java
复制
package top.thecat.service.impl;

import top.thecat.dao.UsersDao;
import top.thecat.pojo.Users;
import top.thecat.service.UsersService;

import java.util.List;

// 业务层 接口实现类
public class UsersServiceImpl implements UsersService {
// 依赖注入
private UsersDao usersDao;

public UsersDao getUsersDao() {
    return usersDao;
}

public void setUsersDao(UsersDao usersDao) {
    this.usersDao = usersDao;
}

/**
 * 添加用户
 * @param users
 * @return
 */
@Override
public int addStudents(Users users) {
    return this.usersDao.insertUsers(users);
}

/**
 * 批量添加用户
 * @param users
 * @return
 // 工学云打卡助手习讯云黔职通打卡管理系统项目展示:https://liangzhizhangyu.com/#/
 */
@Override
public int[] addStudents(List&lt;Users&gt; users) {
    return this.usersDao.batchInsertUsers(users);
}

/**
 * 学号查看学生信息
 * @param studentno
 * @return
 */
@Override
public Users findUsersById(int studentno) {


    return this.usersDao.selectUsersById(studentno);
}

@Override
public List&lt;Users&gt; select() {
    return this.usersDao.selectUsersByName();
}

@Override
public List&lt;Users&gt; select2() {
    return this.usersDao.selectUsersByName2();
}

}

实体对象

代码语言:java
复制
package top.thecat.pojo;

public class Users {
// 成员属性
private int studentno;
private String sname;
private String ssex;
private String sbirthday;
private int tc;
private String specialityno;

// 无参构造方法 用于创建对象
public Users(){}

// 生成getset
public int getStudentno() {
return studentno;
}

public void setStudentno(int studentno) {
    this.studentno = studentno;
}

public String getSname() {
    return sname;
}

public void setSname(String sname) {
    this.sname = sname;
}

public String getSsex() {
    return ssex;
}

public void setSsex(String ssex) {
    this.ssex = ssex;
}

public String getSbirthday() {
    return sbirthday;
}

public void setSbirthday(String sbirthday) {
    this.sbirthday = sbirthday;
}

public int getTc() {
    return tc;
}

public void setTc(int tc) {
    this.tc = tc;
}

public String getSpecialityno() {
    return specialityno;
}

public void setSpecialityno(String specialityno) {
    this.specialityno = specialityno;
}

// 重写tostring

@Override
public String toString() {
    return &#34;Users{&#34; +
            &#34;studentno=&#34; + studentno +
            &#34;, sname=&#39;&#34; + sname + &#39;\&#39;&#39; +
            &#34;, ssex=&#39;&#34; + ssex + &#39;\&#39;&#39; +
            &#34;, sbirthday=&#39;&#34; + sbirthday + &#39;\&#39;&#39; +
            &#34;, tc=&#34; + tc +
            &#34;, specialityno=&#39;&#34; + specialityno + &#39;\&#39;&#39; +
            &#39;}&#39;;
}

}

持久层

代码语言:java
复制
package top.thecat.dao;

import top.thecat.pojo.Users;

import java.util.List;

public interface UsersDao {
int insertUsers(Users users);
int[] batchInsertUsers(List<Users> users);
Users selectUsersById(int studentno);
List<Users> selectUsersByName();

List&lt;Users&gt; selectUsersByName2();

}

代码语言:java
复制
package top.thecat.dao.impl;

import org.springframework.jdbc.core.*;
import top.thecat.dao.UsersDao;
import top.thecat.pojo.Users;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

// 接口实现类
public class UsersDaoImpl implements UsersDao {
private JdbcTemplate jdbcTemplate;

public JdbcTemplate getJdbcTemplate() {
    return jdbcTemplate;
}

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


/**
 * 添加用户
 *
 * @param users
 * @return
 */
@Override
public int insertUsers(Users users) {
    String sql = &#34;insert into student values(198005,?,?,?,?,?)&#34;;
    // 数组存放的是未来向sql中绑定的参数
    Object[] params = new Object[]{users.getSname(),users.getSsex(),users.getSbirthday(),users.getTc(),users.getSpecialityno()};
    return this.jdbcTemplate.update(sql, params);
}

/***
 * 批量添加用户
 * @param users
 * @return // 工学云打卡助手习讯云黔职通打卡管理系统项目展示:https://liangzhizhangyu.com/#/
 */
@Override
public int[] batchInsertUsers(List&lt;Users&gt; users) {
    String sql = &#34;insert into student values(?,?,?,?,?,?)&#34;;
    BatchPreparedStatementSetter setter = new BatchPreparedStatementSetter() {
        @Override
        public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
            Users temp = users.get(i);
            preparedStatement.setInt(1, temp.getStudentno());
            preparedStatement.setString(2, temp.getSname());
            preparedStatement.setString(3, temp.getSsex());
            preparedStatement.setString(4, temp.getSbirthday());
            preparedStatement.setInt(5, temp.getTc());
            preparedStatement.setString(6, temp.getSpecialityno());
        }

        @Override
        public int getBatchSize() {
            return users.size();    // 获取现在需要添加数据的长的长度
        }
    };
    return this.jdbcTemplate.batchUpdate(sql, setter);
}

/**
 * 根据学号查询
 * @param studentno
 * @return
 */
@Override
public Users selectUsersById(int studentno) {
    String sql = &#34;select * from student where studentno = ?&#34;;
    Object[] params = new Object[]{studentno};
    // 将查询到的结果集 放 users对象
    Users users = new Users();

    this.jdbcTemplate.query(sql, params, new RowCallbackHandler() {
        @Override
        public void processRow(ResultSet resultSet) throws SQLException {
            users.setStudentno(resultSet.getInt(&#34;studentno&#34;));
            users.setSname(resultSet.getString(&#34;sname&#34;));
            users.setSsex(resultSet.getString(&#34;ssex&#34;));
            users.setSbirthday(resultSet.getString(&#34;sbirthday&#34;));
            users.setTc(resultSet.getInt(&#34;tc&#34;));
            users.setSpecialityno(resultSet.getString(&#34;specialityno&#34;));
        }
    });
    return users;
}

/**
 * 查多条数据
 * @param
 * @return
 */
@Override
public List&lt;Users&gt; selectUsersByName() {
    String sql = &#34;select * from student&#34;;
    Object[] params = new Object[]{};       // 不需要绑定参数 就不需要给任何的参数
    return this.jdbcTemplate.query(sql, params, new RowMapper&lt;Users&gt;() {
        @Override
        public Users mapRow(ResultSet resultSet, int i) throws SQLException {
            Users users = new Users();
            users.setStudentno(resultSet.getInt(&#34;studentno&#34;));
            users.setSname(resultSet.getString(&#34;sname&#34;));
            users.setSsex(resultSet.getString(&#34;ssex&#34;));
            users.setSbirthday(resultSet.getString(&#34;sbirthday&#34;));
            users.setTc(resultSet.getInt(&#34;tc&#34;));
            users.setSpecialityno(resultSet.getString(&#34;specialityno&#34;));
            return users;
        }
    });
}

/***
 * 查询多条用户信息简化版
 * @return
 */
@Override
public List&lt;Users&gt; selectUsersByName2() {
    String sql = &#34;select * from student&#34;;
    Object[] params = new Object[]{};       // 不需要绑定参数 就不需要给任何的参数
    return this.jdbcTemplate.query(sql,params,new BeanPropertyRowMapper&lt;&gt;(Users.class));
}

}