tk-mybatis的实战使用

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

 <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.1.5</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

二、类配置方法
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<TExamPublishRecord> {

}

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

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

3.service层使用

举例说明新增:tExamPublishRecordDao.insert(tExamPublishRecord);
tExamPublishRecord是实体类对象
在这里插入图片描述
面对比较复杂的,可以采用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<T> 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了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值