tk-mybatis的实战使用

项目使用了SpringBoot+TKMytis框架,所以简单介绍如何使用。
一、框架配置
配置的话非常简单,我用的是SpringBoot,直接引入:

 
            tk.mybatis
            mapper
            4.1.5
        
        
            tk.mybatis
            mapper-spring-boot-starter
            2.1.5
        

二、类配置方法
1、实体类
创建一个实体类与数据库进行映射


@Table(name = "t_exam_publish_record")
@ToString(callSuper = true)
@Data
public class TExamPublishRecord extends BaseEntity implements Serializable {
    /**
     * 考试发布记录ID
     */
    @Id
    private Long id;

    /**
     * 试卷表_试卷ID
     */
    @Column(name = "t_p_id")
    private Long tPId;


    @Column(name = "sessionId")
    private String sessionId;

    /**
     * 考试标题
     */
    private String title;

    /**
     * 发布人
     */
    private Long publisher;
}

其中@Table即数据表表名,@Column即列名,@Id作为主键,需要注意,@Id注解不可有多个,@Transient即冗余字段,不与数据库任何字段对应。
2.Dao类,

public interface TExamPublishRecordDao extends Mapper {

}

Mapper其实际上是继承于几个Mapper

@RegisterMapper
public interface Mapper extends BaseMapper, ExampleMapper, RowBoundsMapper, Marker {
}

3.service层使用

举例说明新增:tExamPublishRecordDao.insert(tExamPublishRecord);
tExamPublishRecord是实体类对象
tk-mybatis的实战使用_第1张图片
面对比较复杂的,可以采用ExampleMapper中的方法,举例说明多条件查询

 Example example = new Example(TExamPublishRecord.class);
   // 多条件查询
example.createCriteria().andLike("title","%"+tExamPublishRecord.getTitle()+"%").andEqualTo(tExamPublishRecord.getPublisher())
                .andBetween("createdTime",((ExamPublishRecordQueryConditionDTO) queryVO).getLeftPlanTime(),((ExamPublishRecordQueryConditionDTO) queryVO).getRightPublishTime())
                .andBetween("startTime",((ExamPublishRecordQueryConditionDTO) queryVO).getLeftPlanTime(),((ExamPublishRecordQueryConditionDTO) queryVO).getRightPlanTime());
Page page = (Page) tExamPublishRecordDao.selectByExample(example);

ExampleMapper中的方法

        /**
	 * 根据Example条件进行查询
	 */
	public List selectByExample(Object example);
 
	/**
	 * 根据Example条件进行查询,若有多条数据则抛出异常
	 */
	public T selectOneByExample(Object example);
 
	/**
	 * 根据Example条件进行查询总数
	 */
	public int selectCountByExample(Object example);
 
	/**
	 * 根据Example条件删除数据,返回删除的条数
	 */
	public int deleteByExample(Object example);
 
	/**
	 * 根据Example条件更新实体`record`包含的全部属性,null值会被更新,返回更新的条数
	 */
	public int updateByExample(T record, Object example);
 
	/**
	 * 根据Example条件更新实体`record`包含的不是null的属性值,返回更新的条数
	 */
	public int updateByExampleSelective(T record, Object example);

4.controller再调用service层就ok了

你可能感兴趣的:(mybatis,mysql,mybatis,java)