首页
资源库
留言板
站点统计
Search
1
[Java] @Data 注解 代码变得简洁
205 阅读
2
[Vue] Vue 使用ElementUI组件
162 阅读
3
[Java] 安装JDK8
131 阅读
4
[Java] 发送消息
122 阅读
5
[C语言] 游戏贪吃蛇
108 阅读
Tools
编程
C/C++
Java
mySQL
python
PHP
Vue
嵌入式系统编程
HTML
数据结构
TypeScript
登录
Search
标签搜索
Java
SpringBoot
数据结构
C/C++
mysql
Vue
tools
redis
游戏
TomCat
linux
arm
嵌入式系统
Mqtt
PHP
maven
图床
github
IDEA
jar
星如雨
累计撰写
48
篇文章
累计收到
2
条评论
首页
栏目
Tools
编程
C/C++
Java
mySQL
python
PHP
Vue
嵌入式系统编程
HTML
数据结构
TypeScript
页面
资源库
留言板
站点统计
搜索到
4
篇与
的结果
2023-02-14
[Java] mybatis-plus 联表查询
前言作为mybatis的增强工具,mybatis-plus的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直被大家所诟病。一旦遇到left join或right join的左右连接,手写上一大段的sql语句。mybatis-plus-join 介绍MyBatis-Plus-Join (简称 MPJ)是一个 MyBatis-Plus 的增强工具,在 MyBatis-Plus 的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑无感引入, 支持MP风格的查询, 您会MP就会MPJ, 无需额外的学习成本兼容MP的别名、逻辑删除、枚举列、TypeHandle列等特性支持注解形式一对一、一对多和连表查询形式的一对一和一对多代码托管github.com | gitee.com使用官方文档
2023年02月14日
81 阅读
0 评论
0 点赞
2022-04-24
[Java] SpringBoot redis 注解缓存数据库数据
在数据库中执行创建数据库以创建一个评论表为例创建数据库DROP DATABASE IF EXISTS `springbootdata`; CREATE DATABASE `springbootdata`;创建表CREATE TABLE `t_comment` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '评论id', `content` longtext COMMENT '评论内容', `author` varchar(200) DEFAULT NULL COMMENT '评论作者', `a_id` int(20) DEFAULT NULL COMMENT '关联的文章id', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;添加部分数据INSERT INTO `t_comment` VALUES ('1', '1', '1', '1'), ('2', '赞一个', 'tom', '1'), ('3', '很详细', 'kitty', '1'), ('4', '很好,非常详细', '张三', '1'), ('5', '很不错', '张杨', '2');SpringBoot 部分引入依赖 <dependencies> <!-- spring-boot-starter-web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 核心:自动配置的支持、日志、yaml解析等--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- 阿里巴巴解析json依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <!-- httpclient请求依赖--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> <!-- 爬虫+解析--> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.3</version> </dependency> <!-- junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- SpringBoot test--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> <scope>runtime</scope> </dependency> <!-- myBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <!-- alibaba 数据库池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.22</version> </dependency> <!-- jpa 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- 热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <!-- lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- 可视化接口API--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <!-- thymeleaf 模板--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- 文件下载依赖--> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <!-- Tomcat依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- Redis依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> </dependencies>配置redis# 配置MySQL数据库 数据库地址 用户名 密码 spring.datasource.url=jdbc:mysql://localhost:3306/springbootdata?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456 # 显示 jpa sql 语句 执行jpa 的时候会在控制台打印jpa 语句 spring.jpa.show-sql=true # 配置第三方数据库源 druid spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.initial-size=20 spring.datasource.druid.min-idle=10 spring.datasource.druid.max-active=100 # 配置 Redis spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= 创建 Discuss 实例Discuss// 使数据库数据映射到 对象 @Entity(name = "t_comment") // 序列化,作用使数据不会出现乱码情况 public class Discuss implements Serializable { /** * @Id 表示 某属性 在数据表中是 主键 * @GeneratedValue : 与 @Id 标注在同一个位置用于表示属性对应主键生成策略 * 生成策略 : * TABLE (使用一个特定的数据库表来保存主键) * SEQUENCE (不支持主键自增的数据库主键生成策略) * INDETITY (主键自增) * AUTO (JPA 自动选择前面三个合适的策略,[默认选项]) * */ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String content; private String author; /** * @Column : 对于属性和表字段不同时,使用 name 属性 将类属性 与 表字段属性对应 * */ @Column(name = "a_id") private Integer aId; // 省略 getter,setter 和 toString 方法 }创建 DiscussRepository 管理sql语句public interface DiscussRepository extends JpaRepository<Discuss, Integer> { // @Transactional 声明是一个事务,执行出错会回滚,控制事务 @Transactional @Modifying @Query(value = "update t_comment c set c.author=?1 where c.id=?2") public int updateDiscuss(String author,Integer id); }创建 DiscussService 缓存一些数据@Service public class DiscussService { // CommentRepository 继承自 JpaRepository 自带增删改查的方法 @Autowired private DiscussRepository discussRepository; // 通过id 查找 评论 // 缓存这个查询的结果,并以参数为缓存标识符(保证唯一) @Cacheable(cacheNames = "comment",unless = "#result==null") public Discuss findById(int id){ Optional<Discuss> discuss = discussRepository.findById(id); // 判断查询的类是否存在 当类存在时 则为 true if (discuss.isPresent()){ return discuss.get(); } return null; } // 更新评论 // 更新缓存,标识符为 评论id, result 表示评论 @CachePut(cacheNames = "comment",key = "#result.id") public Discuss updateDiscuss(Discuss discuss){ // 根据评论的 id 修改 author discussRepository.updateDiscuss(discuss.getAuthor(),discuss.getaId()); return discuss; } // 根据id 删除评论 // 清除缓存注解 @CacheEvict(cacheNames = "comment") public void deleteDiscuss(int discuss_id){ discussRepository.deleteById(discuss_id); } }创建 DiscussController 控制页面访问// 返回json格式字符串 @RestController public class DiscussController { // 注册组件 评论服务 @Autowired private DiscussService commentService; // 访问/get/id 可根据评论id 查找相对应的评论 // @PathVariable 自动映射 URL 绑定的占位符 {} @GetMapping("/get/{id}") public Discuss findById(@PathVariable("id") int comment_id){ Discuss discuss = commentService.findById(comment_id); return discuss; } @GetMapping("/update/{id}/{author}") public Discuss updateDiscuss(@PathVariable("id") int commet_id,@PathVariable("author") String author){ Discuss discuss = commentService.findById(commet_id); discuss.setAuthor(author); Discuss discuss1 = commentService.updateDiscuss(discuss); return discuss1; } @GetMapping("/delete/{id}") public void deleteDiscuss(@PathVariable("id") int comment_id){ commentService.deleteDiscuss(comment_id); } }运行结果{card-default label="提示" width="100%"}在浏览器中已经访问过http://127.0.0.1:8088/update/1/jerry,所以数据和刚插入的有所不同{/card-default}在浏览器中访问路径 http://127.0.0.1:8088/get/1控制台会输出redis 客户端也会进行缓存刷新浏览器,发现控制台不会再次输出sql语句更改访问路径信息http://127.0.0.1:8088/get/2redis 客户端会再次缓存数据
2022年04月24日
35 阅读
0 评论
0 点赞
2022-03-13
[mysql] mysql 安装
mysql 安装命令:`mysqld -installmysqld -install初始化 mysqlmysqld --initialize --console启动mysql 服务 net start mysqlnet start mysql停止mysql 服务net stop mysqlnet stop mysql
2022年03月13日
105 阅读
0 评论
0 点赞
2021-11-28
[mysql] 查询添加前后缀
mysql 查询添加前后缀正常查询-- 查询系统当前时间 SELECT NOW();结果 2021-08-31 14:14添加前缀select CONCAT("当前系统时间:",NOW());结果 当前系统时间:2021-08-31 14:14添加后缀select CONCAT(NOW(), ",今天事情做完了吗?");结果 2021-08-31 14:14,今天事情做完了吗?添加前缀和后缀select CONCAT("当前系统时间:",current_date,",今天事情做完了吗?");结果 当前系统时间:2021-08-31 14:14,今天事情做完了吗?
2021年11月28日
84 阅读
0 评论
0 点赞