1 propertise显示中文需要安装propertise中文插件,否则显示乱码
打开tomcat编辑参数
Arguments加入
-Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=256m
参考下载网页。
3 <%@ page import="org.json.simple.*" %>
Jar包未导入
记录ajax中的请求
5 Eclipse 的列编辑功能,只需要通过快捷键Alt+Shift+A 进入列编辑模式,修改完成后,再按一次 Alt+Shift+A 退出列编辑模式
6 WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。
1.多个Servlet通过ServletContext对象实现数据共享。
在InitServlet的Service方法中利用ServletContext对象存入需要共享的数据
/*获取ServletContext对象*/
ServletContext context = this.getServletContext();
//存入共享的数据
context.setAttribute("name", "haha");
在其它的Servlet中利用ServletContext对象获取共享的数据
/*获取ServletContext对象*/
ServletContext context = this.getServletContext();
//获取共享的数据
String name = context.getAttribute("name");
System.out.println("共享的内容值是:"+name);
9 logback日志配置
13 mysql查询所有表名
select table_name
from information_schema.tables
where table_schema='数据库名'
14 便利map获取参数
protected Map
Map
Map
for (Entry
String[] arr = entry.getValue;
params.put(entry.getKey(), arr);
}
return params;
}
15 clone方法 浅复制
public TWaybillsDetail clone() throws CloneNotSupportedException{
return (TWaybillsDetail)super.clone();
}
17
mysql使用concat 拼接字符串,防止sql注入
and a.bill_shipper_company like concat('%',#{billShipperCompany},'%')
MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
mysql> select concat('11','22',null);
mysql> select concat('11','22','33');
concat('11','22','33')
112233
18
还在用Not in为什么不用 join
在一次实际的业务中,检查SqlServer性能报表,客户的一个操作非常慢,检查报表后发现一个插入语句执行了11S,一个保存业务竟然有这么慢的SQL语句,检查发现是前辈在Insert into中使用了Not in。这里也不废话了想知道NOT IN为什么慢去百度一下吧,我就不说了。
后来我改写NOT IN为LEFT JOIN 整个插入由11S降到1S以内。我举个例子吧
not in 的写法:SELECT * FROM A WHERE ID NOT IN (SELECT ID FROM B),优化后是:select * from A LEFT JOIN B ON A.id=B.id where b.value is null
这两句效果是一下的可是在数据过多的情况下性能有10倍之差。我记得实际环境中表数据只有10000多条
19
/*TMemberExample memberExample = new TMemberExample();
Criteria criterialevel1 = memberExample.createCriteria();
criterialevel1.andObjectIdEqualTo(user.getObjectId()).andTypeEqualTo(user.getType()).andLevelEqualTo(1);
Criteria criterialevel2 = memberExample.createCriteria();
criterialevel2.andObjectIdEqualTo(user.getObjectId()).andTypeEqualTo(user.getType()).andLevelEqualTo(2);
memberExample.or(criterialevel2);
List
*/
20
UUID.randomUUID().toString();
24
项目流程 》 先请求静态页面html 》然后ajax请求 返回json数据
一.将long型转化为int型,这里的long型是基础类型:
long a = 10; int b = (int)a;
二.将Long型转换为int 型的,这里的Long型是包装类型:
Long a = 10; int b=a.intValue();
三.将int型转化为long型,这里的int型是基础类型:
int a = 10;long b = (int)a;
四.将Integer型转化为long型,这里的Integer型是包装类型:
int a = 10;Long b = a.longValue();
ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
String result=null;
try {
result = mapper.writeValueAsString(resultMap);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
32 equals
String sation=”1”;
tMember.getStation().equals("1") 结果true
tMember.getStation().equals(1)结果false
参数传递:list集合
List
for (TMember member : stationList) {
ids.add(member.getId());
}
Map
params.put("stationIds", ids);
Mapper.xml文件遍历
try {
newW.setId(w.getId());
//注意只能selective,否则会清空所有数据
tWaybillsMapper.updateByPrimaryKeySelective(newW);
} catch (Exception e) {
logger.error("生成运单二维码及条件码异常:"+e.getMessage());
e.printStackTrace();
}
不成功使用下面的解决方案。
今天生成api文档的时候,出现:编码GBK的不可映射字符的问题。我知道这肯定是字符编码的问题,但是不知如何解决,后来找到了解决之道
打开eclipse,project -> Generate javadoc ->next ->next -> Configure Javadoc arguments.
在Extra Javadoc options(path names with white spaces must be enclosed in quotes)一栏填入如下代码:
-encoding utf-8 -charset utf-8
这次就可以生成api文档
如代码所示:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
System.out.println("当前时间:" + sdf.format(now));
方法一:
Date afterDate = new Date(now .getTime() + 300000);
System.out.println(sdf.format(afterDate ));
方法二:
Calendar nowTime = Calendar.getInstance();
nowTime.add(Calendar.MINUTE, 5);
System.out.println(sdf.format(nowTime.getTime()));
1. 3. public static boolean isBlank(String str)
2. 判断某字符串是否为空或长度为0或由空白符(whitespace)构成
3. 下面是示例:
4. StringUtils.isBlank(null) = true
5. StringUtils.isBlank("") = true
6. StringUtils.isBlank(" ") = true
7. StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符StringUtils.isBlank()均识为空白符
8. StringUtils.isBlank("\b") = false //"\b"为单词边界符
9. StringUtils.isBlank("bob") = false
10. StringUtils.isBlank(" bob ") = false
44
org.apache.commons.collections.CollectionUtils
CollectionUtils.isNotEmpty(pickupWaybillsCarshifts)
45
hashMap 合并集合map1 map2
params.put("start", (Integer.parseInt(page) - 1) * (Integer.parseInt(rows)));
params.put("size", Integer.parseInt(rows));
params.putAll(map2);
47 mybatis 的mapper.xml文件中两个<select id="findReportTotal" 中的id有重复的话,启动tomcat 会一直解析xml文件,显示正在启动,在写id的时候需要搜索一下有没有重复。
48 js对象转换
// 序列化对象paramList
"roadAndOilFee":JSON.stringify(paramList)
//反序列化对象
$.parseJSON( json )
用 notepad++ 打开,把每一个将要放在表中单元格的内容放一行(注: ^ 代表行首 $ 代表行尾)
去除行尾空格和空白行:按CTRL+H 选择正则表达式– 查找目标:\s+$ 替换为空
去除行首空格:按CTRL+H 选择正则表达式– 查找目标:^\s+ 替换为空
正则表达式 : 以a开头,b结尾 a.*?b\
$表示行尾
^表示行首
A Failed to read artifact descriptor for xxx:jar
在Eclipse中执行Maven的install命令时,报“Failed to read artifact descriptor for xxx:jar ”的错误。这可能是在下载过程中文件出现错误,其实这个时候你用一些压缩软件比如RAR去打开这些jar包的时候,会提示jar包已经损坏。
解决办法:从本地的maven库中删除相关的jar包,然后右单击项目,Maven4MyEclipse->Update Project,在弹出的对话框中选择“Force Update Of Snapshots/Releases"
然后点击“OK”。这样就会重新下载这个jar包。
B 右键maven install 报错没有编译器
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
问题原因:eclipse官网看了看,发现eclipse默认是运行在jre上的,
但是maven插件需要使用jdk,因此需要在eclipse修改Installed JRES
位置在-->【Window】-->【Prefrences】-->【Java】-->【Installed JREs】
点击 Add 选择jdk安装目录,其余自动填写,ok, 勾选jdk。
在win7下用MyEclipse新建一个基于Maven的web工程的时候,报错:
Failure to transfer org.codehaus.plexus:plexus-components:pom:1.1.15 from http://repo1.maven.org/ma.....
原因是网络不稳定,文件没下成。
解决办法:按照报错信息逐级打开仓库的文件夹,进入到下载失败的文件夹删除.lastUpdated文件或者你可以直接搜 *.lastUpdated, 把搜索结果全删掉
a,b为对象
BeanUtils.copyProperties(a, b);
BeanUtils是org.springframework.beans.BeanUtils,a拷贝到b
BeanUtils是org.apache.commons.beanutils.BeanUtils,b拷贝到a
1 创建表的时候写注释
create table test1
(
field_name int comment '字段的注释'
)comment='表的注释';
2 修改表的注释
alter table test1 comment '修改后的表的注释';
3 修改字段的注释
alter table test1 modify column field_name int comment '修改后的字段注释';
--注意:字段名和字段类型照写就行
4 数据库添加字段
alter table t_adviser_info add hold int COMMENT '0持有,1未持有' after stockname
1. public static void main(String[] args)
2. {
3. System.out.println("Integer.MIN_VALUE = " + Integer.MIN_VALUE);
4. System.out.println("Integer.MAX_VALUE = " + Integer.MAX_VALUE);
5.
6. System.out.println("Long.MIN_VALUE = " + Long.MIN_VALUE);
7. System.out.println("Long.MAX_VALUE = " + Long.MAX_VALUE);
8.
9. System.out.println("Float.MIN_VALUE = " + Float.MIN_VALUE);
10. System.out.println("Float.MIN_NORMAL = " + Float.MIN_NORMAL);
11. System.out.println("Float.MAX_VALUE = " + Float.MAX_VALUE);
12.
13. System.out.println("Double.MAX_VALUE = " + Double.MAX_VALUE);
14. System.out.println("Double.MIN_VALUE = " + Double.MIN_VALUE);
15. }
62 正则表达式
必须且只含有数字和字母,6-10位。正则表达式
pattern = '/^[a-zA-Z0-9]{6,10}$/';
/*正则验证输入的用户名、 密码 、验证码*/
function regExValidate(){
var username = $("#username").val();
var myreg = /^[a-zA-Z0-9]{6,10}$/;
if(!myreg.test(username)){
$.message("warn","请正确填写手机号码");
return false;
}
}
注意: js 中正则不能写成'/^[a-zA-Z0-9]{6,10}$/',不能加单引号
//判断字符是否为空的方法
function isEmpty(obj){
if(typeof obj == "undefined" || obj == null || obj == ""){
return true;
}else{
return false;
}
}
Long重写了equals方法,如下:
public boolean equals(Object obj) {
if (obj instanceof Long) {
return value == ((Long)obj).longValue();
}
return false;
}
1.blob是二进制大对象,可以容纳可变量数量的数据,
其中blob分为4中类型:TINYBLOB,BLOB,mediumblob和LongBlob,他们容纳的长度是不同的.
Text同样也分为四种类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT
2.
blob被视为二进制字符串,
Text被视为非二进制字符串;
blob列没有字符集,并且排序和比较基于列值字节的数值值。
TEXT列有一个字符集,并且根据字符集的校对规则对值进行排序和比较。
在MySQL TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。如果截掉的字符不是空格,将会产生一条警告。
使用严格SQL模式,会产生错误,并且值将被拒绝而不是截取并给出警告.在大多数方面,可以将BLOB列视为能够足够大的VARBINARY列。同样,可以将TEXT列视为VARCHAR列。
3.BLOB和TEXT在以下几个方面不同于VARBINARY和VARCHAR.
BLOB和TEXT列不能有默认值.
onClose: function(){
$("#newPZTb").form("clear");
var SelectArr = $("#purposeStationId");
//清空表单后,设置select 默认值
SelectArr[0].options[0].selected = true;
}
Map
map.put("aaa", "aaaaaaaa");
map.put("bb00", "ssssss");
Iterator
while (iterator.hasNext()) {
Map.Entry
(Map.Entry
System.out.println(entry.getKey()+"==="+entry.getValue());
Description ResourcePathLocationType
cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param'. One of '{"http://java.sun.com/xml/ns/javaee":enabled,
控制台报错:严重: Servlet /*** threw load() exception
java.lang.ClassNotFoundException: MyApplication
解决办法:
if(selectedRows[0].station_id){
// selectedRows[0].station_id
如果为空false,有值true
}
@RequestMapping
(value="/list",produces="text/html;charset=UTF-8")
@ResponseBody
public String list(@RequestParam(value = "page",
required = false)
不加 produces="text/html;charset=UTF-8",返回页面中文乱码
public static String dateFormat(String datetime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Date date = null;
try {
date = sdf.parse(datetime);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cl = Calendar.getInstance();
cl.setTime(date);
cl.add(Calendar.MONTH, 0);
date = cl.getTime();
return sdf.format(date);
}
74 java.lang.UnsupportedOperationException
ListresultList=Collections.emptyList();
使用空集合后,resultList.add(map)报错
private void ListSort(List
Collections.sort(list, new Comparator
@Override
public int compare(MainBusinessReportDto o1, MainBusinessReportDto o2) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dt1 = o1.getDate();
Date dt2 = o2.getDate();
if (dt1.getTime() > dt2.getTime()) {
return -1;
} else if (dt1.getTime() < dt2.getTime()) {
return 1;
} else {
return 0;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
}
for source level below 1.7
1 配置jdk至少1.7
2 配置编译器环境1.7
3 项目右键 》 属性 》 project facets 》 java 选择1.7
Map
Map
sdk1.7以上才支持加括号中不写具体类型,所以要兼容低版本,最好尖括号中加上类型
同一个sql, 日期的格式不一样
params.put("formatType", "%Y-%m-%d");
params.put("formatType", "%Y-%m");
执行带"%Y-%m"格式的sql 放到navicat可以执行,但是映射成对象的时候报错,但是"%Y-%m-%d" 这种格式的没问题
解决办法 :
date显示的是2017-02,默认添加上天数
CONCAT(main.send_time ,'-01') date
选择注解,查看源码,然后关联
重点调试spring mvc的DispatcherServlet,选择的文件目录为spring-webmvc
参考博客:
http://blog.csdn.net/niclascage/article/details/47451967
private Integer id;
private String username;
private String address;
List
<resultMap type="cn.it.pojo.UserItems" id="personBean">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="address" property="address"/>
<collection property="list" ofType="cn.it.pojo.Items">
<id column="itemsId" property="id"/>
<result column="name" property="name"/>
<result column="detail" property="detail"/>
collection>
resultMap>
<select id="selectUserItemsById" parameterType="int" resultMap="personBean">
select u.*,i.*,i.id as itemsId from user u,items i
where u.id = i.uid and u.id= 10
select>
重点:两个表的id列名字段不能相同,需要使用别名区别开,例子如上 i.id as itemsId
new Integer("")之间的区别
唯一的区别就是Integer.valueOf(“”)返回的是一个Integer对象,
而Integer.parseInt(“”)返回的是一个基本类型的int。
public class CompareTo_Date {
@Test
public void test() {
Calendar c = Calendar.getInstance();
c.set(2016,5,4);
Date before =c.getTime();
c.set(2016,5,5);
Date now=c.getTime();
c.set(2016,5,6);
Date after=c.getTime();
//before早于now,返回负数,可用于判断活动开始时间是否到了
int compareToBefore=before.compareTo(now);
System.out.println("compareToBefore = "+compareToBefore);
int compareToIntNow=now.compareTo(now);
System.out.println("compareToIntNow = "+compareToIntNow);
//after晚于now,返回正数,可用于判断活动结束时间是否到了
int compareToIntAfter=after.compareTo(now);
System.out.println("compareToIntAfter = "+compareToIntAfter);
}
}
compareToBefore = -1
compareToIntNow = 0
compareToIntAfter = 1
1.jQuery对象转DOM对象
var $li = $(“li”);
推荐使用 $li[0]
2.DOM对象转jQuery对象
var $obj = $(domObj);
// $(document).ready(function(){});就是典型的DOM对象转jQuery对象
JSON.parse() :字符串转js对象
JSON.stringify() :对象转字符串
1 生成变量名的快捷键
看eclipse里面的快捷键Extract Local Variable这个对应的快捷键是什么,我的是alt+shift+l
2 shift+ctrl+l 快捷键提示
3 setter getter alt+SHIFT +S+R
4 构造函数 alt+shift+s+o
5 java 注释快捷键 》 ctrl+/
6 xml 文件注释 ctrl +shift + / ctrl+shift+\
7 输入法有问题 shift+空格
----------------------------------------------------------------
什么是序列化: 序列化理解成“打碎”是可以的,不过在书本上的名词就是将对象转换成二进制。
序列化是将 对象状态 转换为 可保持或传输的格式的过程。说明白点就是你可以用对象输出流输出到文件或者参与网络传输
----------------------------------------------------------------
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
----------------------------------------------------------------
Servlet 生命周期
Servlet 通过调用 init () 方法进行初始化。
Servlet 调用 service() 方法来处理客户端的请求。
Servlet 通过调用 destroy() 方法终止(结束)。
最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
----------------------------------------------------------------
var cookie = {
set:function(key,val,time){//设置cookie方法
var date=new Date(); //获取当前时间
var expiresDays=time; //将date设置为n天以后的时间
date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化为cookie识别的时间
document.cookie=key + "=" + val +";expires="+date.toGMTString(); //设置cookie
},
get: function (c_name) {//获取cookie方法
if (document.cookie.length > 0) {//先查询cookie是否为空,为空就return ""
c_start = document.cookie.indexOf(c_name + "=")//通过String对象的indexOf()来检查这个cookie是否存在,不存在就为 -1
if (c_start != -1) {
c_start = c_start + c_name.length + 1//最后这个+1其实就是表示"="号啦,这样就获取到了cookie值的开始位置
c_end = document.cookie.indexOf(";", c_start)//其实我刚看见indexOf()第二个参数的时候猛然有点晕,后来想起来表示指定的开始索引的位置...这句是为了得到值的结束位置。因为需要考虑是否是最后一项,所以通过";"号是否存在来判断
if (c_end == -1) c_end = document.cookie.length
return unescape(document.cookie.substring(c_start, c_end))//通过substring()得到了值。想了解unescape()得先知道escape()是做什么的,都是很重要的基础,想了解的可以搜索下,在文章结尾处也会进行讲解cookie编码细节
}
}
return ""
},
delete:function(key){ //删除cookie方法
var date = new Date(); //获取当前时间
date.setTime(date.getTime()-10000); //将date设置为过去的时间
document.cookie = key + "=v; expires =" +date.toGMTString();
//设置cookie
return tips;
}
}
// cookie.set("uesr", "sss", 24);//设置为24天过期
//alert(cookie.get("uesr"));//获取cookie
----------------------------------------------------------------
属性文件 保存的磁盘路径格式
HTML_OUT_PATH=D:/temp/java/item/
----------------------------------------------------------------
maven 运行命令 clean tomcaat7:run
跳过测试命令: install -DskipTests
----------------------------------------------------------------
maven 添加依赖 :1 直接从父工程中pom文件中copy
2 在工程中右键 maven ,adddependency 》输入jar包名字
----------------------------------------------------------------
mysql 统计重复的 username 次数
select * ,COUNT(*) as count FROM `user` GROUP BY `user`.username
查询分组后 每个组id最大最小的
select * ,COUNT(*),max(id),MIN(id) FROM `user` GROUP BY `user`.username
查询出来 需要的id,然后 not in 删除重复的数据
----------------------------------------------------------------
junit 整合spring 测试:
加载配置文件classpath:applicationn-*.xml 可以从本工程中加载
从jar包中加载 使用classpath*:applicationn-*.xml
来源:maven 分模块-web
----------------------------------------------------------------
Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新;
原来mysql的批量更新是要我们主动去设置的, 就是在数据库的连接url上设置一下,加上* &allowMultiQueries=true *即可。
var ajax = jQuery.ajax;
jQuery.extend({
ajax: function(options){
var succ = options.success;
options.success = function(result, status, xhr){
if(checkLogin(xhr)){
succ(result, status, xhr);
}
};
ajax(options);
}
});
success
Type: Function( Anything data, String textStatus, jqXHR jqXHR )
A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the dataType parameter or the dataFilter callback function, if specified; a string describing the status; and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.
Map
当上传excel文件时,请求头为
Content-Type: multipart/form-data;
Tomcat不放入参数到ParameterMap中,所以获取不到
application/x-www-form-urlencoded
浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据
multipart/form-data
使用表单上传文件时,必须让 form 的 enctyped 等于这个值
application/json
用来告诉服务端消息主体是序列化后的 JSON 字符串
text/xml
是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范
BEGIN
-- 历史表主键
DECLARE primaryKey BIGINT(20);
-- 更新的用户名字
DECLARE userName varchar(64);
-- 遍历数据结束标志
DECLARE isEnd INT DEFAULT FALSE;
-- 游标
DECLARE cur_account CURSOR FOR
select a.id,b.`name`
from user;
-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET isEnd = TRUE;
-- 打开游标
OPEN cur_account;
-- 遍历
read_loop: LOOP
-- 从游标中取多个字段放到定义的变量中,该示例 id对应primaryKey,name 对应 userName,注意字段顺序
FETCH NEXT from cur_account INTO primaryKey,userName;
IF isEnd THEN
LEAVE read_loop;
END IF;
-- 自己想做的操作
UPDATE userInfo
SET update_user_name = userName
WHERE id = primaryKey;
END LOOP;
CLOSE cur_account;
END
/*/**.html=authc
/*/**.json=authc
注意:多层url拦截方式 需要配置为一层一层拦截,
三层url配置三个/*
四层url配置四个/*
配置为/**拦截不到
show global variables like "%datadir%";
此方法不能正确下载jar 包
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>3.0.1version>
<scope>providedscope>
dependency>
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>jsp-apiartifactId>
<version>2.0version>
dependency>
<if test="ids != null and ids !=''" >
and a.belong_station_id in
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
foreach>
if>
改为:
<if test="ids != null and ids.size() > 0" >
and a.belong_station_id in
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
foreach>
if>
解决办法:
· Java Build Path >> Libraries
· JRE System Lybrary >> Edit
· Installed JREs >> click on my jdk >> edit
· Add External Jars >> tools.jar
1. 在eclipse中在target/目录上右键属性,勾选 derived 复选框。
2. 执行快速搜索时,在右上角的菜单中把"Show derived resources"的选项去掉。
通过上面url-pattern的配置,所有URL请求都将被Spring MVC的DispatcherServlet截获。
方法1.采用
<mvc:resources location="/plugins/" mapping="/plugins/**"/>
首先查找到占用8080端口的进程号PID
netstat -ano | findstr 8080
关闭进程:
taskkill /f /pid 9572
打开虚拟机时,选择移动此虚拟机,不选择复制虚拟机,否则不能启动,mac地址报错
Xshell连结虚拟机
1 配置网络模式
2 配置网段
3 ifconfig eth0 192.168.168.110 命令来设置虚拟机ip地址
注意:虚拟机与电脑ip地址处于同一个网段
4 xshell 新建连接,ip地址未虚拟机的ip,端口号默认未22
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project SSM-Test2: Compilation failure
[ERROR] Unable to locate the Javac Compiler in
解决办法 : maven updateproject 解决问题
select *,DATE_FORMAT(create_time, '%Y-%m') create_time from user
where
-- create_time > '2018-03'
create_time > '2018-3'
2018-3 作为查询条件,将不会查询到数据
SELECT
company_name,
month,
sum(case when DATE_FORMAT(a.month, '%Y-%m') = '2018-04' then month_turnover else 0 end) as 当月,
sum(case when DATE_FORMAT(a.month, '%Y-%m') = '2018-03' then month_turnover else 0 end) as 上月
from user a
WHERE company_id >0
GROUP BY company_name
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
<logger name="org.hibernate.validator" level="OFF">logger>
<logger name="net.sf.ehcache" level="OFF">logger>
<logger name="org.jboss" level="OFF">logger>
<logger name="com.tms.service.Impl">
<level value="DEBUG">level>
<appender-ref ref="timeAdvice" />
logger>
bill_consignee_tel',width:100">收货人手机
bill_consignee_addr',width:100">收货地址
正则表达式 : a.*?b就是a开始b结束的匹配
如果要限制是一行的开头和末尾的话就是 ^a.*?b$
获取字段的表达式为 : '.*?th> 以 ‘ 开始,th> 结尾
方法一:
1. String jsonString="[{'id':'1'},{'id':'2'}]";
2. ObjectMapper mapper = new ObjectMapper();
3. JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, Bean.class);
4. //如果是Map类型 mapper.getTypeFactory().constructParametricType(HashMap.class,String.class, Bean.class);
5. List
方法二:
1. String jsonString="[{'id':'1'},{'id':'2'}]";
2. ObjectMapper mapper = new ObjectMapper();
3. List>() {});
一、HTML :
双引号:"
单引号:'
二、JavaScript:
双引号:\"
单引号:\'