tk.mybatis 的使用说明

tk.mybatis 的使用用法说明

依赖

tk.mybatis 的使用说明
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>

        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>3.4.2</version>
        </dependency>

前者包含了 mybatis 一些依赖,若 ssm 项目搭建好了,用后者就行。

实体类与 Mapper 改造

若属性与数据库字段对应不上需要用 @Column 注解对于,表名不一样同理用 @Table,一样的无需添加,主键上需加@Id 注解。

@Data
@Table(name = "t_order")
public class Order {
    /**
     * 
    CREATE TABLE orders(
        order_id INT PRIMARY KEY AUTO_INCREMENT,
        order_no VARCHAR(20), 
        price FLOAT
    );
     */

    //Order 实体类中属性名和 orders 表中的字段名是不一样的
    @GeneratedValue(generator = "JDBC") // 自增的主键映射
    @Id
    @Column(name = "order_id")
    private int id;                //id===>order_id
    @Column(name = "order_no")
    private String orderNo;
    // 若跟数据库字段一致可不写注解
    private Double price;
    }

Mapper 接口需继承 tk 的 Mapper<T>

import ssm.entity.Person;
import tk.mybatis.mapper.common.Mapper;

public interface PersonMapper extends Mapper<Person> {}

xml 可以内容为空,但最好加上结果集设置好与数据库字段对应关系(如果实体类属性与数据库字段不一致的话)

<?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="ssm.dao.PersonMapper">
    <resultMap id="BaseResultMap" type="ssm.entity.Person">
        <id column="id" jdbcType="INTEGER" property="id" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="description" jdbcType="VARCHAR" property="description" />
        <result column="creater" jdbcType="VARCHAR" property="creater" />
        <result column="create_time" jdbcType="DATE" property="createTime" />
        <result column="updater" jdbcType="VARCHAR" property="updater" />
        <result column="update_time" jdbcType="DATE" property="updateTime" />
    </resultMap>
</mapper>

报错解决

报错:java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider 怎么办?

这种情况是 MapperScan 包的问题,mybatis 与 tk.mybatis 都有这个,在此我们导包请导 tk 的这个包。

对于 SpringBoot 项目在 Appliction 启动类上使用 MapperScan 注解的,更改导包路径为。

import tk.mybatis.spring.annotation.MapperScan;

对于传统 SSM 项目,将 mybatis 的扫描配置器改成 tk 的即可

    <!-- DAO 接口所在包名,Spring 会自动查找其下的类 , 自动扫描了所有的 XxxxMapper.xml 对应的 mapper 接口文件, 只要 Mapper 接口类和 Mapper 映射文件对应起来就可以了 -->
<!--    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">-->
    <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="ssm.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>
目录
  • 依赖
  • 实体类与 Mapper 改造
  • 报错解决
  • 目录
  • 依赖
  • 实体类与 Mapper 改造
  • 报错解决
  • 手机扫描二维码访问

    本文标题:《tk.mybatis 的使用说明》作者:极四维博客
    原文链接:https://cway.top/post/796.html
    特别注明外均为原创,转载请注明。

    分享到微信

    扫描二维码

    可在微信查看或分享至朋友圈。

    相关文章

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    «    2024年12月    »
    1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031

    搜索

    控制面板

    您好,欢迎到访网站!
      查看权限

    最新留言

    文章归档

    • 订阅本站的 RSS 2.0 新闻聚合