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 ,最終目錄結構如下:

源碼改日傳上來。

 

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