SpringBoot整合Mybatis通用mapper

2022-03-23 16:56:40 浏览数 (2)

整合通用mapper

通用mapper整合之后 不需要我们自己写单表的增删改查 省去了单表配置xml 导入Maven依赖

代码语言:javascript复制
<!--导入数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--引入通用mapper  单表增删改查不需要写mapper.xml  整合了jdbc、事务-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.3</version>
        </dependency>

创建pojo实体类 User

代码语言:javascript复制
@Table(name = "user")  //作用建立数据库表与实体类之间的对应关系 实体类类名首字母小写作为表名
@Data//构造函数 get set 等会自动生成   需要lombok插件和lombok依赖
public class User {
    //id
    @Id//指定字段为主键
    @KeySql(useGeneratedKeys = true)//配置主键自增   让通用 Mapper 在执行 insert 操作之后将数据库自动生成的主键值回写到实体类对象中。
    private Integer id;
    //姓名
    private String name;
    //年龄
    private String age;
    //邮箱
    @Transient//用于声明该字段不是数据库中的字段
    private String email;

}

lombok依赖

代码语言:javascript复制
<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
            <scope>provided</scope>
        </dependency>

创建mapper接口

代码语言:javascript复制
//使用通用mapper需要集成mapper接口 会自动为我们实现增删改查方法
public interface UserMapper extends Mapper<User> {
}

常用方法有

增删改查都有 配置yaml

代码语言:javascript复制
spring:
  datasource:  #注意key名称不要写错
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mapper
    username: root
    password: 1234
mybatis:
#  configuration:  通用mapper默认会开启驼峰
#    map-underscore-to-camel-case: true #配置Mybatis驼峰
    #开启驼峰命名的作用: 将数据库带有_的字段与pojo类的属性驼峰命名相关联-localhost
  type-aliases-package: com.rpf.pojo

#  mapper-locations: mapper/*.xml

测试方法

代码语言:javascript复制
@RunWith(SpringRunner.class)//测试注解
@SpringBootTest() //标注这是springboot测试类
public class UserMapperTest {
   //注入
    @Autowired
    private UserMapper userMapper;

    @Test
    public void testQuery(){
        //测试查询一个主键方法
        User user = userMapper.selectByPrimaryKey(1);
        System.out.println(user);
    }
}

0 人点赞