本人是一名物联网工程专业的学生,即将进入大三,写博客即是为了记录自己的学习历程,又希望能够帮助到很多和自己一样处于起步阶段的萌新。临渊羡鱼,不如退而结网。一起加油! 具体操作参考《SpringBoot 工程下使用 Mybatis “偷懒”工程(反向工程)》 注意:mysql版本问题:低版本的driver、url配置和8的不一样 service接口: service的实现: @Mapper 作用:mybatis 自动扫描数据持久层的映射文件及 DAO 接口的关系 注意:默认情况下,Mybatis 的 xml 映射文件不会编译到 target 的 class 目录下,所以我们需要在 pom.xml 文件中配置 resource 在 运 行 的 主 类 上 添 加 Mybatis 提供的注解:扫描数据持久层的 mapper 映谢配置文件,DAO 接口上就不用加@Mapper basePackages 通常指定到数据持久层包即可 在resources目录下新建目录mapper存放映射文件,将StudentMapper.xml文件移到resources/mapper目录下 在 application.properties 配置文件中指定映射文件的位置,这个配置只有接口和映射文件不在同一个包的情况下,才需要指定 Spring MVC 的注解,处理 http 请求 Spring 4 后新增注解,是@Controller 注解功能的增强是 如果一个 Controller 类添加了 用于返回字符串或 json 数据 RESTFUL是一种网络应用程序的设计风格和开发方式,基于 比如我们要访问一个 http 接口:https://localhost:8080/springboot?id=1021&name=yky @PathVariable:获取 url 中的数据 该注解是实现 RESTFul 最主要的一个注解 @PostMapping @DeleteMapping @PutMapping @GetMapping 增 post 请求、删 delete 请求、改 put 请求、查 get 请求 请求路径不要出现动词 分页、排序等操作,不需要使用斜杠传参数 一般传的参数不是数据库表的字段,可以不采用斜杠 实现
博客主页:https://blog.csdn.net/qq_44895397SpringBoot 集成 MyBatis
1、添加依赖
<!--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>
2、使用逆向工程生成对应的mapper文件(dao接口、xml映射文件)以及实体类
3、在 Springboot 的核心配置文件 application.properties 中配置数据源
#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
4、编写代码(控制层,service层,mapper层添加注解)
创建web 包并创建 StudentController
@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 包下创建 service 接口并编写代码
public interface StudentService { Student queryStudentById(Integer id); }
@Service public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Override public Student queryStudentById(Integer id) { Student student = studentMapper.selectByPrimaryKey(id); return student; } }
在 Mybatis 反向工程生成的StudentMapper 接口上加一个 @Mapper 注解
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
DAO 其它开发方式
@MapperScan
@SpringBootApplication @MapperScan("com.yky.springboot.mapper") public class Springbootdemo07Application { public static void main(String[] args) { SpringApplication.run(Springbootdemo07Application.class, args); } }
将接口和映射文件分开
# 指定 Mybatis 映射文件的路径 mybatis.mapper-locations=classpath:mapper/*.xml
SpringBoot 事务支持
@EnableTransactionManagement
开启事务支持(springboot是默认开启的,可以不用加此注解)@Transactional
即可SpringBoot 下的 SpringMVC
@Controller
@RestController
@Controller
与@ResponseBody
的组合注解
@RestController
,那么该 Controller 类下的所有方法都相当于添加了@ResponseBody 注解
对请求方式限制的注解
@RequestMapping
@GetMapping
只支持 Get 请求 Get 请求主要用于查询操作@PostMapping
只支持 Post 请求 Post 请求主要用户新增数据@PutMapping
只支持 Put 请求 Put 通常用于修改数据@DeleteMapping
只支持 Delete 请求通常用于删除数据//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 注解,通常删除数据时使用"; } }
SpringBoot 实现 RESTful
什么是RESTFul ?
HTTP
,可以使用XML格式
定义或JSON格式
定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
采用 RESTFul 风格则 http 地址为:https://localhost:8080/springboot/1001/ykySpring Boot 开发 RESTFul
@RequestMapping("/student/{stuid}/{stuname}") public Student selectStudentrestful(@PathVariable("stuid") Integer id, @PathVariable("stuname") String name){ Student student = studentService.queryStudentById(id); return student; }
请求冲突的问题
解决请求冲突
1、改路径
@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; }
2、改请求方式
接收和处理 Post 方式的请求
接收 delete 方式的请求,可以使用 GetMapping 代替
接收 put 方式的请求,可以用 PostMapping 代替
接收 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; }
RESTful 原则
例如:/boot/orders?page=1&sort=desc
SpringBoot 集成 Redis
1、添加redis的起步依赖
<!-- 加载 spring boot redis 包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2、配置核心配置文件
#redis的配置 spring.redis.port=6379 spring.redis.host=localhost #密码: #spring.redis.password=yky
3、使用springboot提供的操作redis的模板类
@Autowired private RedisTemplate<Object,Object> redisTemplate;
4、实体类序列化
Serializable
接口public class Student implements Serializable
启动redis服务
/** * 通过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网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算