完成框架

This commit is contained in:
雷宇 2025-12-03 14:54:47 +08:00
parent 6a95bbf583
commit cc50454c0d
9 changed files with 134 additions and 36 deletions

View File

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="Encoding"> <component name="Encoding">
<file url="file://$APPLICATION_HOME_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$APPLICATION_HOME_DIR$/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component> </component>

84
pom.xml
View File

@ -1,28 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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"> 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> <modelVersion>4.0.0</modelVersion>
<groupId>com.campus</groupId> <groupId>com.campus</groupId>
<artifactId>campus-attendance</artifactId> <artifactId>campus-attendance</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<packaging>war</packaging> <packaging>war</packaging>
<properties> <properties>
<java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>5.3.30</spring.version> <maven.compiler.source>17</maven.compiler.source>
<mybatis.version>3.5.13</mybatis.version> <maven.compiler.target>17</maven.compiler.target>
<mysql.version>8.0.33</mysql.version> <spring.version>5.3.23</spring.version>
<mybatis.version>3.5.11</mybatis.version>
<mybatis.spring.version>2.0.7</mybatis.spring.version> <!-- 修正后的行 -->
</properties> </properties>
<dependencies> <dependencies>
<!-- Spring MVC --> <!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId> <artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version> <version>${spring.version}</version>
</dependency> </dependency>
<!-- Spring JDBC & Transaction -->
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId> <artifactId>spring-jdbc</artifactId>
@ -37,27 +46,20 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mybatis</groupId> <groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId> <artifactId>mybatis-spring</artifactId>
<version>3.5.2</version> <version>${mybatis.spring.version}</version>
</dependency> </dependency>
<!-- MySQL & Druid 数据库连接池 --> <!-- 数据库 -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version> <version>8.0.33</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>druid</artifactId> <artifactId>druid</artifactId>
<version>1.2.16</version> <version>1.2.15</version>
</dependency>
<!-- JSON 处理 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency> </dependency>
<!-- Servlet API --> <!-- Servlet API -->
@ -67,18 +69,54 @@
<version>4.0.1</version> <version>4.0.1</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- JSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
<finalName>campus-attendance</finalName> <finalName>campus-attendance</finalName>
<plugins> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version> <version>3.10.1</version>
<configuration> <configuration>
<source>${java.version}</source> <source>1.8</source>
<target>${java.version}</target> <target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>17</source>
<target>17</target>
<!-- 新增 JDK 17 编译参数 -->
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>

View File

@ -0,0 +1,18 @@
package com.campus.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class PageController {
@GetMapping("/")
public String index() {
return "index";
}
@GetMapping("/students")
public String studentList() {
return "student_list";
}
}

View File

@ -1,10 +0,0 @@
<!-- StudentMapper.xml -->
<mapper namespace="com.campus.mapper.StudentMapper">
<select id="selectAll" resultType="com.campus.entity.Student">
SELECT * FROM student
</select>
<insert id="insert" parameterType="com.campus.entity.Student">
INSERT INTO student(name, student_id, class, major)
VALUES(#{name}, #{studentId}, #{class_}, #{major})
</insert>
</mapper>

View File

@ -19,17 +19,24 @@
<property name="url" value="${jdbc.url}"/> <property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/> <property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/> <property name="password" value="${jdbc.password}"/>
<!-- 添加连接池基本配置 -->
<property name="initialSize" value="5"/>
<property name="minIdle" value="5"/>
<property name="maxActive" value="20"/>
</bean> </bean>
<!-- MyBatis 会话工厂 --> <!-- MyBatis 会话工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/> <property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="configLocation" value="classpath:mybatis-config.xml"/>
<!-- 添加映射文件配置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean> </bean>
<!-- Mapper 扫描 --> <!-- Mapper 扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.campus.mapper"/> <property name="basePackage" value="com.campus.mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean> </bean>
<!-- 事务管理 --> <!-- 事务管理 -->

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.campus.mapper.StudentMapper">
<select id="selectAll" resultType="com.campus.entity.Student">
SELECT * FROM student
</select>
<!-- 修改 insert 和 update 语句中的 class 字段 -->
<insert id="insert" parameterType="com.campus.entity.Student">
INSERT INTO student(name, student_id, `class`, major) <!-- 新增反引号 -->
VALUES(#{name}, #{studentId}, #{class_}, #{major})
</insert>
<update id="update" parameterType="com.campus.entity.Student">
UPDATE student
SET name = #{name}, student_id = #{studentId}, `class` = #{class_}, major = #{major} <!-- 新增反引号 -->
WHERE id = #{id}
</update>
<delete id="delete" parameterType="java.lang.Integer">
DELETE FROM student WHERE id = #{id}
</delete>
</mapper>

View File

@ -13,8 +13,6 @@
<!-- 扫描 Controller --> <!-- 扫描 Controller -->
<context:component-scan base-package="com.campus.controller"/> <context:component-scan base-package="com.campus.controller"/>
<!-- 开启 MVC 注解支持 -->
<mvc:annotation-driven/>
<!-- 视图解析器 --> <!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
@ -24,4 +22,9 @@
<!-- 静态资源处理 --> <!-- 静态资源处理 -->
<mvc:default-servlet-handler/> <mvc:default-servlet-handler/>
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
</beans> </beans>

View File

@ -0,0 +1,17 @@
<%--
Created by IntelliJ IDEA.
User: LY
Date: 2025/12/3
Time: 14:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首页</title>
</head>
<body>
<h1>学生考勤系统</h1>
<a href="/students">学生列表</a>
</body>
</html>

View File

@ -6,6 +6,7 @@
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
</head> </head>
<body> <body>
<h2>学生列表</h2>
<table border="1"> <table border="1">
<tr> <tr>
<th>姓名</th> <th>姓名</th>
@ -23,7 +24,7 @@
html += `<tr> html += `<tr>
<td>${s.name}</td> <td>${s.name}</td>
<td>${s.studentId}</td> <td>${s.studentId}</td>
<td>${s.class}</td> <td>${s.class_}</td> <!-- 注意这里是class_ -->
<td>${s.major}</td> <td>${s.major}</td>
</tr>`; </tr>`;
}); });