一、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、js、jar、配置文件),并且注意依赖项的顺序

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

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

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

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

注意:优先寻找并使用第三方插件,而不是自己写一个!除非技术过硬时间充裕!

注意:网上同类型第三方插件有可能很多,选择方法的标准是:

A)能满足自己的需要

B)简单好用,文档写的好

C)使用人数多,评价好

 

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

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

而不出错(.....is undefined......未定义)

在jQuery中,通过下面的方法可以实现

1.

<script>

$(function(){

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

})

</script>

2.

<script>

$(document).ready(function(){

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

})

</script>

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

1.基本时间类型

日期类型       
存储空间       日期格式                         日期范围


------------     ---------    --------------------- -         ----------------------------------------


datetime        8 bytes   YYYY-MM-DD HH:MM:SS    1000-01-01 00:00:00 ~ 9999-12-31 23:59:59


timestamp      4 bytes   YYYY-MM-DD HH:MM:SS    1970-01-01 00:00:01 ~ 2038

date              3 bytes   YYYY-MM-DD                  1000-01-01          ~ 9999-12-31


year              1 bytes   YYYY                               1901                ~ 2155

time              3 bytes   HH:MM:SS                     -838:59:59          ~ 838:59:59

2.datetime
还是 timestamp的使用比较

在 MySQL 中创建表时,对照上面的表格,很容易就能选择到合适自己的数据类型。不过到底是选择
datetime 还是
timestamp,可能会有点犯难。这两个日期时间类型各有优点:datetime
的日期范围比较大;timestamp
所占存储空间比较小,只是 datetime
的一半。

另外,timestamp
类型的列还有个特性:默认情况下,在 insert, update
数据时,timestamp
列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL
会替你去处理

一般情况下,我倾向于使用 datetime
日期类型。

两者之间的比较:

a. timestamp容易所支持的范围比timedate要小。 并且容易出现超出的情况

b.timestamp比较受时区timezone的影响以及MYSQL版本和服务器的SQL
MODE的影响.

3.非正常情况下

比如表示历史时间的日期时间无法直接内置的日期时间类型

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

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

五、日期时间函数

NOW()    可以获取当前日期和时间,可以赋值给

Current_Timestamp()       当前时间戳

Current_Date()             获取当前日期部分

Current_Time()             获取当前时间部分

日期时间可以使用+ /-

日期加减    date_add()        date_sub()

时间相减    time_add()        time_sub()

两个日期之差     date_diff()

两个时间之差     time_diff()

字符串转日期     str_to_date()

str_to_time()

计算天数         to_days()

时间转秒数      sec_to_times()

六、SpringMVC数据格式化

数据格式化是数据绑定功能的重要构成部分,能够把用户输入的字符串转换成模型对象的属性值(属性不是字符串类型)

格式化提供了注解支持

@DateTimeFormat      用来格式化日期时间

@Number             用来格式化数字   如:   123,456.789

@Currency            用来格式化货币   如:   ¥123.00

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

 

JSTL的var属性

1.JSTL的很多标签都支持var属性,var属性可以将标签中的计算结果变成一个变量(默认在pageScope中,可以通过scope属性指定放在哪个作用域中),供标签外部使用。

2.form:input 的属性中不能再嵌套JSTL标签,但是还希望能够显示JSTL标签的计算结果,此时使用var就能解决问题

 

七、MySql索引

1. 索引存在意义是加速数据查找!加速的原理是数据库使用了特定的算法

(二分法、平衡二叉树、BTree)

 2.索引的类型

  A.普通索引(对于数据没有限制,但是对于数据值很少的列建索引的意义不大,如性别或枚举值)

外键(普通索引),当创建外键时,会同时创建一个普通索引

 B.唯一性索引
(要求数据必须保持唯一性,一个值只能出现一次,否则就报错)

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

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

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

desc、content、varchar(200以上)

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

MySQL全文索引默认只对英文支持比较好,对于中文,通常会使用某种分词技术。

MYSQL的全文索引智游MyISAM引擎支持。MyISAM引擎支持千万级数据存储,但不支持事务。

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

   3.索引的命名规则

i_表名_列名1_列名2...

索引方法

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

Btree     通过决策以二分法的方法快速收敛,搜索到结果,当数据量以指数级增长时,搜索时间只以线性方式增长,所以它适合大量数据的索引

八、MyBatis异常处理

MyBatis会在内部捕获所有的SQLException,捕获之后会在日志中输出错误信息,然后创建一个DataAccessException抛出

所以在Dao和Service层应该写throws DataAccessException.不能写SQLException(因为MyBatis已经捕获它,并将之转换成DataAccessException)

九、关于ip地址

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

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

request.getHeader(“x-forwarded-for”)      指定的就是客户机的真实ip

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

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

获取到的IP地址是点分十进制表示法的字符串值

对于IPv4数据库可以用一个int值来存储,而且MySQL提供了转换函数

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

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

名字来自于c语言函数(linux系统的函数)

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

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

 

JSP中字符串日期强制为date

<fmt:parseDate value="${m.dateTime}" pattern="yyyy-MM-dd" var="date"></fmt:parseDate>

