学习总结

1,mysql 数据库
date和datetime的区别:

date类型单独是指日期,datetime是指日期和时间

2,EL表达式

  在jsp页面中,使用el表达式获得属性的值,例如${o.name},原理是通过类中属性的getter和setter方法进行的,假设o为一个User对象,而User对象又是Person对象的一个属性,${o.name}取值的过程是相当于getUser().getName();分别通过Person和User对象中的getter方法获得值。同理,通过EL表达式设置的值的时候调用的是setter方法。例如<td>${o.name}</td>

3.在java文件中取session值

User user=(User) ActionContext.getContext().getSession().get("user");

4.

JSTL 获取当前时间

  1. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>  
  2. <jsp:useBean id="now" class="java.util.Date" />   
  3.   
  4. <fmt:formatDate value="${now}" type="both" dateStyle="long" pattern="yyyy-MM-dd" />  
页面直接输出 时间 

5.SQL ResultSet rs;rs默认指向第一行的前面,所以在执行next之前,通过rs.getString(1)等方法是取不出值的。

6,RestsultSet 关闭问题:

当遇到我们通过一个Statement的executeQuery()得到一个ResultSet对象时候,如果在遍历这个ResultSet期间想再次使用Statement执行另一个SQL,其一是另一个SQL用Statement2(新产生的Statement对象)执行,其二是把ResultSet对象里面的值放到一个集合中,然后遍历集合,此时因为ResultSet是没用的,所有Statement可以使用;
ResulstSet rs1;
	while (rs1.next()) {
					old_status = rs1.getString("status");
					number=rs1.getString("number");
 
                               if (!(old_status.equals(status))) {
					String sqlinsert = "insert into taxi_status_history values('"
							+ id + "','" + old_status + "','" + status + "','"
							+ longitude + "','" + latitude + "','" + strDate + "','"+number+"')";
					linker.executeUpdate(sqlinsert);//执行到这个地方的时候就会报ResultSet关闭问题,因为在对ResultSet遍历的过程中不能再去执行其他的更新或者查询操作,此时若想用rs1里面的东西,可以将ResultSet遍历完放入一个list中,在遍历list来获得想要的值
				} else {
					logger.info("状态没有改变!");
				}

				}
7.浮点数相加bug
 <script type="js/javascript">
           parentId=0.255;
           parentId= parentId+0.001;//此时相加的值为0.256999999
           parentId=Number(parentId.toFixed(3)) ;//浮点数相加bug解决,
        // alert(parentId3);
          </script> 8.

sql语句中查询带通配符的数据,如下划线 星号等

# %代表任意多个字符   

select * from user where username like '%huxiao';   

select * from user where username like 'huxiao%';   

select * from user where username like '%huxiao%';   

  

# _代表一个字符   

select * from user where username like '_';  

select * from user where username like '______';    

select * from user where username like 'huxia_';    

select * from user where username like 'h_xiao';  

 

# 如果我就真的要查%或者_,怎么办呢?使用escape,转义字符后面的%或_就不作为通配符了,注意前面没有转义字符的%和_仍然起通配符作用   

select username from gg_user where username like '%xiao\_%' escape '\';  

select username from gg_user where username like '%xiao\%%' escape '\';  

 

 通常使用'\'来做转义字符,但是也可以使用其他的符号

