1、SpringBoot结构
1.1基本结构
主启动类: SpringBootApplication
包: controller、service、mapper、config、entity
controller: 控制器
service: 服务类,为controller提供服务,内含Impl
mapper: 与数据库连接相关的类
entity: 实体类,通常是将数据库映射成java中的类
config: 配置类、
1.2 HelloController
通过浏览器访问HelloController中的方法
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello spring boot !";
}
}
几个注解
@ResponseBody:将返回值变为json
@RestController:@Controller + @ResponseBody+…
- 把类加入spring容器
- 将类标记为一个控制器
@RequestMappering(value=“/hello”,method=RequestMethod.Get),用来定义访问的地址,
@GetMapping(“/hello”) :Get请求
运行结果
通过localhost:8080成功运行
示例1
@GetMapping("/input")
public Integer getInput(@RequestParam("qiutian") Integer i) {
return i + 1;
}
@RequestParam(value=“qiutian”) :向前端请求参数,若有value值,则请求值名称为value的内容
运行结果:RequestParam()无value
运行结果:RequestParam(value=“qiutian”)
示例2
@PostMapping("/insertUser")
public User insertUser(@RequestBody User user) {
System.out.println(user);
return user;
}
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)并将其改为对应的类,而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
通过ApiPost进行Post请求测试,具体步骤如下:
1.新建接口
2.编写json测试
运行结果
控制器作用:
接受前端请求的参数,并将处理过后的值返回给前端。
全类名:包名+类名
IDEA生成getter、setter方法快捷键:Alt+Insert
@Data:自动配置类中的getter、setter等方法
2、MyBatis
2.1配置MyBatis、MySQL
向pom中添加MyBatis、MySQL
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
在配置文件中添加数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=数据库路径
spring.datasource.username=用户名
spring.datasource.password=密码
3、例子
3.1定义UserController来查询用户信息
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/getUserById")
public User getUserById(@RequestParam Integer id) {
return userMapper.getUserById(id);
}
@GetMapping("/getAllUser")
public List<User> getAllUser() {
return userMapper.getAllUser();
}
}
3.2建立mapper文件
在mapper包中创建与数据库联系的接口
接口中定义部分方法
@Mapper
public interface UserMapper {
//返回所有用户
List<User> getAllUser();
//根据id查询
User getUserById(@Param("id") Integer id);
}
3.3 在resource中建立mapper的xml文件
通过xml来实现mapper接口中的方法
1.将数据库数据与类进行映射
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="upc.c505.entity.User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="gender" property="gender"/>
</resultMap>
2.查询所有用户
<select id="getAllUser" resultMap="BaseResultMap">
select * from user
</select>
3.根据id查询
<select id="getUserById" resultMap="BaseResultMap">
select * from user where id = #{id}
</select>
将mapper与mapper.xml关联,配置如下:
mybatis-plus.mapper-locations=classpath*:/mapper/**.xml
在主启动类中添加注解
@MapperScan(basePackages = "com.mapper")
通过ApiPost测试
结果: