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 ,最终目录结构如下:
源码改日传上来。