9.sql union 与union all
当数据库表中存有相同的数据,但只有类型type不同,现在需要把这类数据都查出来,可以用union或者union all
select apk_version , apk_type from (select top 1 apk_version , apk_type from apk_version 
where apk_type = 2 and deleted = 0
and current_apk = 1 order by id desc ) passenger 
union all select apk_version , apk_type from (
select top 1 apk_version , apk_type from apk_version 
where apk_type = 1 and deleted = 0  
and current_apk = 1 order by id desc) driver
区别:
union 对两个结果集(也可以使多个)进行合并时,同时进去去重和排序的操作。而union all 则将所有结果合并,包含重复项,不排序。必须保证union、union all 前后两个结果集中对应列的类型一样,列名可以不同,以第一个列的名字作为最终结果列名。
intersect :对两个结果集进行交操作,不去重,默认排序;
minus:对两个结果集进行差操作,不去重,默认排序。 可以在最后一个结果集中指定Order by子句改变排序方式。
10.jquery 解析发送ajax请求后返回的json数组
$.ajax({ type : "POST", url : "getOneTaxi.action", dataType:"json", data : "number=" + number+"&flag=" + 1, success : function(msg) { clearAll(); $(msg).each(function(i){ var longitude =msg[i].longitude; alert(longitude); });
或者$.ajax({ type : "POST", url : "getOneTaxi.action", dataType:"json", data : "number=" + number+"&flag=" + 1, success : function(msg) { clearAll(); $(msg).each(function(i,n){ var longitude =n.longitude; alert(longitude); });
11.防火墙入站出站规则 简单的说 出站就是你访问外网 入站就是外网访问你 用户可以创建入站和出站规则,从而阻挡或者允许特定程序或者端口进行连接; 可以使用预先设置的规则,也可以创建自定义规则,“新建规则向导”可以帮用户逐步完成创建规则的步骤;用户可以将规则应用于一组程序、端口或者服务,也可 以将规则应用于所有程序或者某个特定程序;可以阻挡某个软件进行所有连接、允许所有连接,或者只允许安全连接,并要求使用加密来保护通过该连接发送的数据 的安全性; 可以为入站和出站流量配置源IP地址及目的地IP地址,同样还可以为源TCP和UDP端口及目的地TCP和UPD端口配置规定。 一台新服务器创建好安装好相应软件之后,将本机MAC地址绑定到路由上(局域网设置->高级,给定一个ip地址对应自己的MAC地址),保存设置重启路由,同时还需要设置防火墙的入站和出站规则,例如打开8080端口,供外界访问部署到tomcat中的项目http://192.168.0.127:8080/taxi.
12.在eclipse新导入项目,jsp出现红叉,但是项目能够运行。解决办法:( 可能是你jre问题。)在项目点build path ->libraries->右侧add library->JRE Systerm Library->Alertnate jre ->Instasled JREs->选择你安装的jre->finish. 
12 去掉两个td之间的间隔
.table{
border-collapse:collapse;
}
13. <load-on-startup>1</load-on-startup>,配置的作用:

1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。

2)它的值必须是一个整数,表示servlet应该被载入的顺序

2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

5)当值相同时,容器就会自己选择顺序来加载。

所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。

如下题目:

2.web.xml中不包括哪些定义(多选)

a.默认起始页

b.servlet启动延迟时间定义

c.error处理页面

d.jsp文件改动后重新载入时间

答案:b,d

通常大多数Servlet是在用户第一次请求的时候由应用服务器创建并初始化,但<load-on-startup>n</load-on-startup>   可以用来改变这种状况,根据自己需要改变加载的优先级!

14。<meta http-equiv="refresh" content="1;http://www.baidu.com"> 将这段代码加到html页面的head之间,页面会实现自动跳转,1秒之后自动跳转到百度

15.Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权)

该问题主要是你在还原的时候还有其他进程连在上面,导致无法获得独占造成的。 解决思路: 删除连在上面的进程,回滚未提交的事务,然后还原。 步骤 1.查询要还原的数据库ID Select * from master..sysdatabases where name = ''; 2.获取该数据库的进程 Select * from sys.sysprocesses a where a.dbid = ''; 3.杀掉连接在上面的进程 Kill spid; 此时去还原一般就可以了。但是今天的问题比较麻烦一点,删完进程马上有新的进程连进来,导致一直失败。分析了下,是还有应用程序一直尝试连进来的。一开始想到的办法是暂时断掉与应用的网络,后来想到另一个更简单的办法,使用数据库的单用户模式。尝试了下,可以在单用户下还原。 设置方式:选中要还原的数据库-->属性-->选项-->限制访问 该值从MULTI_USER修改为SINGLE_USER,此时该数据库就会显示为单用户模式 这是GUI的模式,语句的办法比较简单 USE MASTER GO ALTER DATABASE eol_tcgroup SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO 当然了,设置单用户数据库必须要超级用户

16. sql server 数据库中varchar和nvarchar的区别

1.带有var的代表存储可变长度的数据,不可变长度指输入不到设置长度时,后面会补充英文空格填充。n代表Unicode字符,表示存储方式是按字符存储(一个字符占用两个字节,实际存储的大小为输入数据长度的两倍;不带n的是按字节存储,实际存储的大小即为输入数据的本身长度,可见,varchar占用的存储空间少)

2.各自定义:varchar(n),长度为n个字节可变长度非Unicode的字节数据(0<n<8000);nvarchar(n),长度为n个字符可变长度Unicode字符数据(0<n<4000)

3.当存储的数据只包含英文而不包含汉字时可选用varchar类型,需要存储汉字并且需要和其他语言进行转换时,选用nvarchar类型,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;

4在数据检索中,一般来说char型字段的数据是最快的,varchar,nvarchar型字段其次。 在所存数据长度不一的情况下,varcahr型字段所占空间最少,char,nvarchar其次。 那么到底在什么样的情况下使用什么样的数据类型那? 如果你所存数据长度基本一致,建议使用char型。这样检索速度快,但是提取的时候要注意用trim()函数剔除所存数据两边的空格。 如果你所存数据长度差异较大,可以使用varchar或者nvarchar。如果你想较好的支持多语言的话,最好使用nvarchar。使用nvarchar可以减少字符转换问题,防止某些情况下乱码的出现。

17.div渐变:<div style="background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0, #D32727),color-stop(0.95, #F0F0F0),color-stop(1, #E5E5E5))">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值