目标:配置通用Mapper组件到Sringboot项目并使用Mapper接口
分析:
通用Mapper:可以实现自动拼接sql语句;所有mapper都不需要编写任何方法也就是不用编写sql语句,所以提高开发效率。
1、添加启动器依赖
<!--通用mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
2、改造UserMapper继承Mapper< User>
public interface UserMapper extends Mapper<User> {
}
3、修改启动引导类application中的Mapper扫描注解
(用的是tk开头的MapperScan)
//这个是自己加的通用mapper
@MapperScan("com.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
4、修改User实体类添加jpa注解
@Data//在编译阶段会根据注解自动生成对应的方法;data包含get/set/hashCode/equals/toString等方法
@Table(name = "tb_user")
public class User {
@Id
//主键回值
@KeySql(useGeneratedKeys = true)//设置主键
private Long id;
@Column//这个是为了将数据命名和数据库中的可以规则话,一般都是和数据库一样的
//user_name-->userName
private String username;
private String password;
private String name;
private Integer age;
private Integer sex;
private Date brithday;
private String note;
private Date created;
}
5、修饰UserService实现业务功能
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
//根据id查询
public User queryById(Long id){
return userMapper.selectByPrimaryKey(id);
}
//新增保存用户
@Transactional
public void saveService(User user){
System.out.println("新用户.....");
//选择性新增:如果属性为空则该属性不会出现在insert语句上
userMapper.insertSelective(user);
}
}
总结;
在启动类上面的mapper注解,一定要改为通用mapper的注解