Springboot Mybatis基于注解开发(@Select、@Delete、@Update、@Insert)
新增yml配置(需要额外注意):
# Mybatis基于注解开发,开启驼峰命名转换(否则为NULL)
mybatis:
configuration:
map-underscore-to-camel-case: true
实体类(Standard.java):
package com.kd.opt.entity;
import java.io.Serializable;
/**
* Xxx实体类(代码规范)
*
* @author 小辰哥哥
*/
public class Standard implements Serializable {
// 标准编号
private Integer standardId;
// 标准名称
private String standardName;
// 标准类型
private String standardType;
// 无参构造
public Standard() {
}
// 有参构造
public Standard(Integer standardId, String standardName, String standardType) {
this.standardId = standardId;
this.standardName = standardName;
this.standardType = standardType;
}
// Get和Set方法进行封装
public Integer getStandardId() {
return standardId;
}
public void setStandardId(Integer standardId) {
this.standardId = standardId;
}
public String getStandardName() {
return standardName;
}
public void setStandardName(String standardName) {
this.standardName = standardName == null ? null : standardName.trim();
}
public String getStandardType() {
return standardType;
}
public void setStandardType(String standardType) {
this.standardType = standardType == null ? null : standardType.trim();
}
// 重写toString方法
@Override
public String toString() {
return "Standard{" +
"standardId=" + standardId +
", standardName='" + standardName + '\'' +
", standardType='" + standardType + '\'' +
'}';
}
}
Dao层接口(StandardMapper3.java):
package com.kd.opt.dao;
import com.kd.opt.entity.Standard;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* XxxDao层接口(代码规范,基于注解开发)
*
* @author 小辰哥哥
*/
@Mapper
@Component
public interface StandardMapper3 {
/**
* 方法一:根据主键删除数据
*
* @param standardId
* @return
* @author 小辰哥哥
*/
@Delete("delete from standard where standard_id = #{standardId,jdbcType=INTEGER}")
int deleteByPrimaryKey(Integer standardId);
/**
* 方法二:插入数据
*
* @param record
* @return
* @author 小辰哥哥
*/
// 获取自增主键的ID
@Options(useGeneratedKeys = true, keyProperty = "standardId", keyColumn = "standard_id")
@Insert("insert into standard (standard_name, standard_type) values (#{standardName,jdbcType=VARCHAR}, #{standardType,jdbcType=VARCHAR})")
int insert(Standard record);
/**
* 方法三:根据主键查询数据
*
* @param standardId
* @return
* @author 小辰哥哥
*/
@Select("select standard_id, standard_name, standard_type from standard where standard_id = #{standardId,jdbcType=INTEGER}")
Standard selectByPrimaryKey(Integer standardId);
/**
* 方法四:查询所有数据
*
* @return
* @author 小辰哥哥
*/
@Select("select standard_id, standard_name, standard_type from standard")
List<Standard> selectAll();
/**
* 方法五:根据主键更新数据
*
* @param record
* @return
* @author 小辰哥哥
*/
@Update("update standard set standard_name = #{standardName,jdbcType=VARCHAR}, standard_type = #{standardType,jdbcType=VARCHAR} where standard_id = #{standardId,jdbcType=INTEGER}")
int updateByPrimaryKey(Standard record);
/**
* 方法六:多条件查询数据(动态sql)
*
* 用<script></script>标签包围,然后像XML语法一样书写
*
* @param record
* @return
* @author 小辰哥哥
*/
@Select("<script>"
+ "select standard_id, standard_name, standard_type from standard where 1=1 "
+ "<if test = \"standardName != null\">"
+ "and standard_name = #{standardName}"
+ "</if>"
+ "<if test = \"standardType != null\">"
+ "and standard_type = #{standardType}"
+ "</if>"
+ "</script>")
List<Standard> selectByConditions(Standard record);
}
总结
每天一个提升小技巧!!!