Java Study!! - SpringBoot3
type: channel
link: https://www.kaijavademo.top/tag/SpringBoot3/
items: SpringBoot3笔记：数据访问|基础特性|场景整合
items: SpringBoot3笔记：快速搭建|核心流程总结|Web开发

SpringBoot3笔记：数据访问|基础特性|场景整合
type: item
date: 2023-10-25T09:24:00+00:00
description: 在有了Web开发的前提下，如果对数据访问场景进行开发，那么就是一个非常完整的业务流程了。通过SpringBoot整合SSM使用 [label color="green"]Spring Initializr[/label] 创建向导快速构建boot工程。以后使用这样的方式。在向导中勾选对应需要的启动器，比如新版的数据库驱动、mybatis场景、web场景...SpringBoot整合MyBatis在 [label color="green"]application.properties[/label] 中配置对应的基本数据源参数#1.三大框架整合，最先配置数据源信息 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.zaxxer.hikari.HikariDataSource #配置对应的数据库信息 spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username= spring.datasource.password=继续在此文件中，配置整合MyBatis。在启动类的子包创建Bean包，添加对应Bean类和@Data注解，根据对应的数据库，来封装表的数据。在启动类的子包创建Mapper包，添加一个接口，用来查表数据的，与此还需要有一个XML文件与之对应。在resources(类路径)创建一个mapper包，用来存放XML文件。单机UserMapper接口类使用插件快速创建XML文件。安装MyBatisX插件，帮我们生成Mapper接口的XML文件即可。我们在Mapper接口中书写方法，使用 [label color="red"]alt + enter[/label] 快速识别生成XML标签，我们需要手动在标签体书写对应的SQL语句。为了方便传参(#{})，我们需要在对应的接口形参位置添加 [label color="pink"]@Param("")[/label] 注解。UserMapper接口/** * @author: TangZhiKai * @create: 2023-10-25 15:38 * @description: 接口，用来查t_user表数据的，还需要有个xml文件与之对应 **/ public interface UserMapper { /** * 1.每个方法都在Mapper文件中有一个SQL标签对应， * 2.所有参数都应该用@Param进行签名，以后使用指定的名字在SQL中取值 * @param id * @return */ //使用插件给形参添加@Param注解，以后XML文件中就用 #{}来取,这是一个良好的习惯 public TUser getUserById(@Param("id") Long id); }启动类中添加注解@MapperScan/** * 1.使用@MapperScan 告诉MyBatis，扫描哪个包下面的所有接口 * 2.通过properties文件配置配置项，使用mybatis.mapper-locations告诉MyBatis，每个接口的XML文件都在哪里。 * 3.MyBatis自动关联绑定 */ @MapperScan(basePackages = "com.atguigu.boot3.ssm.mapper") @SpringBootApplication public class Boot305SsmApplication { public static void main(String[] args) { SpringApplication.run(Boot305SsmApplication.class, args); } }修改配置文件配置文件properties中需要指定，扫描类路径下对应的包文件 mybatis.mapper-locations=classpath:/mapper/*.xml 那么实际上就会从当前包中寻找XML文件，然后对应再文件的命名空间，在找到实际的Mapper接口。实现接口和XML文件的关联。打开对应的驼峰命名规则，这样可以不用在SQL中起别名。# 2.配置整合MyBatis #指定接口的XML文件为类路径下mapper中的所有文件 mybatis.mapper-locations=classpath:/mapper/*.xml #开启驼峰命名规则 mybatis.configuration.map-underscore-to-camel-case=true写Controller、(Service）测试/** …

SpringBoot3笔记：快速搭建|核心流程总结|Web开发
type: item
date: 2023-10-01T08:19:00+00:00
description: 基于JDK17 + SpringBoot3的入门笔记，快速搭建 + 常用注解[video title="快速搭建 " url="https://img.kaijavademo.top/typecho/uploads/2023/10/videos/%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BA.mkv " container="beu1prgsiin" subtitle=" " poster=" "] [/video]常用注解[video title="常用注解 " url="https://img.kaijavademo.top/typecho/uploads/2023/10/videos/%E5%B8%B8%E7%94%A8%E6%B3%A8%E8%A7%A3.mkv " container="baqik9157t" subtitle=" " poster=" "] [/video]/** * @author: TangZhiKai * @create: 2023-09-30 17:24 * @description: 配置类 **/ @Import(FastsqlException.class) //导入第三方类进入IoC容器，给容器中放指定类型的组件，组件的名字默认是全类名 @SpringBootConfiguration //这是一个配置类，替代以前的配置文件.配置类本身也是容器中的组件 //@Configuration //这是一个配置类，替代以前的配置文件.配置类本身也是容器中的组件 public class AppConfig { /** * 1.组件默认是单实例的 * @return */ @Scope("prototype") //可以修改为多实例 @Bean("userHaha") //替代以前的Bean标签.组件在容器中的名字默认是方法名 //可以直接修改注解的值在Bean标签中 public User user(){ User user = new User(); user.setId(1L); user.setName("张三"); return user; } /*@Bean public FastsqlException fastsqlException(){ return new FastsqlException(); }*/ } 条件注解如果注解指定的条件成立，则触发指定行为@ConditionalOnClass：如果类路径中存在这个类，则触发指定行为@ConditionalOnMissingClass：如果类路径中不存在这个类，则触发指定行为@ConditionalOnBean：如果容器中存在这个Bean(组件)，则触发指定行为@ConditionalOnMissingBean：如果容器中不存在这个Bean(组件)，则触发指定行为....//@ConditionalOnClass可以直接标到类上，当系统中存在这个类，以下所有东西全部生效 //放在类级别，如果注解判断生效，则整个配置类才生效 @ConditionalOnClass(name = "com.alibaba.druid.FastsqlException") @SpringBootConfiguration public class AppConfig2 { //当类路径中存在这个FastsqlException类，则生效 //放在方法级别，只是单独对这个方法进行注解判断 @ConditionalOnClass(name = "com.alibaba.druid.FastsqlException") @Bean public Cat cat01() { return new Cat(); } @ConditionalOnMissingClass(value = "com.alibaba.druid.FastsqlException") @Bean public Dog dog01() { return new Dog(); } //当容器中有dog的对象，就向容器中添加一个张三 @ConditionalOnBean(value = Dog.class) @Bean public User zhangsan() { return new User(); } //当容器中没有dog对象，就向容器中添加一个李四 @ConditionalOnMissingBean(value = Dog.class) @Bean public User lisi() { return new User(); } }属性绑定将容器中任意组件(Bean)的属性值和配置文件的配置项进行绑定@ConfigurationProperties…