前言
就是mysql数据库的增删改查。
目前来说用到的就三种:xml、注解、BaseMapper
其中BaseMapper的方式只能操作单张表。
方式
xml方式
创建java 的 数据库操作接口文件。
@Mapper
public interface TargetMapper{
Target getTargetByParam(@Param("params") HashMap<String, Object> map);
}
创建一个对应数据操作
<?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="cn.zs.TargetMapper">
<select id="getTargetByParam" resultType="cn.zs.Target">
select t.* from target_task t
<where>
1 = 1
<if test="params.taskCode!='' and params.taskCode!=null">
and t.task_code = #{params.taskCode,jdbcType=VARCHAR}
</if>
<if test="params.taskType!='' and params.taskType!=null">
and t.task_type = #{params.taskType,jdbcType=VARCHAR}
</if>
</where>
</select>
</mapper>
注解方式
就是实际数据库操作的sql语句不再写到xml文件中了,直接在接口上面写。
//注意下面作了限制,只返回一行
@Select({"select * from mytarget where code=#{Code} and item_code=#{itemCode} LIMIT 1"})
Target getOneTarget(@Param("Code")String staffCode,@Param("itemCode")String itemCode);
BaseMapper方式
这种方式只能操作单张表
就是接口扩展了BaseMapper
public interface RTargetMapper extends BaseMapper<RTarget> {
}
直接操作数据库
@Override
public Task getOneTask(String taskId) {
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("task_code",taskId);
QueryWrapper<Task> queryWrapper = new QueryWrapper<>();
queryWrapper.allEq(dataMap);
Task rTask = rTargetMapper .selectOne(queryWrapper);
return rTask ;
}
参考:MyBatis-Plus使用详解4(Mapper的CRUD接口1:基本查询)
总结
这几种方式都要掌握,因为你并不知道你的小伙伴用的什么。
感觉springboot为了方便做了很多努力,但是也开始有历史包袱了。
springboot的东西有点多啊,短时间内不太容易掌握~