目录
在application.properties配置mybatils扫描mapper的路径
*注意:代码拷贝进去,有些import没加,自己鼠标移动上去自己加一下。
创建
创建项目后。拉进idea中。即可开始编写。
-
先配mysql的连接
-
entity写数据与数据库实体类一一对应
-
写mapper接口,
-
在application.properties配置mybatils扫描mapper的路径
-
定义接口路径,调用方法,拿到对象
在项目的application.properties中配置连接数据库:
如下,粘贴进去改一改。
//访问地址:8080,自己改喜欢的,不冲突的
server.port=8080
//数据库连接地址,localhost:3306,数据库名字lan,后面无关紧要
spring.datasource.url=jdbc:mysql://localhost:3306/lan?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
//数据库用户名
spring.datasource.username=blue
//数据库密码
spring.datasource.password=blue12345
//必填,拷贝进去就行
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
添加文件夹:controller(对外提供接口),entity,mapper
在DemoApplication里面填写扫描mapper文件夹下的文件代码:
关键句就是@MapperScan(“com.example.demo.mapper”),其他默认就行
@SpringBootApplication
//MapperScan让mybatils扫描mapper文件
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在UserMapper接口中编写数据库查询逻辑:user就是表内的表单,你的表单是什么就是写什么
图例:看最下面那个user,就是下面对应的select * from user的user
public interface UserMapper {
//注解加sql语句的方式来查询
@Select("select * from user")
//findAll()查询所有数据库的对象
List<User> findAll();
}
创建实体类User,在User中编写数据库一一对应的数据字段类型:
import lombok.Data;
import javax.swing.*;
//springboot中通过@Data即可实现get,set,所以不用再生成get,set,直接写个@Data
@Data
public class User {
private Integer id;
private String name;
private String address;
private Integer age;
private String sex;
private String phone;
}
在UserController中编写接口地址和方式(土话:就是用来写数据库数据和前端交互的方法):
//这个注解是会把所有数据渲染成json
@RestController
//接口地址this.url+"/user"
//下面这个注解是指数据请求的最基础路径
@RequestMapping("/user")
public class UserController {
//引入UserMapper这个接口
@Resource
UserMapper userMapper;
//调用UserMapper内的方法把userMapper.findAll()返回给List<User>
//这个list为接口路径,调用需要这么写:this.url+"/user/list"
@GetMapping("/list")
public List<User> getUser(){
return userMapper.findAll();
}
}
你想吐槽为什么不按顺序写?????=>{
我只是忘了,懒得改了
}
进阶:post新增请求:
UserController,java
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
//接口地址this.url+"/user"
@RequestMapping("/user")
public class UserController {
@Resource
UserMapper userMapper;
@GetMapping
public List<User> getUser(){
return userMapper.findAll();
}
//重点代码如下
@PostMapping
//@RequestBody,把传递过来的转为json
public String addUser(@RequestBody User user){
userMapper.save(user);
return "success";
}
}
UserMapper.java
package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
public interface UserMapper {
//注解加sql语句的方式来查询
@Select("select * from login")
//findAll()查询所有数据库的对象
List<User> findAll();
//重点代码
//注解加sql语句的方式来添加
@Update("INSERT INTO `user`(`name`,`address`,`age`,`sex`,`phone`) VALUES (#{name},#{address},#{age},#{sex},#{phone})")
@Transactional
void save(User user);
}
启动服务器通过
http://localhost:8080/user并传递给他一个body就可以调用,如图
Postman软件:如果报500错误,你数据库id没自增,如果是415,你的传递没有选择json,如果是400,你的传参有问题,比如单引号和双引号。
一个post新增的接口就写好了
进阶:put更新数据(根据id修改)
同上在UserController,java添加
@PutMapping
public String updateUser(@RequestBody User user){
userMapper.updateById(user);
return "success";
}
在UserMapper.java
@Update("update user set name=#{name},address=#{address},age=#{age},sex=#{sex},phone=#{phone} where id =#{id}")
@Transactional
void updateById(User user);
启动服务器通过
http://localhost:8080/user并传递给他一个body就可以调用,如图
Postman软件:
进阶:delete删除数据(根据id删除)
同上在UserController,java添加
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable("id") long id){
userMapper.deleteById(id);
return "success";
}
在UserMapper.java
@Delete("delete from user where id = #{id}")
void deleteById(long id);
启动服务器通过
http://localhost:8080/user/{id}并传递给他一个body就可以调用,如图
Postman软件:
进阶:get(根据id查询)
同上在UserController,java添加
@GetMapping("/{id}")
public User findById(@PathVariable("id") long id){
return userMapper.findById(id);
}
在UserMapper.java
@Select("select * from user where id =#{id}")
User findById(long id);
启动服务器通过
http://localhost:8080/user/{id}并传递给他一个body就可以调用,如图
Postman软件:
改日补充