SpringBoot3数据访问

编程入门 行业动态 更新时间:2024-10-27 09:46:38

SpringBoot3<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据访问"/>

SpringBoot3数据访问

SpringBoot3数据访问

SpringBoot整合 Spring、SpringMVC、MyBatis进行数据访问开发。

整合SSM场景

整合步骤

1、创建SSM整合项目

①数据库准备

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user`  (`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',`login_name` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '用户名称',`nick_name` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '用户昵称',`password` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '用户密码',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
INSERT INTO `t_user` VALUES (1, 'louie', '路易', '1a1a');

②场景导入,可以在创项目的时候进行选择

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.2</version>
</dependency>
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency>

③创建数据源

application.properties

#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/springboot
spring.datasource.username=root
spring.datasource.password=zkpk

④创建实体类TUser

package com.louis.bean;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** @author XRY* @date 2023年07月13日17:02*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TUser {private Long id;private String loginName;private String nickName;private String password;
}

⑤创建Mapper接口

public interface UserMapper {/*** 1、每个方法都在Mapper文件中有一个sql标签对应* 2、所有参数都应该用@Param进行签名,以后使用指定的名字在SQL中取值* @param id* @return*/TUser getUserById(@Param("id") Long id);
}

⑥创建Mapper.xml文件

在写Mapper时比较麻烦,可以在IDEA中安装MyBatisX插件,它可以生成xml。

MyBatis使用简介

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis//DTD Mapper 3.0//EN"".dtd">
<mapper namespace="com.louis.mapper.UserMapper"><resultMap id="BaseResultMap" type="com.louis.bean.TUser"><id property="id" column="id" jdbcType="BIGINT"/><result property="loginName" column="login_name" jdbcType="VARCHAR"/><result property="nickName" column="nick_name" jdbcType="VARCHAR"/><result property="password" column="password" jdbcType="VARCHAR"/></resultMap><sql id="Base_Column_List">id,login_name,nick_name,password</sql><select id="getUserById" resultType="com.louis.bean.TUser">select * from t_user where id = #{id}</select>
</mapper>

⑦mapper扫描设置

/*** 1、告诉MyBatis,扫描哪个包下的所有接口* 2、告诉MyBatis,每个接口的xml文件都在那里(使用配置)* mybatis.mapper-locations=classpath:/mapper/*.xml* 3、MyBatis自动关联绑定*/@MapperScan(basePackages = "com.louis.mapper.UserMapper")
@SpringBootApplication
public class Boot3SsmApplication {public static void main(String[] args) {SpringApplication.run(Boot3SsmApplication.class, args);}}

application.properties

#2、配置整合mybatis
mybatis.mapper-locations=classpath:/mapper/*.xml
#开启驼峰命名规则
mybatis.configuration.map-underscore-to-camel-case=true

⑧测试连接是否成功

UserController

@RestController
public class UserController {@AutowiredUserMapper userMapper;/*** 返回User的json数据* @param id* @return*/@GetMapping("/user/{id}")public TUser getUser(@PathVariable("id") Long id){TUser user = userMapper.getUserById(id);return user;}
}

SSM整合总结
①导入mybatis-spring-boot-starter
②配置数据源信息
③配置mybatis的mapper接口描述与xml映射文件扫描
④编写bean,mapper,生成xml,编写sql进行crud
⑤效果
a、所有sql写在xml中
b、所有mybatis配置写在application.properties下面

2、自动配置原理

jdbc场景的自动配置:配置了数据源等基本信息
mybatis-spring-boot-starter导入spring-boot-starter-jdbc,jdbc是操作数据库的场景
jdbc场景的几个自动配置

org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
//数据源的自动配置,所有与数据源有关的配置都绑定在`DataSourceProperties`
//默认使用`HikariDataSource`
org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration
//基于XA二阶提交协议的分布式事务数据源
org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
//数据源事务管理器

具有的底层能力:数据源、jdbcTemplate、事务
MyBatisAutConfiguration:配置了MyBatis的整合流程

mybatis-spring-boot-starter导入了mybatis-spring-boot-autoconfigure默认加载两个自动配置类

org.mybatis.spring.boot.autoconfigure.MybatisLanguageDriverAutoConfiguration
org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration
//MyBatis的所有配置邦定在`MybatisProperties`,必须在数据源配置号之后才配置
//给容器中放`SqlSessionFactory`组件,创建和数据库的一次会话
//给容器中放了`SqlSessionTemplate`组件。操作数据库
小贴士

如何分析场景导入后,开启了那些自动配置类?

方式一:
找classpath:/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中配置的所有值,就是要开启的自动配置类,但是每个类可能有条件注解,基于条件注解判断哪个类生效。
方式二:
在application.properties中添加配置debug=true,在控制台可以查看类是否导入。
生效:

未生效:

更多推荐

SpringBoot3数据访问

本文发布于:2023-11-15 05:30:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1594501.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!