2015-09-13
2015-09-13 12:19
155 查看
1、FreeMarker 模版中的LIST标签 问题
从后台传来两个数组 names ids
要求在前端显示
<li name='${name}' id='${id}' >name</li>
我们知道list标签的用法是这样的
<#list names as name>
<li name='${name}'>${name}</li>
</#list>
这样就出现一个问题 怎样才能names与ids相对应呢 是不是可以在一个list放两个数组展示 比如这样:<#list names as name,ids as id>
但事实是不行 那么我就联想到JAVA中的For循环 里面是有索引给我们用的 要是可以得到当前元素的索引就好了 然后我就去查FreeMarker的API文档 发现里面确实是有索引的 不过它的索引比较特别
比如要获取当前待展示元素的索引 可以直接用name_index这样去进行获取,这样这个问题我们就可以通过索引进行解决了。解决方案如下:
<#list names as name>
<#list ids as id>
<#if name_index==id_index> <#--保证name与id 配对出现-->
<li name='${name}' id='${id}' >name</li>
</#if>
</#list>
</#list>
2、MYSQL中to_days()函数的使用
最近在项目中碰到这样一个问题 那就是日志显示问题 一般来说日志每天都会产生至少上千条 如果一次全部显示出来的话
就会导致页面加载缓慢 这时我们就想到只查最近几天的纪录 这时我们就可以用到这个函数
比如数据表中的时间参数是update_time
那么最近两天的条件就是
to_days(now())-to_days(update_time)<2
3、MYSQL中的find_in_set()函数与group_concat()的使用
最后在项目中碰到这样一个问题,以用户表user为例:
userName userId
JosonLiu test1
Joson test2
应用场景:在其他表中存用户我们是存userId的 如果碰到存多个用户ID的情况 我们就是用","号进行分隔的作用,那么问题来了
在显示的时候 我们是不可能直接显示userId的 因为那个不友好 用户也看不懂 必须要显示用户名称。
比如如果存的用户ID串是这样的:test1,test2那么我们需要直接显示JosonLiu,Joson
这样需要解决的问题有两个:
第一、如何进行userId的匹配 第二、如果用一个字段去接收用户名。
看到这种多个ID的匹配 我第一时间想起的是in()这个函数,但是in的问题是只能做INT型的匹配 而这里是字符串的匹配 那么我们就想有没有
这种针对字符串的匹配呢 结果一查 发现了find_in_set()这种函数 这个函数的原理我估计是类似JAVA中的数值映射。使用方法是这样的
find_in_set(property,property_compare)其中property代表要匹配的表的字段 property_compare则是匹配的值域。
说到SQL中的字符串连接 我第一个想到的就是CONCAT(str1,str2,…)这个函数 但是这种函数有一个致使的缺点 就是必须先清楚有多少个变量,而且如果
要在变量之中加分隔符也非常麻烦 必须自己手动去加。而我们这里查出来的纪录数是不确定的 所以明显不适合。这时我就想有没有根据纪录数
动态去链接的函数。这时我找到了group_concat()这个函数,它的用法也非常简单。group_concat(property) property为表中的一个字段,而且默认不同属性值之间会用","隔开。
这样的话 我们的需求就非常容易实现了 。
实现语句:select group_concat(userName) from user where find_in_set(userId,'test1,test2')
从后台传来两个数组 names ids
要求在前端显示
<li name='${name}' id='${id}' >name</li>
我们知道list标签的用法是这样的
<#list names as name>
<li name='${name}'>${name}</li>
</#list>
这样就出现一个问题 怎样才能names与ids相对应呢 是不是可以在一个list放两个数组展示 比如这样:<#list names as name,ids as id>
但事实是不行 那么我就联想到JAVA中的For循环 里面是有索引给我们用的 要是可以得到当前元素的索引就好了 然后我就去查FreeMarker的API文档 发现里面确实是有索引的 不过它的索引比较特别
比如要获取当前待展示元素的索引 可以直接用name_index这样去进行获取,这样这个问题我们就可以通过索引进行解决了。解决方案如下:
<#list names as name>
<#list ids as id>
<#if name_index==id_index> <#--保证name与id 配对出现-->
<li name='${name}' id='${id}' >name</li>
</#if>
</#list>
</#list>
2、MYSQL中to_days()函数的使用
最近在项目中碰到这样一个问题 那就是日志显示问题 一般来说日志每天都会产生至少上千条 如果一次全部显示出来的话
就会导致页面加载缓慢 这时我们就想到只查最近几天的纪录 这时我们就可以用到这个函数
比如数据表中的时间参数是update_time
那么最近两天的条件就是
to_days(now())-to_days(update_time)<2
3、MYSQL中的find_in_set()函数与group_concat()的使用
最后在项目中碰到这样一个问题,以用户表user为例:
userName userId
JosonLiu test1
Joson test2
应用场景:在其他表中存用户我们是存userId的 如果碰到存多个用户ID的情况 我们就是用","号进行分隔的作用,那么问题来了
在显示的时候 我们是不可能直接显示userId的 因为那个不友好 用户也看不懂 必须要显示用户名称。
比如如果存的用户ID串是这样的:test1,test2那么我们需要直接显示JosonLiu,Joson
这样需要解决的问题有两个:
第一、如何进行userId的匹配 第二、如果用一个字段去接收用户名。
看到这种多个ID的匹配 我第一时间想起的是in()这个函数,但是in的问题是只能做INT型的匹配 而这里是字符串的匹配 那么我们就想有没有
这种针对字符串的匹配呢 结果一查 发现了find_in_set()这种函数 这个函数的原理我估计是类似JAVA中的数值映射。使用方法是这样的
find_in_set(property,property_compare)其中property代表要匹配的表的字段 property_compare则是匹配的值域。
说到SQL中的字符串连接 我第一个想到的就是CONCAT(str1,str2,…)这个函数 但是这种函数有一个致使的缺点 就是必须先清楚有多少个变量,而且如果
要在变量之中加分隔符也非常麻烦 必须自己手动去加。而我们这里查出来的纪录数是不确定的 所以明显不适合。这时我就想有没有根据纪录数
动态去链接的函数。这时我找到了group_concat()这个函数,它的用法也非常简单。group_concat(property) property为表中的一个字段,而且默认不同属性值之间会用","隔开。
这样的话 我们的需求就非常容易实现了 。
实现语句:select group_concat(userName) from user where find_in_set(userId,'test1,test2')
相关文章推荐
- 穿越两次PIX8.0防火墙并两次静态NAT的FTP测试
- 穿越两次PIX8.0防火墙并两次静态NAT的FTP测试
- C#跨线程调用
- 话说Mac终端下 遇到的千奇百怪的报错及解决方法
- web即时通讯2--基于Spring websocket达到web聊天室
- 从特征描述符到深度学习:计算机视觉发展20年
- C++的函数隐藏、覆盖和重载
- 快速幂取模算法
- 项目管理需要一个在线团队协作平台
- C 双向链表
- [Apple TV 开发教程] 之二 为Apple TV 开发客服端-服务器架构的app
- Week1-11Memory
- Gradle User Guide(1)
- MongoDB学习之在Windows下安装MongoDB
- 如何在 MyEclipse 下用 Gradle 构建 Web Application
- B 维背包+完全背包 Hdu2159
- MPP、SMP、NUMA概念介绍
- mysql亿级数据优化
- poj 3318 随机(矩阵相乘判断)
- 多巴胺对于情绪的影响 理智与感性