- 浏览: 20175 次
- 性别:
- 来自: 上海
最新评论
文章列表
简记:
excel 2003 之后的版本底层是各种 Xml 组成的,把 excel 文件的后缀改成 zip 然后打开就可以看到 excel 内部的组成!
遇到的问题:
POI读取excel文件是从第一个sheet开始读取,不管这个sheet是否隐藏,都会读取到
excel的sheet删除是物理删除,删除过后,POI是读取不到的
待增加......
1.判断String是否为空
<if test="stringParam != null and stringParam != ''"></if>
2.判断Integer是否大于0
<if test="idParam !=null and idParam gt 0"></if>
3.判断List是否不为空
<if test="listParam !=null and listParam.size >0"></if>
4.判断String是否以某特定 ...
在 GROUP_CONCAT 之前对数据结果进行排序,当 GROUP_CONCAT 函数执行的时候,一样会打乱之前的排序 ,起不到排序作用,所以当用到 GROUP_CONCAT 函数进行字符串拼接并且要对拼接之前进行排序的话,应该使用 GROUP_CONCAT 函数自己的排序功能进行排序才能起作用
例:
SELECT student_name,
GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ')
FROM student
GROUP BY student_name;
摘抄:http://blog.csdn.net/xluren/article/details/32746183
关于MySQL索引的好处,如果正确合理设计并且使用索引的mysql是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数 ...
拦截器与过滤器的区别:
1.拦截器是基于java的反射机制的,而过滤器是基于函数回调完成的
2.拦截器不依赖于servlet容器,过滤器依赖于servlet容器
3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有请求起作用
4.拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问
5.在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
执行顺序:
过滤前--->拦截前--->action处理--->拦截后--->过滤后
......
CAS包括两个部分:CAS Server 和 CAS Client
协议:所有与CAS Server交互均采用SSL协议,以确保 ST 和 TGC 的安全性
工作流程图简述:CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护 Web 应用的受保护资源,过滤从客户端过来的每一个 Web 请求,同时, CAS Client 会分析 HTTP 请求中是否包含请求 Service Ticket( ST 上图中的 Ticket) ,如果没有,则说明该用户是没有经过认证的;于是 CAS Client 会重定向用户请求到 CAS Server ( Step 2 ),并传递 ...
web.xml配置详解
- 博客分类:
- javaweb
1、关于load-on-startup
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>servlet1</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>servlet2</servlet-name>
<servlet-class> ...
关于tomcat的热部署
- 博客分类:
- tomcat
server.xml配置
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve .../>
<Context docBase="..." path="..." reloadable="false" source="..."/>
</Host> ...
开发中遇到一个需求:分页查询某实体类,将状态为待审核的放在最前面,同时按照创建该实体的创建时间来降序...
方案一:
取出数据在service层进行重组,但这种方式无法保证将所有为待审核状态的实体放在最前面,因为分页查询不是将所有符合条件的数据都查出来,它会根据你每页需要显示的条数来查找出多少条数据来。
所以,不可行!
方案二:
用到sql语句中的 UNION ALL 将两个子查询连接起来,先查出符合条件的所有为待审核状态的已经按创建时间降序的实体出来,将其与符合条件的所有为非待审核状态的已经按创建时间降序的实体 UNION ALL ...
这里虽然解决了将待审核状态的实体放在前面的问题了, ...
1、JavaScript的作用域链
首先看下下面这段代码:
<script type="text/javascript">
var rain = 1;
function rainman(){
var man = 2;
function inner(){
var innerVar = 4;
alert(rain);
}
inner(); //调用inner函数
}
rainman(); //调用rainman函 ...
面试中的笔试可能会遇到以下问题:
写出下面代码的执行结果:
class A{
static{
System.out.println("父类静态代码块...1");
}
public A(){
System.out.println("父类构造函数...");
}
{
System.out.println("父类非静态代码块...1");
}
static{
System.out.println("父类静态代码块...2");
}
{
System.out.println(&qu ...
本文摘抄至:http://www.cnblogs.com/dolphin0520/
一.抽象类
在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:
abstract void fun();
抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。
下面要注意一个问题:在《JAVA编程思想》一书中,将抽象类定义为“包含抽象方法的类”,但是后面发现如果一个类不包含抽象方法, ...
1、count(*) <---> count(列)
没有索引的情况下,两者一样快;
有索引的情况下,如果这一列允许为 null,则count(列)快,若不允许为空,则一样快!
这是由于count(*)与count(列)不等价,count(*)所有列只要有一列不为null,就会被统计出来,count(列)只要这一列为null,就不会被统计出来!
所以,count(列)所谓的快是没有把数据统计完整!!!
count(列)每一通是否相同?
NO! 列的偏移量决定性能,列越靠后,访问的开销越大!而count(*)的算法与列无关,所以count(*)最快,count(最后一列)最慢!
2、 ...
在js的if中变量判断,以下情况会被认为返回false:
1、 "" 空的字符串
2、 为 0 的数字
3、 为 null 的对象
4、 为 undefined 的对象
5、 布尔值 false
其他的都为真。
1.1 获得当前日期+时间(date + time)函数:now()
MySQL> select now();
| 2016-12-29 20:56:19 |
除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
current_timestamp() ,
current_timestamp ,
localtime() ,
localtime ,
localtimestamp — (v4.0.6) ,
localtimestamp() — (v4.0.6)
这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议 ...