当前位置: 首页 > news >正文

上海人才网官网站首页nba最新消息新闻报道

上海人才网官网站首页,nba最新消息新闻报道,笑话网站域名,黄岛网站制作目录 一、说明二、代码示例2.1 pom依赖2.2 示例代码2.3 实体类 三、示例截图 一、说明 1.针对于读多写少的情况 2.先查缓存&#xff0c;没有再去查库 二、代码示例 2.1 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"h…

目录

        • 一、说明
        • 二、代码示例
          • 2.1 pom依赖
          • 2.2 示例代码
          • 2.3 实体类
        • 三、示例截图

一、说明

  • 1.针对于读多写少的情况
  • 2.先查缓存,没有再去查库

二、代码示例

2.1 pom依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.learning</groupId><artifactId>jdbc</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.21</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.26</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.16</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.26</version></dependency></dependencies>
</project>
2.2 示例代码
package com.learning;import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.cache.CacheKey;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantReadWriteLock;public class DataCache {private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock();private Map<CacheKey, Object> map = new HashMap<>();private static DruidDataSource druidDataSource = new DruidDataSource();private static JdbcTemplate jdbcTemplate;static {druidDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true");druidDataSource.setUsername("root");druidDataSource.setPassword("root");jdbcTemplate = new JdbcTemplate(druidDataSource);}public <T> T queryOne(Class<T> beanClass, String sql, Object... args){// 从缓存中查找,找到则直接返回CacheKey key = new CacheKey(new Object[]{sql, args});reentrantReadWriteLock.readLock().lock();try{T value = (T)map.get(key);if(value != null){return value;}}finally{reentrantReadWriteLock.readLock().unlock();}reentrantReadWriteLock.writeLock().lock();try{// 多个线程,再获取一遍,检查一下,是否有线程写入成功了T value = (T) map.get(key);if(value == null){// 缓存中没有,查询数据库value = queryDatabase(beanClass, sql, args);map.put(key, value);}return value;}finally {reentrantReadWriteLock.writeLock().unlock();}}private <T> T queryDatabase(Class<T> beanClass, String sql, Object[] args) {BeanPropertyRowMapper beanPropertyRowMapper = new BeanPropertyRowMapper<T>();beanPropertyRowMapper.setMappedClass(beanClass);System.out.println("sql:"+sql);List<T> list = jdbcTemplate.query(sql, args, beanPropertyRowMapper);return list.get(0);}public static void main(String[] args) {DataCache dataCache = new DataCache();String sql = "select * from student where id = ?";Object[] param = new Object[]{1};for (int i = 0; i < 10; i++) {new Thread(()->{Student student = dataCache.queryOne(Student.class, sql, param);System.out.println(student);;}).start();}}
}
2.3 实体类
package com.learning;import lombok.Data;@Data
public class Student {private String id;private String name;private int age;
}

三、示例截图

在这里插入图片描述

http://www.hengruixuexiao.com/news/31649.html

相关文章:

  • 做网站都需要租服务器吗中国进入一级战备状态了吗
  • 做网站有什么优势北京网站seo服务
  • 成都装修设计公司排名深圳谷歌seo推广
  • 做的比较早的海淘网站今日新闻国内大事件
  • 做网站需要什么东西网络推广关键词优化公司
  • 制作网站基本步骤百度sem推广
  • 中国电信 网站备案百度推广竞价技巧
  • 360浏览器打开是2345网址导航seo网络营销推广公司
  • wordpress后台登陆很慢资源优化排名网站
  • 网站建设一般要多钱百度的关键词优化
  • 泉州网站建设报价域名备案官网
  • 成都注册网站公司怎么样推广自己的公司
  • 电子上网站开发怎么做互联网营销推广
  • 如何做贷款网站推广网络营销公司名字
  • 个人网站如何做淘客网站中国新闻网最新消息
  • 页面设计美工上海优质网站seo有哪些
  • 怎么做外链泰州seo公司
  • 搜房网站建设分析推广方案怎么写
  • 我有域名怎么做网站今日最新的新闻
  • 淄博桓台网站建设方案百度购物平台客服电话
  • wordpress 混合移动appseo站长优化工具
  • 江苏做网站查询百度关键词排名
  • 免费做图素材网站手机百度如何发布广告
  • 多商户商城系统源码专业网站优化推广
  • 看想看的做想做的电影网站好自己做网站设计制作
  • 网站备案医疗保健审批号是什么上海企业seo
  • 山东网站优化推广国际军事新闻最新消息视频
  • 怎么在百度搜索到我的网站北京网络营销推广
  • 海南做网站的技术公司seo关键字优化教程
  • 云南网站开发建设广东seo网络培训