项目技巧二

devtools/2024/10/20 23:33:50/

目录

mysql%E6%95%B0%E6%8D%AE%E5%BA%93datetime%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%C2%A0-toc" style="margin-left:0px;">java中Date和mysql数据库datetime数据类型 

注意:

在yml文件中配置成员变量的值

1.写一个yml文件 

 2.写一个与yml相互映射的类来读取yml的属性信息

3.在其他子模块的配置类中开启此类,读取yml文件的内容信息

4.直接依赖注入(因为已经交给spring管理),再使用 List mcodes = stockInfoConfig.getInner();

直接推送git

实体对象说明

1.pojo

2.domain

3.entity

4.vo-->value object对象

5.vo-->view object对象


mysql%E6%95%B0%E6%8D%AE%E5%BA%93datetime%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%C2%A0">java中Date和mysql数据库datetime数据类型 

  1. 数据库中的 datetime 类型

    • 大多数关系型数据库(如 MySQL, SQL Server, PostgreSQL 等)都提供了 datetime 类型,用于存储日期和时间信息。
    • 这些数据库中的 datetime 类型通常遵循 ISO 8601 标准,能够存储从 '0001-01-01 00:00:00' 到 '9999-12-31 23:59:59' 的日期和时间。
    • 具体的精度和存储方式可能因数据库系统的不同而有所差异。
  2. Java 中的 Date 类型

    • Java 的 java.util.Date 类代表一个特定的瞬间,精确到毫秒。
    • Date 对象包含从“标准基准时间”(即格林威治时间 1970 年 1 月 1 日 00:00:00)至今的毫秒数。
    • Date 类本身不包含时区信息,它只是表示一个时间点。

注意:

1.我们可以直接使用Date数据类型来与datetime数据类型直接比较,如

where datetime = Date 

2.从数据库查询datetime数据类型时,会直接得到一个Date数据类型

3.将Date数据类型插入数据库时,需要把Date数据类型转换成特定格式的时间String数据类型才能插入数据库

如:特定string数据类型格式为 "yyyy-MM-dd HH:mm:ss" 

在yml文件中配置成员变量的值

1.写一个yml文件 

# 配置股票相关的参数
stock:inner:   #A股- sh000001 # 上证ID- sz399001 #  深证IDouter: # 外盘- int_dji # 道琼斯- int_nasdaq # 纳斯达克- int_hangseng # 恒生- int_nikkei # 日经指数- b_FSSTI # 新加坡

 2.写一个与yml相互映射的类来读取yml的属性信息

注意:属性名字必须与yml文件中的属性一致

在这个类中我们没有把它交给Spring管理,即还没有进行加载,没有映射

@Data
@ConfigurationProperties(prefix = "stock")//映射yml文件中stock属性的值
//@Component//直接让其交给spring管理,TODO:我们不使用(不让它自己开启),我们让其他要使用该类的子模块来开启
public class StockInfoConfig {public List<String>inner;//国内大盘编码public List<String>outer;//国外大盘编码
}

3.在其他子模块的配置类中开启此类,读取yml文件的内容信息

使用@EnableConfigurationProperties,让这个子模块开启加载此配置类,并让它映射yml文件中的stock属性的值,再交给spring管理

@Configuration
@EnableConfigurationProperties(StockInfoConfig.class)//TODO:在这个子模块开启加载此配置类,并让它映射yml文件中的stock属性的值,再交给spring管理
public class CommonConfig {
}

4.直接依赖注入(因为已经交给spring管理),再使用 List<String> mcodes = stockInfoConfig.getInner();

@Service
@Slf4j
public class StockServiceImpl implements StockService {@Autowiredprivate StockInfoConfig stockInfoConfig;@Autowiredprivate StockMarketIndexInfoMapper stockMarketIndexInfoMapper;@Overridepublic R<List<InnerMarketDomain>> getInnerMarket() {//1.获取当前时间的最新交易点(精确到分钟,秒和毫秒置为0)//Date curDate = DateTimeUtil.getLastDate4Stock(DateTime.now()).toDate();Date curDate = MyDateTimeUtil.getLateDate4Stock(DateTime.now()).toDate();//mock data 等后续股票采集job工程完成,再将此代码删除//curDate=DateTime.parse("2021-12-28 09:31:00", DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")).toDate();//log.info("curDate:{}",curDate);//2.获取国内大盘的编码集合List<String> mcodes = stockInfoConfig.getInner();//3.调用mapper进行查询List<InnerMarketDomain> data=stockMarketIndexInfoMapper.getInnerMarket(curDate,mcodes);//4.返回数据return R.ok(data);}
}
List<InnerMarketDomain> getInnerMarket(@Param("curDate") Date curDate, @Param("marketCodes") List<String> marketCodes);
 <select id="getBlock4Ten" resultType="com.hhh.stock.pojo.domain.BlockDomain">select company_num as companyNum,trade_amount as tradeAmt,label as code,avg_price as avgPrice,block_name as name,cur_time as curDate,trade_volume as tradeVol,updown_rate as updownRatefrom stock_block_rt_infowhere cur_time=#{curDate}order by trade_volume desc limit 10;</select>

cur_time是datetime类型,curDate是Date类型,datetime类型可以直接和Date类型进行比较,datetime查询出来的数据类型也是Date,但是Date数据类型要存入数据库时,必须设置成指定时间格式的string类型进行存入数据库

@Data
@ApiModel(description = "大盘数据")
public class InnerMarketDomain {@ApiModelProperty("大盘编码")private String code;//大盘编码@ApiModelProperty("指数名称")private String name;//指数名称@ApiModelProperty("开盘点")private BigDecimal openPoint;//开盘点@ApiModelProperty("当前点")private BigDecimal curPoint;//当前点@ApiModelProperty("前收盘点")private BigDecimal preClosePoint;//前收盘点@ApiModelProperty("交易量")private Long tradeAmt;//交易量@ApiModelProperty("交易金额")private Long tradeVol;//交易金额@ApiModelProperty("涨跌值")private BigDecimal upDown;//涨跌值@ApiModelProperty("涨幅")private BigDecimal rose;//涨幅@ApiModelProperty("振幅")private BigDecimal amplitude;//振幅@ApiModelProperty("当前时间")@JsonFormat(pattern = "yyyy-MM-dd HH:mm")//设置返回前端的时间格式private Date curTime;//当前时间
}

结果:

直接推送git

