sql 和上篇一样不重复写了
student
package com.mybatis.model; import java.util.Date; public class student { private Integer student_id; private String student_name; private String student_sex; private Date student_birthday; private Integer class_id; public student() { super(); } public Integer getStudent_id() { return student_id; } public void setStudent_id(Integer student_id) { this.student_id = student_id; } public String getStudent_name() { return student_name; } public void setStudent_name(String student_name) { this.student_name = student_name == null ? null : student_name.trim(); } public String getStudent_sex() { return student_sex; } public void setStudent_sex(String student_sex) { this.student_sex = student_sex == null ? null : student_sex.trim(); } public Date getStudent_birthday() { return student_birthday; } public void setStudent_birthday(Date student_birthday) { this.student_birthday = student_birthday; } public Integer getClass_id() { return class_id; } public void setClass_id(Integer class_id) { this.class_id = class_id; } }
studentMapper
package com.mybatis.dao; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import com.mybatis.model.classes; import com.mybatis.model.student; @Repository public interface studentMapper { List<student>getStudentByClassID(int id); void insertStudent(student student); void updateStudent(student student); student getStudentById(int id); void deleteStudent(int id); List<student> getStudentListByDate(String date); List<student> getStudentListWhereEntity(student student); List<student>getStudentListWhereMap(Map<String, String>map); List<student> getStudentListWhereParam(@Param(value = "name") String name, @Param(value = "sex") String sex, @Param(value = "birthday") Date birthdar, @Param(value = "classes") classes classes); }
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" > <mapper namespace="com.mybatis.dao.studentMapper" > <resultMap id="StudentResultMap" type="com.mybatis.model.student" > <id column="student_id" property="student_id" jdbcType="INTEGER" /> <result column="student_name" property="student_name" jdbcType="VARCHAR" /> <result column="student_sex" property="student_sex" jdbcType="VARCHAR" /> <result column="student_birthday" property="student_birthday" jdbcType="DATE" /> <result column="class_id" property="class_id" jdbcType="INTEGER" /> </resultMap> <sql id="selectStudentAll"> select * from student </sql> <select id="getStudentByClassID" parameterType="int" resultMap="StudentResultMap"> <include refid="selectStudentAll"/> where student.class_id = #{class_id} </select> <select id="getStudentById" parameterType="int" resultMap="StudentResultMap"> select * from student where student.student_id = #{student_id} </select> <!-- 插入学生 --> <insert id="insertStudent" parameterType="student"> insert into student (student_id, student_name, student_sex, student_birthday, class_id) value(#{student_id}, #{student_name}, #{student_sex}, #{student_birthday}, #{class_id}) </insert> <!-- 更新学生信息 --> <update id="updateStudent" parameterType="student"> update student set student.student_name = #{student_name}, student.student_sex = #{student_sex}, student.student_birthday = #{student_birthday}, student.class_id = #{class_id} where student.student_id = #{student_id}; </update> <!-- 删除学生 --> <delete id="deleteStudent" parameterType="int"> delete from student where student_id = #{student_id} </delete> <!-- 查询学生list,根据入学时间 --> <select id="getStudentListByDate" parameterType="String" resultMap="StudentResultMap"> select * from student st left join classes ct on st.class_id = ct.class_id where ct.class_year = #{class_year}; </select> <!-- 查询学生list,like姓名、=性别,参数entity类型 --> <select id="getStudentListWhereEntity" parameterType="student" resultMap="StudentResultMap"> select * from student st where st.student_name like concat(concat('%', #{student_name}),'%') and st.student_sex = #{student_sex} </select> <!-- 查询学生list,=性别,参数map类型 --> <select id="getStudentListWhereMap" parameterType="Map" resultMap="StudentResultMap"> select * from student st where st.student_name like concat(concat('%', #{name}),'%') and st.student_sex = #{sex} </select> <!-- 查询学生list,like姓名、=性别、=生日、=班级,多参数方式 --> <select id="getStudentListWhereParam" resultMap="StudentResultMap"> select * from student st <where> <if test="name!=null and name!='' "> st.student_name like concat(concat('%', #{name}),'%') </if> <if test="sex!= null and sex!= '' "> and st.student_sex= #{sex} </if> <if test="birthday!=null"> and st.student_birthday = #{birthday} </if> <if test="classes=null and classes.class_id !=null and classes.class_id!=' ' "> and st.class_id = #{classes.class_id} </if> </where> </select> </mapper>
注意:在接口处定义参数名后在xml中可以直接调用,
<include refid="selectStudentAll"/>
直接调用sql 拼接成完整的sql语句
testController
package com.mybatis.controller; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.print.attribute.HashAttributeSet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.mybatis.model.classes; import com.mybatis.model.student; @Controller public class TestController { @Autowired private com.mybatis.dao.studentMapper studentMapper; @Autowired private com.mybatis.dao.classesMapper classesMapper; @RequestMapping(value = "/nv/update" ,method=RequestMethod.GET) public ResponseEntity<?> indexPage() { student student=studentMapper.getStudentById(1); student.setStudent_name("王小明"); studentMapper.updateStudent(student); return new ResponseEntity<String>(HttpStatus.OK); } @RequestMapping(value = "/nv/save" ,method=RequestMethod.GET) public ResponseEntity<?> test2() { student student=new student(); student.setClass_id(1); student.setStudent_birthday(new Date()); student.setStudent_name("student3"); student.setStudent_sex("男"); studentMapper.insertStudent(student); return new ResponseEntity<String>(HttpStatus.OK); } @RequestMapping(value = "/nv/delete" ,method=RequestMethod.GET) public ResponseEntity<?> test3() { studentMapper.deleteStudent(1); return new ResponseEntity<String>(HttpStatus.OK); } @RequestMapping(value = "/nv/findStudents" ,method=RequestMethod.GET) public ResponseEntity<?> test4() { List<student>students=studentMapper.getStudentByClassID(1); for (student student : students) { System.out.println(student.getStudent_name()); } return new ResponseEntity<String>(HttpStatus.OK); } @RequestMapping(value = "/nv/findStudentsByClassYear" ,method=RequestMethod.GET) public ResponseEntity<?> test5() { List<student>students=studentMapper.getStudentListByDate("2009"); for (student student : students) { System.out.println(student.getStudent_name()); } return new ResponseEntity<String>(HttpStatus.OK); } @RequestMapping(value = "/nv/getStudentListWhereEntity" ,method=RequestMethod.GET) public ResponseEntity<?> test6() { student student=new student(); student.setStudent_name("2"); student.setStudent_sex("男"); List<student>students=studentMapper.getStudentListWhereEntity(student); for (student student2 : students) { System.out.println(student2.getStudent_name()); } return new ResponseEntity<String>(HttpStatus.OK); } @RequestMapping(value = "/nv/getStudentListWhereMap" ,method=RequestMethod.GET) public ResponseEntity<?> test7() { Map<String, String>map=new HashMap<String, String>(); map.put("name", "2"); map.put("sex", "男"); List<student>students=studentMapper.getStudentListWhereMap(map); for (student student2 : students) { System.out.println(student2.getStudent_name()); } return new ResponseEntity<String>(HttpStatus.OK); } @RequestMapping(value = "/nv/getStudentListWhereParam" ,method=RequestMethod.GET) public ResponseEntity<?> test8() { classes classes=new classes(); classes.setClass_id(1); List<student>students=studentMapper.getStudentListWhereParam("2", "男", null, classes); for (student student2 : students) { System.out.println(student2.getStudent_name()); } return new ResponseEntity<String>(HttpStatus.OK); } }