mapper注解的主要作用_配置通用Mapper组件到Spring Boot项目中

配置通用Mapper组件到Spring Boot项目中并使用Mapper接口

分析

通用Mapper:可以实现自动拼接sql语句;所有的mapper都不需要编写任何方法也就是不用编写sql语句。可以提高开发效率。

1、添加启动器依赖;


tk.mybatismapper-spring-boot-starter2.1.5

2、改造UserMapper继承Mapper;

import com.itbooking.vuessmspringboot.pojo.User;
import tk.mybatis.mapper.common.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

public interface UserMapper extends Mapper{
/**
* @Author david老师:
* @微信 15*****437
* @Description 查询用户列表
* @Date 9:24 2019/6/22
* @Param []
* @return java.util.List
**/
public List findUsers();
/**
*
* (这里用一句话描述这个方法的作用)
* 方法名:findUserById
* 创建人:xuchengfeifei
* 时间:2019年6月28日-上午11:02:19
* 手机:1564545646464
* @param id
* @return User
* @exception
* @since 1.0.0
*/
public User findUserById(@Param("id") Long id);
}

3、修改启动引导类Application中的Mapper扫描注解;

package com.itbooking.vuessmspringboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@MapperScan("com.itbooking.vuessmspringboot.mapper")
public class VuessmspringbootApplication {

public static void main(String[] args) {
SpringApplication.run(VuessmspringbootApplication.class, args);
}

}

请注意是:import tk.mybatis.spring.annotation.MapperScan;下的类。

4、修改User实体类添加jpa注解;

package com.itbooking.vuessmspringboot.pojo;

import java.util.Date;

import javax.persistence.Id;
import javax.persistence.Table;

import tk.mybatis.mapper.annotation.KeySql;
import tk.mybatis.mapper.code.IdentityDialect;

@Table(name="keke_user")
public class User {

@Id
@KeySql(useGeneratedKeys = true,dialect = IdentityDialect.MYSQL)
private Long id;
private String username;
private String account;
private String password;
}

5、改造UserService实现业务功能;

小结

==在启动引导类上面的mapper扫描注解 一定要修改为 通用mapper的扫描注解,而且值得关注的是基于Mapper和xml的方式都可以兼容处理掉。==

网址参考

https://github.com/abel533/Mapper/wiki/2.5-genId

https://blog.csdn.net/isea533/article/details/80040379

Spring Boot整合 - 通用Mapper-02

目标

掌握和了解通用Mapper的主键回填策略和自动生成ID的策略

步骤

1:定义pojo

package com.itheima.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Id;
import javax.persistence.Table;

@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Table(name="test_user")
public class TestUser {
// 用户id
@Id
@KeySql(genId = UUIdGenId.class)
private String userId;
//用户名
private String username;
//用户秘密
private String password;
}

同过@Table@ID 告诉和表做映射关系。

2:自动注入UUID策略

package com.itheima.pojo;

import tk.mybatis.mapper.genid.GenId;

import java.util.UUID;

public class UUIdGenId implements GenId {
// 分布式订单号
@Override
public String genId(String table, String column) {
return UUID.randomUUID().toString() ;
}
}

3:TestUserDao

package com.itheima.dao;

import com.itheima.pojo.TestUser;
import com.itheima.pojo.User;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

//@Mapper
public interface TestUserDao extends Mapper {
}

测试用例

package com.itheima;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootMainApplicationTests {


@Autowired
private TestUserDao testUserDao;

@Test
public void saveTestUser(){
for (int j = 0; j < 10; j++) {
TestUser testUser = new TestUser();
//testUser.setUserId(UUID.randomUUID().toString());
testUser.setUsername("zhangsan"+j);
testUser.setPassword("23434234");
testUserDao.insert(testUser);
}
}
}

d1981b6690b9b86d616112d13d7fc6f2.png

3c70ba6d9e6d22a9bc1297d23910894c.png

回复关键词

 docker    分布式限流   MySQL     alibaba     JVM性能调优  

看更多精彩教程

喜欢本文,记得点击个在看,或者分享给朋友哦!956e38e87b48315fc1369a00ad17120a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值