mybatas

本文深入解析MyBatis框架,介绍其作为一流Java持久层框架的优势,包括自定义SQL、存储过程支持及高级映射特性。通过XML或注释配置,MyBatis简化了JDBC代码,消除了参数设置和结果检索的复杂性,让开发者专注于SQL语句本身。文章还详细讲解了DAO层概念,核心配置文件sqlMapConfig.xml的作用,以及如何使用select、insert、delete、update标签进行数据库操作。

mybatas

mybatas:基础

​ 1. MyBatis 是一流的java 的持久层框架 支持自定义 SQL、存储过程和高级映射 他内部封装了jdbc 是开发者只需要关注SOL语句本身,而不是花费精力去处理 加载驱动, 创建连接 创建执行着等复杂的操作

MyBatis 消除了几乎所有 JDBC 代码和参数手动设置和结果检索。MyBatis 可以使用简单的 XML 或注释进行配置,并将基元、映射接口和 Java POJOs映射到数据库记录。

​ 2 .DAO层,用于处理数据库

​ 核心配置文件 sqlMapConfig.xml

​ 增删改查的标签,用于指定某个操作的sql语句
​ select、insert、delete、update标签

select;查询功能的标签 id属性:唯一标识 rusultType 指定结果映射对象类型 `parameterType指定参数映射对象类型

<!-- mapper 引入指定的映射配置文件   resource属性指定映射配置文件的名称 --
增删改查看

添加修改需要创建一个 有参构造 模板;

Student stu = new Student(4, “周七”, 27);

int result = sqlSession.insert(“StudentMapper.insert”, stu);

Student stu = new Student(4, “小红”, 37);

int result = sqlSession.update(“StudentMapper.update”, stu);

查询所有 或者id查询 需要 List list = sqlSession.selectList(“StudentMapper.selectById”, 3);

删除 int result = sqlSession.delete(“StudentMapper.delete”,4);

备注 数据库连接电脑 localhost

### @DS 注解的作用与使用场景 `@DS` 是由 MyBatas-Plus 提供的一个动态数据源切换注解,主要用于在多数据源环境中灵活地切换不同的数据库连接[^2]。通过此注解,开发者可以在运行时指定某个方法或类所使用的具体数据源,从而满足复杂业务场景下的需求。 #### 1. 基本概念 当应用程序需要同时访问多个数据库实例时(例如主从分离架构),仅依靠单一的数据源配置显然无法满足要求。此时就可以借助 `@DS` 来实现动态切换目标数据源的目的。 - **作用范围** - 如果将 `@DS` 放置于类级别,则整个类中的所有方法都会默认使用该注解指定的数据源。 - 若将其应用于单个方法之上,则只有这个特定的方法会按照设定好的规则去改变当前线程绑定的数据源。 - **参数说明** - 参数为字符串类型,表示目标数据源的名字。这个名字通常是在全局配置文件里预先定义好了的键名。 ```java @Service @DS("slave_db") // 整个服务都指向名为 'slave_db' 的数据源 public class SlaveDataService extends ServiceImpl<SlaveDataMapper, SlaveData> { public List<SlaveData> fetchAllRecords(){ return this.list(); } @DS("master_db") // 覆盖类级别的设置,临时切换到 'master_db' public void saveRecord(SlaveData record){ this.save(record); } } ``` #### 2. 使用条件 为了能够正常使用 `@DS` 注解来进行数据源之间的转换,首先得确保已经完成了必要的前期准备工作: - 引入相关依赖库; - 配置好各个可用的数据源信息; - 初始化动态数据源管理组件; ##### (1)Maven 依赖导入 确认项目的 pom.xml 文件中有包含如下片段: ```xml <!-- mybatis-plus 动态数据源支持 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.5.0</version> </dependency> ``` ##### (2)application.yml/yml 数据源配置样例 ```yaml spring: datasource: dynamic: primary: master_ds # 设置默认数据源为主库(master_ds) strict: false # 是否严格匹配数据源名称,默认false允许不存在的数据源不报错 datasource: master_ds: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/master_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: root password: 123456 slave_ds_1: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3307/slave_database_1?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: user1 password: abcdefg slave_ds_2: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3308/slave_database_2?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: user2 password: hijklmn ``` ##### (3)启动类开启扫描并注册动态数据源功能 最后还需保证 Spring Boot 启动类上有相应的注解来激活自动装配机制: ```java @SpringBootApplication @EnableDynamicDataSourceProxy // 开启动态代理模式 public class ApplicationStarter { public static void main(String[] args) throws Exception{ SpringApplication.run(ApplicationStarter.class,args); } } ``` --- ### 总结 综上所述,`@DS` 注解作为 MyBatis-Plus 生态体系内的一个重要特性,极大地增强了系统应对多样化存储结构的能力。合理运用它可以有效降低硬编码带来的维护成本,并且提高了代码复用性和灵活性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值