2.Spring|2.Spring Boot整合Mybatis进行CRUD
- 创建一个新的模块
注意模块选择,并选择jdk版本至少为8
文章图片
模块选择.png
文章图片
填元数据.png 此处可以添加自身所需依赖
文章图片
添加依赖.png
文章图片
完成构建.png
- 准备工作
添加所需依赖
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
mysql
mysql-connector-java
5.1.39
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.1.1
org.projectlombok
lombok
1.18.6
true
在application.properties中添加配置,其中中username和password为自身数据库的用户名和密码(以my sql为例)
## 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/db_spring?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=**
spring.datasource.password=**
spring.datasource.driver-class-name=com.mysql.jdbc.Driver#指定实体类映射的包
mybatis.type-aliases-package=com.springboot.mybatis.entity
构建包结构
文章图片
包的结构.png
- 进行编码
- 编写entity实体类,其中属性对应数据库中表的数据
@Data
public class User {
private Long userId;
private String mobile;
private String password;
private String username;
private String avatar;
}
- 在Mapper中编写需要使用到的sql语句,在结果集中column为数据库属性名,property为idea中属性名,还有就是sql语句在最后空一格为了方便拼接
public interface UserMapper {
@Results({@Result(column = "user_id",property = "userId"),
@Result(column = "mobile",property = "mobile"),
@Result(column = "password",property = "password"),
@Result(column = "username",property = "username"),
@Result(column = "avatar",property = "avatar")
})
@Select("SELECT * FROM t_sys_user ")
List selectAll();
@Results({@Result(column = "user_id",property = "userId"),
@Result(column = "mobile",property = "mobile"),
@Result(column = "password",property = "password"),
@Result(column = "username",property = "username"),
@Result(column = "avatar",property = "avatar")
})
@Select("SELECT * FROM t_sys_user WHERE user_id = #{userId} ")
User getOne(Long userId);
@Delete("DELETE FROM t_sys_user WHERE user_id =#{userId} ")
void delete(Long userId);
@Insert("INSERT INTO t_sys_user(mobile,password,username,avatar)"+
"VALUES(#{mobile},#{password},#{username},#{avatar}) ")
void insert(User user);
@Update("UPDATE t_sys_user SET password=#{password},avatar=#{avatar} WHERE user_id=#{userId} ")
void updata(User user);
}
- service中写个实现mapper中方法的接口
public interface UserService {
List selectAll();
User getOne(long userId);
void delete(long userId);
Userinsert(User user);
void updata(User user);
}
- 在serviceimpl中实现service中接口的方法
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserMapper userMapper;
@Override
public List selectAll() {
return userMapper.selectAll();
}@Override
public User getOne(long userId) {
return userMapper.getOne(userId);
}@Override
public void delete(long userId) {
userMapper.delete(userId);
}@Override
public User insert(User user) {
userMapper.insert(user);
return user;
}@Override
public void updata(User user) {
userMapper.updata(user);
}
}
- 对serviceImpl中的方法进行测试,以便排查错误
- 在controller中写入RESTful请求
@RestController
@RequestMapping(value = "https://www.it610.com/api")
public class UserController {
@Resource
private UserService userService;
@RequestMapping(value = "https://www.it610.com/users",method = RequestMethod.GET)
public List selectAll(){
return userService.selectAll();
}@RequestMapping(value = "https://www.it610.com/user/{id}",method = RequestMethod.GET)
public User getOne(@PathVariable("id") long id){
return userService.getOne(id);
}@RequestMapping(value = "https://www.it610.com/user/{id}",method = RequestMethod.DELETE)
public void deleteUser(@PathVariable("id") long id){
userService.delete(id);
}@RequestMapping(value = "https://www.it610.com/user",method = RequestMethod.POST)
public User addUser(@RequestBody User user){
return userService.insert(user);
}@RequestMapping(value = "https://www.it610.com/user",method = RequestMethod.PUT)
public void update(@RequestBody User user){
userService.updata(user);
}}
- 打开启动类,记得加上注释,不然可能找不到mapper,最后运行
@SpringBootApplication
@MapperScan("com.springboot.mybatis.mapper")
public class SpringBootMybatisApplication {public static void main(String[] args) {
SpringApplication.run(SpringBootMybatisApplication.class, args);
}}
- 出现以下结果说明运行成功
文章图片
启动.png
- 使用postman验证
其中有几点要注意
- 要注意动作如get,put,delete,post等的区别
- 结果为200即为成功
- 【2.Spring|2.Spring Boot整合Mybatis进行CRUD】使用put和post时要注意一下几处
文章图片
post.png
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- spring|spring boot项目启动websocket
- Spring|Spring Boot 整合 Activiti6.0.0
- springboot使用redis缓存
- Spring|Spring Boot之ImportSelector
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- Spring|Spring Boot部署到Resin遇到的问题
- springboot整合数据库连接池-->druid