根据CREATE TABLE tb_dic ( id int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id', name vCREATEarchar(255) DEFAULT NULL COMMENT '数据项名称', other_name1 varchar(255) DEFAULT NULL COMMENT '数据项别名1', other_name2 varchar(255) DEFAULT NULL COMMENT '数据项别名2', detail varchar(255) DEFAULT NULL COMMENT '详细描述', type_id int(11) DEFAULT NULL COMMENT '类别id', order varchar(255) DEFAULT NULL COMMENT '排序', valid int(11) DEFAULT NULL COMMENT '是否有效', PRIMARY KEY (id) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='字典表'; 生成基于Springboot 字典缓存
时间: 2023-08-10 12:08:10 浏览: 103
python mysql自增字段AUTO_INCREMENT值的修改方式
可以按照以下步骤生成基于Spring Boot的字典缓存:
1. 在Spring Boot项目中添加MySQL数据库的依赖,例如:
```xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
```
2. 定义一个DictionaryItem类来表示字典项,例如:
```java
public class DictionaryItem {
private int id;
private String name;
private String otherName1;
private String otherName2;
private String detail;
private int typeId;
private String order;
private int valid;
// getters/setters
}
```
3. 在application.properties文件中添加MySQL数据库的配置信息,例如:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```
4. 创建一个DictionaryItemRepository接口,继承JpaRepository接口,用于操作字典表,例如:
```java
public interface DictionaryItemRepository extends JpaRepository<DictionaryItem, Integer> {
// 查询所有字典项
List<DictionaryItem> findAll();
// 根据id查询字典项
DictionaryItem findById(int id);
// 根据typeId查询字典项
List<DictionaryItem> findByTypeId(int typeId);
}
```
5. 创建一个DictionaryCache类,用于初始化字典缓存,并提供查询字典项的方法,例如:
```java
@Component
public class DictionaryCache {
private static Map<Integer, DictionaryItem> dictionaryCache = new ConcurrentHashMap<>();
@Autowired
private DictionaryItemRepository dictionaryItemRepository;
@PostConstruct
public void init() {
List<DictionaryItem> itemList = dictionaryItemRepository.findAll();
for (DictionaryItem item : itemList) {
dictionaryCache.put(item.getId(), item);
}
}
public DictionaryItem getItemById(int id) {
return dictionaryCache.get(id);
}
public List<DictionaryItem> getItemsByTypeId(int typeId) {
List<DictionaryItem> itemList = new ArrayList<>();
for (DictionaryItem item : dictionaryCache.values()) {
if (item.getTypeId() == typeId) {
itemList.add(item);
}
}
return itemList;
}
}
```
6. 在需要使用字典缓存的地方注入DictionaryCache类,并调用其提供的查询方法即可,例如:
```java
@Service
public class MyService {
@Autowired
private DictionaryCache dictionaryCache;
public void doSomething() {
DictionaryItem item = dictionaryCache.getItemById(1);
List<DictionaryItem> itemList = dictionaryCache.getItemsByTypeId(2);
// 其他操作
}
}
```
通过上述步骤,就可以在Spring Boot项目中生成基于MySQL数据库的字典缓存。
阅读全文