- .Net Core ef 多表关联查询
蓝晶之心
.Net
EF多表关联查询,需要查询出关联表的信息,需用到include方法,以查询数据列表为例,代码如下//////获取数据列表//////排序条件///查询条件///排序方式///关联表///publicListGetList(Expression>orderExp,Expression>expression=null,stringorderBy="desc",string[]includes=null
- MySQL中指定字段的某个值排在前面
爪哇天下
Mysql原理mysql数据库
一需求如果我们想讲表中指定的字段的某一个值排序在最前面应该如何处理?二实现方式方法1、使用或者<(小于符号)>(大于符号)ORDERBY字段名A<>对应值,字段BDESC;方法2、使用casewhenthenelseendORDERBY(CASEWHEN字段A='字段值'THEN1ELSE2END),字段BDESC;这个可以做指定值排序(按照字段A的值为1,2,3,4依次排序)方法3:
- sql语句(ORDER BY)
田里插秧
Mysqlsql数据库
ORDERBY子句在SQL语句中用于指定根据一个或多个列对结果集进行排序的顺序。以下是一些使用ORDERBY子句的不同示例,展示了其在不同场景下的应用。示例1:单列升序排序选取所有员工信息,并按Salary升序排列。SELECT*FROMEmployeesORDERBYSalaryASC;这里,ASC关键字表示升序排序,是默认的排序方式,因此即使省略它,结果也会是一样的。示例2:单列降序排序选取所
- 【SQL教程|06】sql中order by用法示例
AwesomeTang
SQL必知必会sql数据库数据分析
SQL中的ORDERBY语句教程1.基本语法ORDERBY用于对结果集按指定顺序排列。其基本语法如下:SELECT[column_name][ASC|DESC]FROMtable_nameORDERBY[field_name][ASC|DESC][,field_name[ASC|DESC]]*;ASC:升序,默认情况下为升序。DESC:降序。可以按多个字段进行排序,后一个字段的排序会影响前一个字段
- JavaWeb开发学习笔记--MySQL
Sthamansa
学习笔记mysql
MySQL-DQL基本语法:select字段列表from表名列表where条件列表groupby分组字段列表having分组后条件列表orderby排序字段列表limit分页参数基本查询关键字:SELECT查询多个字段:select字段1,字段2,字段3from表名;查询所有字段(通配符):select*from表名;设置别名:select字段1[as别名1],字段2[as别名2]from表名;其
- MYSQL简单查询
jay丿
mysqladb数据库
MYSQL简单查询完整语法:select[distinct],…[from[where][groupby,…[having]][orderbyasc|desc][limit[offset,]rows]]select简单查询select1;--往往用来做数据库心跳检测selectuser();--获取当前登录的用户信息selectversion();--获取数据库的版本号selectnow();--
- sql中奇数、偶数、正则
又是被bug折磨的一天
sqlmysql数据库
在sql中,mod()和%都是用来取余的操作符。在很多SQL实现中,它们可以互换使用,都可以用来计算一个数除以另一个数的余数。方法一:使用mod()mod(a,b)在sql中的意思是a/b的余数mod(id,2)=1是指id是奇数。mod(id,2)=0是指id是偶数。select*fromemployeeswheremod(emp_no,2)=1andlast_name'Mary'orderby
- MySQL 索引优化
纠结哥_Shrek
mysql数据库
索引优化是MySQL性能优化的核心之一,合理使用索引可以显著提高查询效率,减少CPU和IO负担优化点方法选择合适的索引列WHERE、JOIN、ORDERBY、GROUPBY频繁使用的列最左前缀原则组合索引的查询字段顺序需匹配索引顺序覆盖索引SELECT仅查询索引中的字段,避免回表避免索引失效不使用计算、函数、OR、LIKE'%xxx%'分页优化使用id>offset代替LIMIToffset,co
- SQL-DAY 8(SQL窗口函数的应用案例:电商平台订单信息案例分析)
范儿札记
SQLsql数据库database
文章目录一、窗口函数说明1.窗口函数的语句结构2.窗口函数的分类二、案例分析(电商平台订单信息)1.数据准备2.窗口函数之累计计算函数3.窗口函数之排序函数3.窗口函数之偏移分析函数一、窗口函数说明1.窗口函数的语句结构窗口函数的语法格式函数名([expr])over(子句)函数名([expr])over(partitionbyorderbyrowsbetween)其中over关键字后子句包含三个
- mysql sqlite 语法_SQLite SQL语法详解
weixin_39880621
mysqlsqlite语法
SELECTsql-statement::=SELECT[ALL|DISTINCT]result[FROMtable-list][WHEREexpr][GROUPBYexpr-list][HAVINGexpr][compound-opselect]*[ORDERBYsort-expr-list][LIMITinteger[(OFFSET|,)integer]]result::=result-col
- Hive面试重点
未来影子
面试hivehive面试bigdata
文章目录Hive介绍Hive架构(重点)Hive内外部表(重点)Hive建表语句Hive数据倾斜以及解决方案(重点)Hive的自定义函数Hive的sortby、distributeby、cluserby、orderby区别Hive分区和分桶的区别HQL转化为MR的过程Hive的存储引擎和计算引擎1、计算引擎2、存储引擎Join的操作原理1、CommonJoin2、MapJoin3、SMBJoinH
- Java高级:mysql创建用户密码
字节全栈_kYu
javamysql开发语言
为查询缓存优化你的查询EXPLAIN你的SELECT查询当只要一行数据时使用LIMIT1为搜索字段建索引在Join表的时候使用相当类型的例,并将其索引千万不要ORDERBYRAND()避免SELECT*永远为每张表设置一个ID使用ENUM而不是VARCHAR从PROCEDUREANALYSE()取得建议尽可能的使用NOTNULLPreparedStatements无缓冲的查询把IP地址存成UNSI
- mysql商品查询_mysql的查询、子查询及连接查询(商城查询常用)
weixin_32200323
mysql商品查询
一、mysql查询的五种子句where(条件查询)、having(筛选)、groupby(分组)、orderby(排序)、limit(限制结果数)1、where常用运算符:比较运算符>,),>=,selectid,namefromuserwhereidin(7,9,11,100);+----+-----------+|id|name|+----+-----------+|7|娲紵楣?||9|CC
- 开窗函数的使用详解(窗口范围ROWS与RANGE详解)
西瓜汁大数据
笔记数据库
1、函数写法函数名(参数)OVER(PARTITIONBY子句ORDERBY子句ROWS/RANGE子句)由三部分组成:函数名:如sum、max、min、count、avg等聚合函数以及lead、lag行比较函数等;over:关键字,表示前面的函数是分析函数,不是普通的集合函数;分组子句:over关键字后面挂号内的内容;分析子句又由下面三部分组成:PARTITIONBY:分组子句,表示分析函数的计
- MySql having语句
嗜血人偶
sql数据库
四.having子句1.语法:select查询内容from表名[where条件][groupby分组字段][having条件][orderby字段名asc|desc]selectfrom--->where过滤--->groupby--->having过滤--1.列如:每个部门不同岗位人数,且人数大于2selectcount(*)fromempwherecount(*)>2groupbydeptno
- SAP Odata実行命令(1)
weixin_30628801
$count$Orderby:desc/asc※$Orderby=ソートする項目desc降順/asc昇順を指定すること$Filter:$Skip,TopandInlinecount:$skip=2は2つのレコードをスキップし、$top=5は最初の5つのレコードが表示されることを意味します。また、Inlinecountは以下のようにcountでデータを表示します。※注意:$inlinecount=a
- 一个简单的php博客
很酷的站长
php专题phpandroid开发语言
一个简单的PHP博客的示例代码:收起phpconnect_error){die("连接失败:".$conn->connect_error);}//查询文章$sql="SELECTid,title,content,created_atFROMarticlesORDERBYcreated_atDESC";$result=$conn->query($sql);if($result->num_rows>0
- XQuery 添加元素 和属性
fengshou1
node.js
向结果添加元素和属性正如在前面一节看到的,我们可以在结果中引用输入文件中的元素和属性:for$xindoc("books.xml")/bookstore/book/titleorderby$xreturn$x上面的XQuery表达式会在结果中引用title元素和lang属性,就像这样:EverydayItalianHarryPotterLearningXMLXQueryKickStart以上XQu
- MySQL的查询、索引和视图操作实验
怼您恏1031
数据库sqlmysql
一、实验目的和要求1、掌握select语句的基本语法;2、掌握子查询、连接查询的表示;3、掌握select语句的GROUPBY、ORDERBY、LIMIT的作用和使用方法。4、熟悉视图的概念和作用;5、掌握索引和视图的创建方法;6、掌握如何查询和修改视图。二、实验内容和原理1、select语句的基本使用:(1)查询student表中每个学生的所有数据;(2)查询course和sc表的所有记录;(3
- monaco-editor 的 Language Services
前端
我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:修能这是一段平平无奇的SQL语法SELECTid,sum(name)FROMstudentGROUPBYidORDERBYid;如果把这段代码放到monaco-editor(@0.49.0)中,一切也显得非常普通。monaco.editor.create(ref.
- C#集合排序的三种方法(List<T>.Sort、LINQ 的 OrderBy、IComparable<T> 接口)
我曾经是个程序员
常用代码片段c#开发语言
见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看......1、使用List.Sort方法与自定义比较器public class Person{ public stringName{ get; set;} public intAge{ get; set;}}public class PersonComparer
- 史上最全Oracle数据库查看表空间的名称及大小、使用情况等
DZ2317794308
sqloracle数据库
1.查看表空间物理文件的名称及大小SELECTTABLESPACE_NAME,FILE_ID,FILE_NAME,ROUND(BYTES/(1024*1024),0)TOTAL_SPACEFROMDBA_DATA_FILESORDERBYTABLESPACE_NAME;2.查看表空间的名称及大小SELECTT.TABLESPACE_NAME,ROUND(SUM(BYTES/(1024*1024))
- MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 5
E___V___E
数据库mysql笔记
第05章_排序与分页排序#第05章_排序与分页#1.排序#如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。SELECT*FROMemployees;#1.1基本使用#使用ORDERBY对查询到的数据进行排序操作。#升序:ASC(ascend)#降序:DESC(descend)#练习:按照salary从高到低的顺序显示员工信息#使用ORDERBY对查询到数据排序操作SELE
- sql里面的asc和desc排序原理
one996
记录程序员sql
最近遇到一个数据库的问题,sql语句是对版本进行降序排列。如下例子:用下载sql去查询,没有排序的效果。SELECT*FROMdata2WHEREpn=''ANDwsid=''ANDorder_ork=''ORDERBY'tpver'desc如下两个版本V3.7.2-R1.0Z1.3.1V3.11-R9.0Z1.4因为desc的排序方式是hashcode,按照我的理解,应该是从R开始比较,R3相等
- oracle 分组 开窗,oracle的开窗函数
weixin_39860946
原创select*from(selectprovince,commodity,sum(price),ROW_NUMBER()OVER(PARTITIONBYprovinceorderbysum(price)desc)rnfromtest141211groupbyprovince,commodity--orderbyprovincedesc,sum(price)desc)wherernselecte
- Oracle开窗函数详解
实泽有之,无泽虚之
Oracleoracle数据库database
【函数格式】分析函数()OVER([PARTITIONBY分组字段][ORDERBY排序字段])【参数说明】分析函数包括以下几类:聚合函数:count()、sum()、max()、min()、avg()等;排序函数:rank()、dense_rank()、row_number()等;偏移函数:lag()、lead();partitionby:表示根据指定字段进行分组,可省略;orderby:表示根
- 20250101面试鸭特训营第9天
Again_acme
面试鸭特训营面试职场和发展
更多特训营笔记详见个人主页【面试鸭特训营】专栏2501011.MySQL中如何解决深度分页的问题?什么是深度分页问题--查询第2页的10条数据,即第21~30条数据select*fromstudentorderbyidlimit2,10;--查询第200000页的10条数据,即第200001~200010条数据select*fromstudentorderbyidlimit200000,10;在分
- MySQL窗口函数
猪猪爱放屁
mysql
MySQL窗口函数窗口函数,也称为OLAP函数,联机分析处理。能够将表中数据划分一个范围,对范围内的数据进行某种处理,可以是聚合,也可以是排序,也可以是求第一个记录或者最后一个记录等等。对数据进行实时分析处理。作用:1.解决排名问题。e.g.每个班级按照成绩排名2.解决top-n问题。e.g.每个班级前两名学生1.语法over(partitionbyorderby)partitionby(分组):
- 【MySQL】CRUD增删改查操作
卡皮巴拉吖
mysql数据库
文章目录CRUD简介一、Creat新增1.单行数据全列插入2.单行数据全指定列插入3.多行数据指定列插入二、Retrieve检索1.全列查询--练习阶段最简单的查询:(在生产环境最好不要用!!)2.指定列查询3.结果去重查询4.where条件查询5.分页查询6.orderby排序三、Update修改四、Delete删除截断表【拓展】CRUD简介CRUD是对数据库中的记录进行的增删改查操作:Crea
- SQLSugar进阶使用:高级查询与性能优化
m0_74823611
性能优化windows
文章目录前言一、高级查询1.查所有2.查询总数3.按条件查询4.动态OR查询5.查前几条6.设置新表名7.分页查询8.排序OrderBy9.联表查询10.动态表达式11.原生Sql操作,Sql和存储过程二、性能优化1.二级缓存2.批量操作3.异步操作4.分表组件,自动分表5.查询6.插入7.删除数据8.引入库9.读写分离/主从总结前言SqlSugar作为一款专为.NET平台设计的轻量级ORM(对象
- 解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
javaHttpServlet源理GenericService源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
- MySQL性能优化
bijian1013
数据库mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
- ThreadPool定时重试
dai_lm
javaThreadPoolthreadtimertimertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
- Oracle 查看数据库的连接情况
周凡杨
sqloracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
- 类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
- android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
- hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
- gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue
- Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
- 线程同步和异步
百合不是茶
线程同步异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
- JSP中文乱码分析
bijian1013
javajsp中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
- js实现页面跳转重定向的几种方式
bijian1013
JavaScript重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
- 【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
- 【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
- nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
- java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
- Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
javaspring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
- [JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
- base64编码和url编码
cuityang
base64url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
- web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
- solr StatsComponent(聚合统计)
eksliang
solr聚合查询solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
- 百度一道面试题
greemranqq
位运算百度面试寻找奇数算法bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
- Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
- 网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
- AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点学习永无止境众观千象AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
- Spark算子:统计RDD分区中的元素及数量
superlxw1234
sparkspark算子Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
- Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
- fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f