java中多对多的增删改查_4.SSM整合_多表_多对多的增删改查

多对多关系,课程和学生

接口

public interface CourseMapper {

/**

* 获取所有课程

* @return

* @throws Exception

*/

public List getAll() throws Exception;

}

映射文件

select t1.c_id id, t1.c_name name, t1.c_credit credit

from t_course t1

实体类

public class Course {

private Integer id;

private String name;

private Double credit;

private List students;

//省略getter和setter

接口

public interface StudentMapper {

/**

* 查询所有学生的选课情况

* @return

* @throws Exception

*/

public List getStuCou() throws Exception;

/**

* 删除指定id用户的某门课(根据课程id)的选课情况

* @param StudentCourseLink

* @throws Exception

* 入参为多个参数时,可以使用Map,model,或者@param

*/

public void delStuCouById(@Param("s_id") String s_id, @Param("c_id") String c_id) throws Exception;

/**

* 添加选课

* @param sc

* @throws Exception

*/

public void addCou(Stu_Cou sc) throws Exception;

/**

* 根据ID获取指定的学生以及选课情况

* @param id

* @return

* @throws Exception

*/

public Student getStuById(String id) throws Exception;

}

映射文件

select t1.*, t2.*

from t_student t1,

t_course t2,

t_stu_cou t3

where t1.s_id = t3.sc_s_id

and t2.c_id = t3.sc_c_id

select t1.c_id id, t1.c_name name, t1.c_credit credit

from t_course t1

left join t_stu_cou t2

on t1.c_id = t2.sc_c_id

where t2.sc_s_id = #{id}

select *

from t_student

where s_id = #{id}

delete from t_stu_cou

where sc_s_id = #{s_id}

and sc_c_id = #{c_id}

insert into t_stu_cou(sc_s_id, sc_c_id, createtime) value(#{stu.id}, #{cou.id}, #{createtime})

实体类

public class Student {

private Integer id;

private String name;

private String sex;

private Integer age;

private List courses;

//省略getter和setter

中间表

实体类

public class Stu_Cou {

private Student stu;

private Course cou;

private Date createtime;

//省略getter和setter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现SSM框架下的多表增删改查操作,我们首先需要进行以下几个步骤: 1. 创建数据库表 首先,我们需要在数据创建学生表(student)、教室表(classroom)和教师表(teacher)。这些表应该包含相应的字段,例如学生表可以包含学生ID、姓名、年龄等字段,教室表可以包含教室ID、名称、容量等字段,教师表可以包含教师ID、姓名、职称等字段。 2. 创建实体类 在Java代码,我们需要创建与数据库表对应的实体类。分别创建名为Student、Classroom和Teacher的实体类,并在类定义相应的属性和方法。 3. 创建Mapper接口 在SSM框架,Mapper接口用于定义与数据库交互的方法。我们需要创建名为StudentMapper、ClassroomMapper和TeacherMapper的接口,并在接口定义增删改查等方法。 4. 创建Mapper.xml文件 在resources目录下创建与Mapper接口对应的Mapper.xml文件,用于编写SQL语句和实现与数据库的交互。 5. 创建Service接口和实现类 创建名为StudentService、ClassroomService和TeacherService的接口,并在接口定义对应的增删改查方法。然后创建相应的实现类StudentServiceImpl、ClassroomServiceImpl和TeacherServiceImpl,并在实现类注入Mapper接口,实现具体的业务逻辑。 6. 创建Controller类 创建名为StudentController、ClassroomController和TeacherController的Controller类,用于处理前端请求。在Controller类注入Service接口,并定义相应的请求路径和方法。 具体的代码实现过程可以参考下面的示例: StudentMapper.xml 文件示例: ```xml <!-- 增加学生 --> <insert id="addStudent" parameterType="com.example.model.Student"> INSERT INTO student (id, name, age) VALUES (#{id}, #{name}, #{age}) </insert> <!-- 删除学生 --> <delete id="deleteStudent" parameterType="int"> DELETE FROM student WHERE id = #{id} </delete> <!-- 更新学生 --> <update id="updateStudent" parameterType="com.example.model.Student"> UPDATE student SET name = #{name}, age = #{age} WHERE id = #{id} </update> <!-- 查询学生 --> <select id="getStudentById" parameterType="int" resultType="com.example.model.Student"> SELECT id, name, age FROM student WHERE id = #{id} </select> ``` StudentMapper.java 文件示例: ```java public interface StudentMapper { // 增加学生 void addStudent(Student student); // 删除学生 void deleteStudent(int id); // 更新学生 void updateStudent(Student student); // 查询学生 Student getStudentById(int id); } ``` StudentServiceImpl.java 文件示例: ```java @Service public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Override public void addStudent(Student student) { studentMapper.addStudent(student); } @Override public void deleteStudent(int id) { studentMapper.deleteStudent(id); } @Override public void updateStudent(Student student) { studentMapper.updateStudent(student); } @Override public Student getStudentById(int id) { return studentMapper.getStudentById(id); } } ``` StudentController.java 文件示例: ```java @RestController @RequestMapping("/student") public class StudentController { @Autowired private StudentService studentService; @PostMapping("/add") public String addStudent(@RequestBody Student student) { studentService.addStudent(student); return "添加成功"; } @DeleteMapping("/delete/{id}") public String deleteStudent(@PathVariable("id") int id) { studentService.deleteStudent(id); return "删除成功"; } @PutMapping("/update") public String updateStudent(@RequestBody Student student) { studentService.updateStudent(student); return "更新成功"; } @GetMapping("/get/{id}") public Student getStudentById(@PathVariable("id") int id) { return studentService.getStudentById(id); } } ``` 通过以上步骤,我们就可以在SSM框架下实现多表增删改查操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值