一、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. (Spring Boot框架)快速入门

    Spring Boot 系列文章推荐 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 今天介绍一 ...

  2. SQL命令查看Mysql数据库大小

    SQL命令查看Mysql数据库大小的方法. 要想知道每个数据库的大小的话,步骤如下:1.进入information_schema 数据库(存放了其他的数据库的信息)use information_sc ...

  3. Coreseek:第一步配置文件

    Windows操作系统下:mysql数据源配置:(相应coreseek-3.2.13-win32/etc/csft_mysql.conf) #源定义 source mysql { type = mys ...

  4. js prototype 理解

    简单理解:prototype对象是实现面向对象的一个重要机制.每个函数也是一个对象,它们对应的类就是 function,每个函数对象都具有一个子对象prototype.Prototype 表示了该函数 ...

  5. inline-block元素的空白间距解决方法<转>

    使用inline-block来代替float进行布局,或者使用inline-block来实现元素的居中效果.有关于使用inline-block来代替float的讨论也蛮多的. 不过就是使用inline ...

  6. REST学习

    RPC架构与REST架构 RPC:RPC将服务器看作一些列动作的集合(需要做某件事) REST:将服务器看作分布式对象集合,客户端通过调用这些对象上的方法来执行特定的任务,组件交互的可伸缩性.接口的通 ...

  7. string--C++ STL 学习

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

  8. MySQL5.0、5.1、5.5、5.6功能进化

    目前线上使用的版本情况:新上线端口统一使用5.5,不说别的,一个快速恢复重启就值回票价. 但因为历史原因还有大量5.1的版本,甚至,I’am sorry,还有少数5.0的版本. 至于5.0以前的版本, ...

  9. Android中如何让DialogFragment全屏

    1. 在DialogFragment的oncreate里面做 @Override public void onCreate(Bundle savedInstanceState) { super.onC ...

  10. mui区域滚动条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...