本人是一名物联网工程专业的学生,即将进入大三,写博客即是为了记录自己的学习历程,又希望能够帮助到很多和自己一样处于起步阶段的萌新。临渊羡鱼,不如退而结网。一起加油!
博客主页:https://blog.csdn.net/qq_44895397
<!--MyBatis 整合 SpringBoot 的起步依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
<!--MySQL 的驱动依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
<mysql.version>8.0.19</mysql.version>
2. 指定驱动时就添加版本号
<!--mysql,mybatis--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.19</version> </dependency>
具体操作参考《SpringBoot 工程下使用 Mybatis “偷懒”工程(反向工程)》
注意:mysql版本问题:低版本的driver、url配置和8的不一样
#tomcat server.port=80 server.servlet.context-path=/ #mysql数据源 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=yky
@Controller //@RestController public class StudentController { @Autowired private StudentService studentService; @RequestMapping("/student.do") @ResponseBody public Student selectStudent(Integer id){ Student student = studentService.queryStudentById(id); return student; } }
service接口:
public interface StudentService { Student queryStudentById(Integer id); }
service的实现:
@Service public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Override public Student queryStudentById(Integer id) { Student student = studentMapper.selectByPrimaryKey(id); return student; } }
@Mapper 作用:mybatis 自动扫描数据持久层的映射文件及 DAO 接口的关系
注意:默认情况下,Mybatis 的 xml 映射文件不会编译到 target 的 class 目录下,所以我们需要在 pom.xml 文件中配置 resource
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
在 运 行 的 主 类 上 添 加
Mybatis 提供的注解:扫描数据持久层的 mapper 映谢配置文件,DAO 接口上就不用加@Mapper
basePackages 通常指定到数据持久层包即可
@SpringBootApplication @MapperScan("com.yky.springboot.mapper") public class Springbootdemo07Application { public static void main(String[] args) { SpringApplication.run(Springbootdemo07Application.class, args); } }
在resources目录下新建目录mapper存放映射文件,将StudentMapper.xml文件移到resources/mapper目录下
在 application.properties 配置文件中指定映射文件的位置,这个配置只有接口和映射文件不在同一个包的情况下,才需要指定
# 指定 Mybatis 映射文件的路径 mybatis.mapper-locations=classpath:mapper/*.xml
@EnableTransactionManagement
开启事务支持(springboot是默认开启的,可以不用加此注解)@Transactional
即可Spring MVC 的注解,处理 http 请求
Spring 4 后新增注解,是@Controller 注解功能的增强是 @Controller
与@ResponseBody
的组合注解
如果一个 Controller 类添加了@RestController
,那么该 Controller 类下的所有方法都相当于添加了@ResponseBody 注解
用于返回字符串或 json 数据
//RestController 注解相当于加了给方法加了@ResponseBody 注解,所以是不能跳转页面的, 只能返回字符串或者 json 数据 @RestController public class MVCController { @GetMapping(value = "/query") public String get() { return "@GetMapping 注解,通常查询时使用"; } @PostMapping(value = "/add") public String add() { return "@PostMapping 注解,通常新增时使用"; } @PutMapping(value = "/modify") public String modify() { return "@PutMapping 注解,通常更新数据时使用"; } @DeleteMapping(value = "/remove") public String remove() { return "@DeleteMapping 注解,通常删除数据时使用"; } }
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP
,可以使用XML格式
定义或JSON格式
定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
比如我们要访问一个 http 接口:https://localhost:8080/springboot?id=1021&name=yky
采用 RESTFul 风格则 http 地址为:https://localhost:8080/springboot/1001/yky
@PathVariable:获取 url 中的数据
该注解是实现 RESTFul 最主要的一个注解
@RequestMapping("/student/{stuid}/{stuname}") public Student selectStudentrestful(@PathVariable("stuid") Integer id, @PathVariable("stuname") String name){ Student student = studentService.queryStudentById(id); return student; }
@GetMapping("/student/{stuid}/class/{stuname}") public Student selectStudentrestful(@PathVariable("stuid") Integer id, @PathVariable("stuname") String name){ Student student = studentService.queryStudentById(id); return student; } @GetMapping("/student/class/{stuid}/{stuname}") public Student selectStudentrestful2(@PathVariable("stuid") Integer id, @PathVariable("stuname") String name){ Student student = studentService.queryStudentById(id); return student; }
@PostMapping
接收和处理 Post 方式的请求
@DeleteMapping
接收 delete 方式的请求,可以使用 GetMapping 代替
@PutMapping
接收 put 方式的请求,可以用 PostMapping 代替
@GetMapping
接收 get 方式的请求
@GetMapping("/student/{stuid}/{stuname}") public Student selectStudentrestful(@PathVariable("stuid") Integer id, @PathVariable("stuname") String name){ Student student = studentService.queryStudentById(id); return student; } @PostMapping("/student/{bookid}/{bookname}") public Student selectBookrestful(@PathVariable("bookid") Integer id, @PathVariable("bookname") String name){ Student student = studentService.queryStudentById(id); return student; }
增 post 请求、删 delete 请求、改 put 请求、查 get 请求
请求路径不要出现动词
分页、排序等操作,不需要使用斜杠传参数
例如:
/boot/orders?page=1&sort=desc
一般传的参数不是数据库表的字段,可以不采用斜杠
<!-- 加载 spring boot redis 包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
#redis的配置 spring.redis.port=6379 spring.redis.host=localhost #密码: #spring.redis.password=yky
@Autowired private RedisTemplate<Object,Object> redisTemplate;
实现Serializable
接口
public class Student implements Serializable
/** * 通过id查询学生,先在redis内部找, * 如果redis内没有就在数据库查, * 查找完成后返回并放入redis * @param id * @return */ @Override @Transactional public Student queryStudentById(Integer id) { Object stu = redisTemplate.opsForValue().get(id); if(stu != null){ return (Student)stu; } Student student = studentMapper.selectByPrimaryKey(id); redisTemplate.opsForValue().set(id,student); return student; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算