设计网站国外seo推广的常见目的有
这里写目录标题
- 一、项目结构
- 1、model模型类Student
- 2、mapper 数据访问层接口和映射文件
- 接口类StudentMapper
- 接下来创建名为 StudentMapper.xml 的映射文件
- 3、service 服务层接口和实现类
- 创建名为 StudentService 的 Java 接口
- 创建名为 StudentServiceImpl 的实现类
- 4、controller
- 5、配置 resources
- 5-1、mapper
- 5-2、mysqldb.properties
- 5-3、spring.xml
- 5-4、springmvc.xml
controller 存放控制器(Controller)类,处理请求和返回响应。
mapper 存放数据访问层(Mapper)接口和对应的XML文件。
model 存放模型(Model)类,与数据库表对应。
service 存放服务(Service)接口和实现类
impl
resources
mapper文件 存放Mapper接口对应的XML文件,定义SQL语句和映射关系。
mybatis-config.xml:MyBatis的主配置文件,配置数据库连接等全局设置。
db.properties:数据库连接信息的配置文件。
project-name
├── src
│ ├── main
│ │ ├── java # Java代码目录
│ │ │ ├── com.example.project.controller # 控制器包
│ │ │ ├── com.example.project.mapper # Mapper接口和XML文件包
│ │ │ ├── com.example.project.model # 模型包
│ │ │ ├── com.example.project.service # 业务逻辑包
│ │ │ └── com.example.project.util # 工具类包
│ │ ├── resources # 资源目录
│ │ │ ├── mapper # 存放Mapper对应的XML文件
│ │ │ ├── mybatis-config.xml # MyBatis主配置文件
│ │ │ └── db.properties # 数据库连接配置文件
│ │ └── webapp # Web资源目录
│ │ ├── WEB-INF # Web应用配置目录
│ │ │ ├── web.xml # Web应用配置文件
│ │ │ └── spring.xml # Spring配置文件(如果使用Spring)
│ │ ├── index.jsp # 首页JSP文件
│ │ └── static # 静态资源目录
│ │ ├── css # CSS文件目录
│ │ ├── js # JavaScript文件目录
│ │ └── images # 图片目录
└── pom.xml # Maven项目配置文件
一、项目结构
1、model模型类Student
public class Student {private Long id;private String name;private Integer age;private String gender;// getter 和 setter 方法省略
}
2、mapper 数据访问层接口和映射文件
接口类StudentMapper
// 2. 定义数据访问层接口和映射文件package com.example.mapper;public interface StudentMapper {void insert(Student student); // 插入学生信息void delete(Long id); // 删除学生信息void update(Student student); // 更新学生信息Student selectById(Long id); // 根据ID查询学生信息List<Student> selectAll(); // 查询所有学生信息
}
接下来创建名为 StudentMapper.xml 的映射文件
<?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" >
<!-- StudentMapper.xml -->
<!-- 映射SQL语句和Java对象之间的关系 -->
<mapper namespace="com.example.mapper.StudentMapper"><!-- 定义结果映射 --><resultMap id="StudentResultMap" type="com.example.model.Student"><id column="id" property="id"/><result column="name" property="name"/><result column="age" property="age"/><result column="gender" property="gender"/></resultMap><!-- 插入学生信息 --><insert id="insert" parameterType="com.example.model.Student">INSERT INTO student(name, age, gender) VALUES(#{name}, #{age}, #{gender})</insert><!-- 删除学生信息 --><delete id="delete" parameterType="java.lang.Long">DELETE FROM student WHERE id=#{id}</delete><!-- 更新学生信息 --><update id="update" parameterType="com.example.model.Student">UPDATE student SET name=#{name}, age=#{age}, gender=#{gender} WHERE id=#{id}</update><!-- 根据ID查询学生信息 --><select id="selectById" resultMap="StudentResultMap">SELECT * FROM student WHERE id=#{id}</select><!-- 查询所有学生信息 --><select id="selectAll" resultMap="StudentResultMap">SELECT * FROM student</select></mapper>
3、service 服务层接口和实现类
创建名为 StudentService 的 Java 接口
// 3. 定义服务层接口和实现类package com.example.service;public interface StudentService {void add(Student student); // 添加学生信息void remove(Long id); // 删除学生信息void modify(Student student); // 修改学生信息Student findById(Long id); // 根据ID查询学生信息List<Student> findAll(); // 查询所有学生信息
}
创建名为 StudentServiceImpl 的实现类
@Service
public class StudentServiceImpl implements StudentService {@Autowiredprivate StudentMapper studentMapper;@Overridepublic void add(Student student) {studentMapper.insert(student);}@Overridepublic void remove(Long id) {studentMapper.delete(id);}@Overridepublic void modify(Student student) {studentMapper.update(student);}@Overridepublic Student findById(Long id) {return studentMapper.selectById(id);}@Overridepublic List<Student> findAll() {return studentMapper.selectAll();}
}
4、controller
创建名为 StudentController 的 Java 类
// 4. 编写控制器类@Controller
public class StudentController {@Autowiredprivate StudentService studentService;// 处理显示学生列表的请求@GetMapping("/students")public ModelAndView showStudents() {List<Student> students = studentService.findAll();ModelAndView mav = new ModelAndView("students"); // 返回视图名为"students"mav.addObject("students", students); // 将学生列表添加到模型中return mav;}// 处理显示添加学生页面的请求@GetMapping("/students/new")public ModelAndView showAddStudentForm() {ModelAndView mav = new ModelAndView("add_student_form"); // 返回视图名为"add_student_form"mav.addObject("student", new Student()); // 创建一个空的学生对象,并添加到模型中return mav;}// 处理提交添加学生的请求@PostMapping("/students")public String addStudent(@ModelAttribute("student") Student student) {studentService.add(student);return "redirect:/students"; // 重定向到学生列表页面}// 处理显示修改学生页面的请求@GetMapping("/students/{id}/edit")public ModelAndView showEditStudentForm(@PathVariable Long id) {Student student = studentService.findById(id);ModelAndView mav = new ModelAndView("edit_student_form"); // 返回视图名为"edit_student_form"mav.addObject("student", student); // 将要修改的学生对象添加到模型中return mav;}// 处理提交修改学生的请求@PutMapping("/students/{id}")public String updateStudent(@PathVariable Long id, @ModelAttribute("student") Student student) {student.setId(id);studentService.modify(student);return "redirect:/students"; // 重定向到学生列表页面}// 处理删除学生的请求@DeleteMapping("/students/{id}")public String deleteStudent(@PathVariable Long id) {studentService.remove(id);return "redirect:/students"; // 重定向到学生列表页面}
}
5、配置 resources
在resources进行配置
5-1、mapper
在resources新建一个mapper文件
存放Mapper接口对应的XML文件,定义SQL语句和映射关系。
5-2、mysqldb.properties
数据库连接信息的配置文件。
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/student?useSSL=false
user=root
pwd=123456789
5-3、spring.xml
配置 Spring 容器和 MyBatis 相关内容,如数据源、事务管理等
<!-- 配置数据源 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"><property name="driverClassName" value="${spring.datasource.driver-class-name}"/><property name="jdbcUrl" value="${spring.datasource.url}"/><property name="username" value="${spring.datasource.username}"/><property name="password" value="${spring.datasource.password}"/><property name="minimumIdle" value="${spring.datasource.hikari.minimumIdle}"/><property name="maximumPoolSize" value="${spring.datasource.hikari.maximumPoolSize}"/>
</bean><!-- 配置 SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean><!-- 配置 MapperScannerConfigurer -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.example.mapper"/>
</bean><!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/>
</bean><!-- 开启基于注解的事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
5-4、springmvc.xml
配置 SpringMVC 相关内容,例如视图解析器、处理器映射等
<mvc:annotation-driven/><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/>
</bean><mvc:resources mapping="/static/**" location="/static/"/><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><bean class="com.example.interceptor.TimeInterceptor"></bean></mvc:interceptor>
</mvc:interceptors>