Spring boot整合Mybatis三:使用xml配置文件方式实现与数据库交互

Spring boot整合Mybatis二中,我使用注解方式实现了与数据库交互。

先看那一下Spring boot整合Mybatis二中,工程在经过一系列操作后的目录结构和文件,我将在此基础上实现:使用xml配置方式访问数据库的需求:

为了便于与注解方式的类和代码区分对比,我引入一个新的对象:教师类。

1、mysql数据库新建一张教师信息表 teacher:

2、domain文件夹下新建教师实体类 Teacher.java

package com.aigov.springbootmybatis.springbootmybatis.domain;

import lombok.Data;

/**
 * @author : aigoV
 * @date :2019/5/15
 * 教师实体类
 **/
@Data
public class Teacher {
    private Integer n_id;
    private String c_xm;
    private String c_sjbj;
    private String c_sjkc;
}

3、mapper文件夹下编写TeacherMapper.java 文件

可以看到这里没有了sql语句,只有接口方法。

package com.aigov.springbootmybatis.springbootmybatis.mapper;

import com.aigov.springbootmybatis.springbootmybatis.domain.Teacher;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;

/**
 * @author : aigoV
 * @date :2019/5/15
 * teacher的mapper
 **/
@Component
@Mapper
public interface TeacherMapper {
    /** 插入一条完整教师信息 **/
    int insertTea (Teacher teacher);

    /** 根据教师id删除一条教师信息 **/
    int deleteTeaById (@Param("n_id") Integer n_id);

    /** 根据教师id修改教师信息 **/
    int updateTea (@Param("n_id") Integer n_id,@Param("c_xm") String c_xm);

    /** 根据所教班级查询教师信息 **/
    List<Teacher> selectTeaBySjbj(@Param("c_sjbj")String c_sjbj);

}

 4、在工程resource文件夹下新建一个对应java 的文件路径:com.aigov.springbootmybatis.springbootmybatis.mapper的文件夹。用于装xml文件。

5、在mapperXml文件夹下创建对应mapper接口的xml文件,并在里面编写对应接口方法的配置。

TeacherMapper.xml:

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aigov.springbootmybatis.springbootmybatis.mapper.TeacherMapper">

    <insert id="insertTea">
        INSERT INTO aigov_core.teacher (n_id,c_xm,c_sjbj,c_sjkc) VALUES(#{n_id},#{c_xm},#{c_sjbj},#{c_sjkc});
    </insert>

    <delete id="deleteTeaById">
        DELETE FROM aigov_core.teacher WHERE n_id = #{n_id}
    </delete>

    <update id="updateTea">
        UPDATE aigov_core.teacher SET c_xm = #{c_xm} WHERE n_id = #{n_id}
    </update>

    <select id="selectTeaBySjbj" resultType="com.aigov.springbootmybatis.springbootmybatis.domain.Teacher">
        SELECT * FROM aigov_core.teacher WHERE c_sjbj = #{c_sjbj}
    </select>

</mapper>

6、服务层:TeacherService.java

package com.aigov.springbootmybatis.springbootmybatis.service;

import com.aigov.springbootmybatis.springbootmybatis.domain.Teacher;
import com.aigov.springbootmybatis.springbootmybatis.mapper.TeacherMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

/**
 * @author : aigoV
 * @date :2019/5/15
 * 教师业务层
 **/
@Service
public class TeacherService {

    @Autowired
    TeacherMapper teacherMapper;

    /**新增**/
    public void addTeacher(Teacher teacher){
        teacherMapper.insertTea(teacher);
    }

    /** 根据n_id 删除 **/
    public void deleTeacher(Integer n_id){
        teacherMapper.deleteTeaById(n_id);
    }

    /** 根据n_id 修改c_xm **/
    public void  updateTeacher(Integer n_id ,String c_xm){
        teacherMapper.updateTea(n_id,c_xm);
    }

    /** 查询 **/
    public List selectTeacher(String c_sjbj){
        return teacherMapper.selectTeaBySjbj(c_sjbj);
    }

}

7、控制层  TeacherController.java

package com.aigov.springbootmybatis.springbootmybatis.controller;

import com.aigov.springbootmybatis.springbootmybatis.domain.Teacher;
import com.aigov.springbootmybatis.springbootmybatis.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @author : aigoV
 * @date :2019/5/15
 * 教师控制层
 **/
@RestController
public class TeacherController {

    @Autowired
    TeacherService teacherService;

    @RequestMapping("/addTea")
    public void addTea(Teacher teacher){
        teacherService.addTeacher(teacher);
    }

    @RequestMapping("/deleTea")
    public void deleTea(Integer n_id){
        teacherService.deleTeacher(n_id);
    }

    @RequestMapping("/updateTea")
    public void updateTea(Integer n_id,String c_xm){
        teacherService.updateTeacher(n_id,c_xm);
    }

    @RequestMapping("/findTea")
    public List findTea(String c_sjbj){
        return teacherService.selectTeacher(c_sjbj);
    }
}

8、测试

测试方法见Spring boot整合Mybatis二

测试所有方法无误,数据表数据发生正确更改:

Spring boot整合Mybatis完结,之后在总结一下我在工作中遇到的一些复杂一点的xml方式的sql ,最终目录结构如下:

源码改日传上来。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章