ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XD 08 - 09

2021-04-11 15:32:50  阅读:141  来源: 互联网

标签:Mapper service mapper redis 08 09 DB XD Redis


JPA: 老的数据库框架, 性能很不好, 不推荐使用.

Hiberante: ORM 框架

Mybatis: 互联网使用更多, 半 ORM.

集成 Mybatis

包:

model 或者 domain, 用来存放实体类. 是一堆 JavaBean.

mapper: 访问数据库的接口

service: 业务逻辑

步骤:

1. 添加相关依赖, 在 pom 文件中添加依赖.

 

 

2. 加入配置文件

 

 3. 启动类增加 mapper 扫描

@MapperScan("com.example.demo.mapper")

 

4. 开发 mapper (相当于其他框架的 DAO 层)

这部分有内容需要开发, 访问数据库的接口.

比如 insert: @Insert 是 Mybatis 的注解, 括号里写 sql 语句. SQL 语句中的 #{name} 等值是通过下边 int insert(User user) 的 User user 传进来的.

所以这个 name, phone 等名称必须要与 user 对象的属性名一一对应的.

 

 写 service:

也是先写一个 userService 的 interface, 然后在 service 内部创建一个 impl (implementation) 的包用来实现接口.

然后在包里创建一个类 UserServiceImpl implements UserService

在这个类中注入: userMapper:

@Autowired

private userMapper userMapper;

 

在 controller 中:

5. sql 脚本

创建表的脚本 

create table user_xd (
`id` int(11) UNSIGNED not null auto_increment,
`name` VARCHAR(128) DEFAULT null COMMENT '名称',
`phone` varchar(16) DEFAULT null COMMENT '手机',
`age` int(4) DEFAULT null COMMENT '年龄',
primary key(`id`)
);

Comments:

 

主流程 

controller -> service -> Mapper

其中, model 只是作为实体类, 将需要操作 DB 的 column 封装到对象中. (这样可以方便传递参数, 也可以方便返回 DB 结果)

具体代码: Controller:

 

具体代码: Service 接口 和 实现. (Mapper 只对 Service 负责, 不对外提供服务)

 

 

具体 Mapper: 如果有 xml 一般可能是因为写的 SQL 语句比较复杂, 所以单独写 SQL, 这个xml 只对 Mapper 负责.

 

具体 Model:

1. 与 DB 中的 table 意义对应的实体类. (只有 get, set 方法)

2. 也包括对外暴露的数据接口类, 数据库多表操作时, 个人理解这个肯定非常有用的.

 

说到底, 还是 DB 的操作, 在这个操作过程中:

Mapper 主要负责和 DB 打交道.

Service 主要根据逻辑, 然后调用 Mapper.

 

分布式事务处理: 一般用消息队列解决, RobbitMQ.

事务控制, 一般在 service 层做控制. 用注解是最方便的. 在 service 层的方法增加注解

@Transactional(Propagation=Propagation.REQUIRED) isolation 隔离级别, 如果不指定就会使用 DB 的隔离级别, isolation一般使用默认的就可以了

Propagation 是传播行为: REQUIRED 最常见的, 是需要事务的.

SpringBoot 整合 Redis

分布式缓存 Redis

https://try.redis.io/     测试小工具, 用来测试 redis 命令.

redis.conf 配置 redis

redis 本身有白名单限制. 不允许除本机外的访问, 如果想要访问, 需要把对方的 IP 地址配置到白名单里.

bind 192.168.1.101 192.168.1.102    类似这种

lsof -i:6379  可以查看这个端口是否被占用了. 这是一个 Linux 命令

1. 添加 Maven 依赖

 

2. 配置文件: application.yml / application.properties

下边很多都是默认值, 也可以不copy

 

 

简单的方式: 直接从 controller 调用 Redis, 用到了 StringRedisTemplate

下边的 JsonData 就是自己定义的, 对外的数据接口.

 

 

正常情况下, 应该用工具类封装对 Redis 的操作.

Redis 有 Desktop 工具: https://redisdesktop.com/download

RedisClient 类,  工具类: 对象转字符串, 字符串转对象

 

标签:Mapper,service,mapper,redis,08,09,DB,XD,Redis
来源: https://www.cnblogs.com/moveofgod/p/14644001.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有