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 ,最終目錄結構如下:
源碼改日傳上來。