本文已参与「新人创作礼」活动,一起开启掘金创作之路。 核心代码如下,需要完整代码随时私信源码哦!
实验目的
通过所学的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&useUnicode-true&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里测试:
更新测试:
我们再次刷新数据库表,发现数据发生更新:
删除测试:
刷新数据库表发现部分数据已经删除:
本篇博客到此结束啦!