 git push origin master --force

实体对象说明

1.pojo

java普通对象,范围比较大,本质上就是一个数据容器,且无需提供复杂的方法(只需有get set方法)

2.domain

领域对象,就是将某个业务方向的数据加以封装成的对象,比如:以数据库为例子,该类的数据可能来自多张表的字段,或者单张表的某系字段

3.entity

数据库表字段一一对应的实体对象

4.vo-->value object对象

就是保存值的对象,内置的属性是与yml文件相互映射保存数据的(使用@ConfigurationProperties),等到要使用的时候直接使用@EnableConfigurationProperties注解来开始让使用了@ConfigurationProperties注解的类映射yml文件属性内容,然后交给spring管理。

5.vo-->view object对象

就是与前端交互的数据对象

注意:domian包下的类是直接与数据库交互直接进行赋值,而view object是与前端进行交互的,通过domain或者entity进行赋值


http://www.ppmy.cn/devtools/104175.html

相关文章

数值积分:常用数值积分方法

数值分析(也称计算方法)主要包括数值逼近、数值线性代数、微分方程数值求解等内容。在前面的博文中&#xff0c;已对数值线性代数做了部分介绍&#xff1b;至于微分方程数值求解&#xff0c;可以结合计算流体力学、计算固体力学、计算电磁学等进行研习&#xff0c;笔者前面也有…

网络路由介绍,route指令,查询路由表的过程,默认路由

目录 路由 本地主机的路由功能 引入 route指令 查询路由表的过程 介绍 示例 默认路由 注意 路由 本地主机的路由功能 引入 报文经过多个路由器转发至公网,再从公网定位后转发至私网,最终到达目标主机 而报文肯定是要先经过本地主机的 所以本地主机也具有路由功能,也…

数据结构与算法——Java实现 3.二分查找——Java版

放下不切实际的幻想&#xff0c;放下无法更改的过去&#xff0c;行云流水&#xff0c;任其行之 —— 24.8.31 一、二分查找——Java基础版 Java中的API——Arrays.binarySearch(数组&#xff0c;目标值) 返回的结果是插入点的位置 若在目标数组中找不到元素&#xff0c;则返…

Java经典框架之MyBatis

一、基本介绍 MyBatis 是一个非常流行的 Java 持久层框架&#xff0c;它提供了简单的方法来处理数据库中的数据。MyBatis 可以看作是 JDBC 的一个薄封装&#xff0c;它简化了 JDBC 代码的编写&#xff0c;同时提供了强大的功能&#xff0c;如动态 SQL、映射自定义对象到数据库记…

【PLL】为什么 环路带宽是参考频率的1/10

原因 由于PLL离散时间特性&#xff0c;考虑锁相环的稳定性&#xff0c;环路带宽受到限制&#xff0c;最多为参考频率的1/20~1/10 鉴相器会定时进行对 参考输入和分频器输出之间的相位差进行比较因此&#xff0c;鉴相器是一个在参考频率下工作的离散时间模块这意味着环路带宽被限…

【栈】| 力扣高频题: 基本计算器二

&#x1f397;️ 主页&#xff1a;小夜时雨 &#x1f397;️专栏&#xff1a;算法题 &#x1f397;️如何活着&#xff0c;是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/basic-calculator-ii/description/ (可点击) 本道题是栈…

日常刷题(24)

1. 拼接最大数 1.1. 题目描述 给你两个整数数组 nums1 和 nums2&#xff0c;它们的长度分别为 m 和 n。数组 nums1 和 nums2 分别代表两个数各位上的数字。同时你也会得到一个整数 k。 请你利用这两个数组中的数字中创建一个长度为 k < m n 的最大数&#xff0c;在这个必…

力扣1425.带限制的子序列和

力扣1425.带限制的子序列和 单调队列优化dp f[i] 表示在数组的前 i 个数中进行选择&#xff0c;并且恰好选择了第 i 个数&#xff0c;可以得到的最大和状态转移&#xff1a;f[i] max(max(f[j]) , 0) nums[i];单调队列优化&#xff1a;储存前K个f[i]&#xff0c;并且单调&…