1.引入依赖
引入mybatis-plus的starter就行,请勿映入mybatis的其他依赖,以免造成版本冲突
<!--mp-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
2.配置yaml文件
配置数据库的配置和mp的sql语句打印日志
其实这里并不用配置映射文件的位置,因为默认就是classspath*:/mapper/**/*.xml
,只要将xml放在mapper文件夹下就行
值得注意的是,如果仅仅使用mybatis,是需要指定映射文件位置的,但如果使用mp,则不需要,因为有默认值
spring:
datasource:
url: jdbc:mysql://121.40.159.55:3308/personal?characterEncoding=UTF-8
username: root
password: 2696
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
mybatis-plus:
#映射文件位置
#mapper-locations: classspath*:/mapper/**/*.xml
configuration:
#sql语句的打印
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.编写pojo实体类
这里使用了lombok
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
int id;
String username;
String password;
}
4.编写dao接口
这里使用@Repository注解,注入到spring容器中,后面的serviceimpl类可以使用@Autowired自动注入
继承mp中的BaseMapper接口,并指定泛型,就不用我们自己再手动编写一些单表的增删改查方法
@Repository
public interface UserMapper extends BaseMapper<User>{
}
5.在resource中编写xml配置文件(不是必须)
除非自己需要编写一些baseMapper接口
中没有的操作时,才需要配置xml文件
6.编写service接口
继承mp中的IService接口
,并指定对应的泛型
public interface UserService extends IService<User>{
}
7.编写serviceimpl类
这里使用@Service注解,注入到spring容器中
首先实现UserService接口
,但由于我们的UserService接口已经继承了IService接口
,所以这时候我们应该去实现IService接口
中的所有方法
此时,应该再继承ServiceImpl类
,ServiceImpl类
已经对IService接口
进行了实现,所以此时我们并不需要进行方法实现
值得注意的是ServiceImpl类
中需要指定两个泛型,第一个M为dao类
(也就是mapper类),第二个T为实体类pojo
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
}
8.编写controller类
@Controller
public class LoginController {
@Autowired
UserServiceImpl userService ;
//查找用户
@GetMapping(value = "getUser/{id}")
@ResponseBody
public User get(@PathVariable int id){
return userService.getById(id);
}
}
9.在主启动类中添加@MapperScan注解,扫描dao包
@SpringBootApplication
@MapperScan("com.personaljava.dao")
public class PersonalJavaApplication {
public static void main(String[] args) {
SpringApplication.run(PersonalJavaApplication.class, args);
}
}
运行结果
浏览器查询
控制台打印sql日志