配置通用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);
}
}
}
回复关键词
docker 分布式限流 MySQL alibaba JVM性能调优
看更多精彩教程
喜欢本文,记得点击个在看,或者分享给朋友哦!