响应式按钮 整合第三方插件 日期时间类型和函数...

一、Bootstrap 响应式按钮

<div calss=”col-sm-2”>

<button class=”btn btn-default btn-block”>

</div>

表现结果:手机上全宽 桌面上2列宽

原理;btn-block 会将按钮变成全宽

但是在桌面上col-sm-2会失效 按钮被设置在2列宽

在手机上 col-sm-2失效(手机的尺寸是xs

 

在自己的项目中整合第三方插件或功能

1.找到所有的依赖项(css jsjar、配置文件) 并且注意依赖项的顺序

2.将找到的依赖项放入自己的项目中(注意放置的位置 让新增加的内容符合项目的文 件结构规范 )(注意如果本项目中已经引入了相同的依赖项 但是版本不同 要注意 冲突情况 如果前端的版本冲突 可以都加入到项目中 在某些页面上使用a版本 另外的页面使用b版本 如果是你jar包版本冲突 先尝试新版本 不行的话再考虑 使用哪个版本改动的代价最小)

3.   如果有完整的实例 或者项目中由可运行的代码 直接将代码尽量完整的复制到本    项目中能够运行起来之后,再删减或修改代码(注意检查控制台有没有报错)

4.   如果没有示例代码 则从文档中挑选简单的代码实验 先让代码能够跑起来 然后 在增加复杂度

5.  能跑起来之后根据需求去调整 尽可能实现需求所要求的界面和功能效果 此时应 该简单快速的浏览一下api文档、对整体API有一个印象

 

注意:优先寻找并使用第三方插件,而不是自己写一个!除非你想加班

注意:网上同类型的第三方插件有可能很多 选择使用哪一个的标准是:

能满足自己的需求

简单好用 文档写的好

用的人多 赞的人多

 

三、在网页加载完毕之后在执行一段代码

此功能带来的好处是:可以不受 js加载顺序的影响  可以将代码放在页面的任何位置

而不出错

jquery中通过下面的方法可以实现

$(function(){

页面加载完毕之后要执行的代码

})

$(docunent).ready(function(){

页面加载完毕之后要执行的代码

)

 

四、MySQL日期时间类型和函数

时间类型    字节    范围

Timestamp   4     1920~2038

Date 3 1000-01-01~9999~12-31

Time        3        -800:00:00~800:00:00

Datetime     8       1000-01-01 00:00:00~9999

Year         1       1901~2155

 

非正常情况下 比如表示历史时间的日期时间无法直接内置的日期时间类型

方法一:将年月日拆分成3个整数存储

方法二:  使用datedatetime ;另外再一个字段表示公元前还 还是公元后  或年份偏移量

 

日期时间函数

Now()    可以获取当前日期和时间   可以赋值给date\time\Datetiem

Current_Timestamp()    当前时间戳   

Current_date()     获取当前日期部分

Current_time()       获取当前时间部分

 

日期时间可以使用   `+` `-` 运算符(只是简单的将小时 分钟相加)

还可以用convert 进行类型转换(支持字符串,整数)

 

日期加减     date_add()   date_sub()

时间加减     time_add()     time_sub()

两个时间之差    time_diff()

两个日期之差   date_diff()

 

字符串转日期     str_to_date()

str_to_time()

计算天数    to_days()

时间转秒数  time_to_sec()

Sec_to_time()

五、springMVC 数据格式化

数据格式化是数据绑定功能的重要构成部分

能够将用户输入放入字符转换成模型对象的属性值(属性不是字符串类型)

 

格式化提供可注解支持

@DaateTimeFormat  用来格式化日期时间   2017-08-14

@Number 用来格式化数字     123456,789

@Currency      用来格式化货币      123.00

@Percent 用来格式化百分数     99.00%

 

六、JSTLvar属性

Jstl的很多标签都支持var属性 var属性可以将标签中的计算结果变成一个变量

(默认放在pageScope中,还可以通过scope属性指定 放在哪个作用域中) 供标签外部使用

Forminput 的属性中不能在嵌套jstl标签 但是还是希望能够显示jstl的计算结果此时

使用的var就能解决问题

七、MySQL索引

索引存在的意义是:加速数据查找!

加速的原理是使用了特定的算法(二分法,平衡二叉树,BTree

索引的类型:

普通索引:对数据没有限制,但是数据池很少的列意义不大,如性别或者枚举值  外键(通常是普通索引 一对多) 当创建外键时  会同时创建一个普通索引

唯一性索引 要求数据时唯一的一个值只能出现一次 否则就会报错

(索引可以跨越多个列,比如2列索引 3列索引)

用户名 邮箱 手机号 身份证号 主键 (唯一特殊索引)

全文索引: 用户加速常字符串的搜索(短字符串的like搜索速度也不快 对于 长字符串 使用like是无法接受的)

Desc/content     varChar200以上)

数据库中的text类型都是长文本

 

MySQL的全文索引只对英文支持比较好,

对于中文 通常会使用某种分词技术

 

MySQL的全文索引只有myisam引擎支持 MyISAM引擎支持千万级数据存储但不支持事务

常用的支持事务的引擎是InnoDB  但通常只能支持百万级数据

 

索引的命名规则

I_表名_列名1_列名2

 

索引方法

HASH      直接计算出值的存储位置 不需要搜索过程 速度最快

适合小量数据

BTree      通过决策以二分法的方法快速收敛 搜索到结果

当数据量以指数级增长时 搜索时间以线性方式增长

所以适合大量数据的索引

八、MYBatis异常处理

Mybatis会在内部捕获所有的SQLException 捕获之后会再说日志中输出错误信息 然后创建一个DateAccessException 抛出

所以在到和service 层应该写throws DateAccessException 不能写sqlecxception=因为mybatis 已经捕获到它 并将之转化成DateAccessException

 

九、关于IP地址

获取离服务器最近的IP地址      request.getRemoteAddr()

在客户机和服务器之间有代理服务器

Request.getHeader(“x-forward-for”)    指定的就是客户机的真实IP

Request.getHeader(“Procy-Client-IP”)      也有可能是这个头的指定的

 

如果使用localhost 那么用getRemoteAddr() 得到的是0:0:0...1

 

获取到的IP地址是点分十进制表示法的字符串值,对于ipv4数据库可以用int值来存储 而且MySQL提供了转换函数

点分十进制  ---> int   inet_aton()

Int  ---->  点分十进制 inet_ntoa()

名字来源于C语言 (Linux系统的函数)

 

使用int存储IP搜索速度要比字符串快很多   

添加索引之后   字符串的速度和int速度没法比

posted on 2017-11-19 16:47  杨先森的博客  阅读(604)  评论(0编辑  收藏  举报

导航