Mybatis增删改查,各种参数方式

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);
	    } 
	    
}


你可能感兴趣的:(java,spring,mybatis)