<fmt:formatDate value="${date}"  pattern="yyyy年
MM月
dd日  E" />

【父类】java.util.Date日期格式为:年月日时分秒 

【子类】java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据] 

【子类】java.sql.Time日期格式为:时分秒 

【子类】java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒) 

针对不同的数据库选用不同的日期类型 

·Oracle的Date类型,只需要年月日,选择使用java.sql.Date类型 

·MS Sqlserver数据库的DateTime类型,需要年月日时分秒,选择java.sql.Timestamp类型

项目中整合第三方插件与SpringMVC数据格式化关于ip地址的更多相关文章

  1. vue-cli项目中引入第三方插件

    前言 最近有小伙伴问道如何在vue-cli项目中引入第三方插件或者库,例如如果想在项目中使用jQuery中的Ajax请求数据呢?或者我想使用Bootstrap框架呢?等等这些问题,本篇博客将带你学习如 ...

  2. 如何在Ionic2项目中使用第三方JavaScript库

    onic的官网放出一记大招Ionic and Typings,来介绍如何在Ionic2项目中使用第三方JavaScript库. 因为在前阵子正好想用一个非常有名的第三方JS库ChartJs来实现一些东 ...

  3. 实战:vue项目中导入swiper插件

    版本选择 swiper是个常用的插件,现在已经迭代到了第四代:swiper4.常用的版本是swiper3和swiper4,我选择的是swiper3. 安装 安装swiper3的最新版本3.4.2: n ...

  4. 关于如何正确地在android项目中添加第三方jar包

    在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception.error inflati ...

  5. Android Studio 在项目中引用第三方jar包

    在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { ...

  6. 在 Ionic2 TypeScript 项目中导入第三方 JS 库

    原文发表于我的技术博客 本文分享了在Ionic2 TypeScript 项目中导入第三方 JS 库的方法,供参考. 原文发表于我的技术博客 1. Typings 的方式 因在 TypeScript 中 ...

  7. 在vue项目中使用codemirror插件实现代码编辑器功能(代码高亮显示及自动提示

    在vue项目中使用codemirror插件实现代码编辑器功能(代码高亮显示及自动提示) 1.使用npm安装依赖 npm install --save codemirror; 2.在页面中放入如下代码 ...

  8. 为什么在项目中data需要使用return返回数据呢?

    问:为什么在项目中data需要使用return返回数据呢? 答:不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件.

  9. vue中使用第三方插件animate.css实现动画效果

    vue中使用第三方插件animate.css实现动画效果1.首先先引入第三方类animated.css2.将你所需要动画的标签用包裹起来3.在transition元素中添加enter-active-c ...

随机推荐

  1. drawer navigation, tabhostFragment 默认导向

    问题: 项目结构,在一个抽屉导航中的第一个抽屉中加入了一个tabHostFragment,每次进入项目都是在抽屉导航的默认界面,须要把抽屉划出来再选择某个抽屉. 可是想让APP直接跳转到第一个抽屉界面 ...

  2. Codeforces Round #256 (Div. 2) C. Painting Fence (搜索 or DP)

    [题目链接]:click here~~ [题目大意]:题意:你面前有宽度为1,高度给定的连续木板,每次能够刷一横排或一竖列,问你至少须要刷几次. Sample Input Input 5 2 2 1 ...

  3. pow(x,y)函数的实现算法(递归函数)

    函数pow(x,y)实现运算x^y,即x的y次方,这里x和y都为整数. 算法的基本思想是,减少乘法次数,重复利用结算结果,例如: x^4,如果逐个相乘的话,需要四次乘法.如果我们这样分解(x^2)*( ...

  4. js生成二维码的jquery组件–qrcode

    js生成二维码的jquery组件–qrcode 2015/01/30 / 2508 VIEWS / JAVASCRIPT, JQUERY 有一些耗cpu的计算,完全可以在客户端上计算,比如生成二维码. ...

  5. Ununtu 15.04 安装MySql(Django连接Mysql)

    本文介绍Ubuntu 15.04下安装MySQL ubuntu 15.04安装mysql django项目连接mysql 一.安装数据库 1.sudo apt-get install mysql-se ...

  6. gt811 driver

    #include <linux/module.h> #include <linux/i2c.h> #include <linux/platform_device.h> ...

  7. Office Web App2013 在线查看PDF文件

    经常会有客户问,在SharePoint中,如何在浏览器中查看与编辑文档,通常给出的解决方案是集成Office Web App. 而在实际应用过程中,客户通常会要求实现PDF文件在线查看,对于PDF文件 ...

  8. string--C++ STL 学习

    C++STL提供了string基本字符系列容器来处理字符串,可以把string理解为字符串类,提供了添加删除\替换\查找和比较等丰富的方法. 使用string容器,需要包含头文件声明#include ...

  9. 关于如何自定义handler

    1.在web.config 中的webserver 下添加 <handlers> <add verb="*" path="*.html" ty ...

  10. Spring Framework 官方文档学习(一)介绍

    http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#overview-maven-bom ...