java项目相关知识点整理
1。Split
Publicstring〔〕split(stringregex,intlimit){
Returnpattern。compile(regex)。split(this,limit);
}
Regex是正则表达式,limit影响结果数组长度,大于0时,数组长度小于或等于limit,limit为非正时,数组长度为其可能的最大值,但是limit为0时,会告诫结尾的空字符串
Stringsss,ss,,,,
Limit为0时{ss,ss}
Limit为负时{ss,ss,,,,}
2。hibernate和数据库字段默认值
如果在数据表中设置了一个字段的默认值(比如说默认当前日期之类的),并且该字段又不允许为空。如果是用Eclipse中的反向工程对该数据生成的POJO类和hbm。xml映射文件,这时应该要修改映射文件中的两个地方才能正常使用数据库中的默认值。
一是将dynamicinsert设置为true
二是将对应字段的属性设置notnull为false
比如:
classnamecom。yorker。netmarket。pojo。CustordertabletableName
schemadbocatalogdatabaseNamedynamicinserttruedynamicupdatetrue
。。。。
property
class
Hibernate允许我们在映射文件里控制insert和update语句的内容。比如在映射文件中property元素中的update属性设置成为false,那么这个字段,将不被包括在基本的update语句中,修改的时候,将不包括这个字段了。insert同理。dynamic动态SQL语句的配置也是很常用的。下面介绍配置SQL语句的具体属性:
1)元素insert属性:设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true
2)元素update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true
3)元素mutable属性:设置为false就是把所有的元素的update属性设置为了false,说明这个对象不会被更新,默认true
4)元素dynamicinsert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中。默认false
5)元素dynamicupdate属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false
6)元素dynamicinsert属性:设置为true,表示把所有的元素的dynamicinsert属性设置为true,默认false
7)元素dynamicupdate属性:设置为true,表示把所有的元素的dynamicupdate属性设置为true,默认false
Hibernate生成动态SQL语句的消耗的系统资源(比如CPU,内存等)是很小的,所以不会影响到系统的性能,如果表中包含N多字段,建议把dynamicupdate属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包括要插入或者修改的字段。可以节省SQL语句的执行时间,提高程序的运行效率。
3。hibernateSQL查询
selectu。filenameFromtmpfileuwhereu。status1andu。codecode;
例如上面的sql,返回结果只有一条
Listlistsession。createSQLQuery(sql)。list();
Stringfilenamelist。get(0);
不能使用ListObject〔〕listsession。createSQLQuery(sql)。list();
否则会报java。lang。Stringcannotbecastto〔Ljava。lang。Object;
4。Calendar
CalendarcalCalendar。getInstance();
SimpleDateFormatformatnewSimpleDateFormat(yyyyMMdd);
try{
cal。setTime(format。parse(ddates〔0〕));
}catch(ParseExceptione){
e。printStackTrace();
}
intsmonthcal。get(Calendar。MONTH)1;
intsmaxDaycal。getActualMaximum(Calendar。DAYOFMONTH);
ddates〔0〕月最大天数
4。根据表名获取对应的实体名
如要获取所有的表名及其实体名,方法如下:
SessionFactoryfactorythis。getHibernateTemplate()
。getSessionFactory();
MapmetaMapfactory。getAllClassMetadata();
for(Stringkey:(Set)metaMap。keySet()){
count;
AbstractEntityPersisterclassMetadata(AbstractEntityPersister)metaMap
。get(key);
StringtableNameclassMetadata。getTableName()。toLowerCase();
StringclassNameclassMetadata。getEntityMetamodel()。getName();实体名(含包路径)
if(logger。isDebugEnabled()){
logger。debug(tableNameclassName);
}
System。out。println(className。substring(className。lastIndexOf(。)1));实体名
}
5。将查询结果封装成pojo
Stringsqlselecta。,b。namefroma,bwhere;
ListObject〔〕listdao。createSQLQuery(sql)。addEntity(实体。class)。addScalar(name)。list();
if(!CollectionUtils。isEmpty(list)){
for(inti0;ilist。size();i){
Object〔〕objlist。get(i);
实体名obj(实体名)obj〔0〕;
Stringname(String)obj〔1〕;
obj。setName(name);可以将name设置成实体的一个非映射表字段的属性后再set
}
}
6。进程
tskill进程id杀死进程
7。svn
删除svn用户的方法为删除C:UsersenovoAppDataRoamingSubversionauthsvn。simple
2。如果是用的JavaHL,找到以下目录并删除auth目录。
C:DocumentsandSettings〔YourUserName〕ApplicationDataSubversion
3。如果你用的SVNKit,找到以下目录并删除。keyring文件。
〔eclipse〕configurationorg。eclipse。core。runtime
8。myeclipse高亮显示
在eclipsemyeclipse中如果不小心把变量的高亮显示弄丢了。可真是件愁人的事,不过看到这你就不用愁了
windowspreferencesjavaEditorMarkOccurences
最上边的大标题的复选框勾上,下面的就都可以高亮显示了,Localvariables是变量的高亮显示
9。ArrayList、LinkedList、数组
1。ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2。对于随机访问get和set,ArrayList优于LinkedList,因为ArrayList可以随机定位,而LinkedList要移动指针一步一步的移动到节点处。(参考数组与链表来思考)
3。对于新增和删除操作add和remove,LinedList比较占优势,只需要对指针进行修改即可,而ArrayList要移动数据来填补被删除的对象的空间。
ArrayList类与数组用法上的区别
1、数组的容量是固定的(虽然也可以扩充的方法,但不主张),而ArrayList的容量是动态的。
2、一个数组只能保存一种类型,而Arraylist可以保存不同类型。
3、数组可以保存基本数据类型,但ArrayList不可以,它保存的是OBJECT类的引用,因此在取出元素时,要做类型转换。
4、数组不能声明为只读数组,而ArrayList可以提供ReadOnly方法,以只读的方式使用。
5、数组的效率高,但ArrayList的效率低。当增加一个新元素时,ArrayList首先要检查其内
部数组是否越界,如没有越界,则可增加;如越界,则新建一个两倍于当前内部数组容量的新数组,将旧内部数组的元素拷贝至新内部数组,并废弃旧数组,因此其效率相比数组要低。
9。的的区别
表示右移,如:inti15;i2的结果是3,移出的部分将被抛弃。
转为二进制的形式可能更好理解,00001111(15)右移2位的结果是00000011(3),00011010(18)右移3位的结果是00000011(3)。
ji与j(int)(Math。pow(2,i))的结果相同,其中i和j是整形。
10。CXF
Cantfindtherequestforhttp:localhost:8080。dosObserver
一般这个错是你可能在项目中用到了cxf,在web。xml中cxf的配置中你可能urlpattern配置为,
解决办法:
你在客户端删掉web。xml中的cxf配置或者是在mapping中不要让它映射所有
CXFServlet
加上路径
servletmapping
不然就会首先映射CXFServlet,就会找不到服务
11。UTF8环境设置
建置全UTF8的環境:
1。在eclipse。ini的vmargs下面加上Dfile。encodingUTF8。
2。eclipseWindowPreferencesGeneralWorkspaceTextfileencodingUTF8
3。InstalledJREsDefaultVMArguments:Dfile。encodingUTF8
4。eclipseRunRunConfigurationsArgumentsVMargumentsDfile。encodingUTF8
下面两个作用未明,使用以上步骤即可
5。eclipseRunRunConfigurationCommon頁籤ConsoleEncodingOthersUTF8
亂碼!
5。eclipseRunRunConfigurationCommon頁籤ConsoleEncodingOthersbig5
ok!
12。spring注解
12。1Repository、Service和Controller、Component
Spring2。5中除了提供Component注释外,还定义了几个拥有特殊语义的注释,它们分别是:Repository、Service和Controller。在目前的Spring版本中,这3个注释和Component是等效的,但是从注释类的命名上,很容易看出这3个注释分别和持久层、业务层和控制层(Web层)相对应。虽然目前这3个注释和Component相比没有什么新意,但Spring将在以后的版本中为它们添加特殊的功能。所以,如果Web应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用Repository、Service和Controller对分层中的类进行注释,而用Component对那些比较中立的类进行注释。
12。2Autowired与Resource
1、Autowired与Resource都可以用来装配bean。都可以写在字段上,或写在setter方法上。
2、Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:
Autowired(requiredfalse),如果我们想使用名称装配可以结合Qualifier注解进行使用,如下:
Java代码
1。Autowired()Qualifier(baseDao)
2。privateBaseDaobaseDao;
3、Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定,
如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
12。3action注解
总结常用的注解如下:
Namespace:指定命名空间。
ParentPackage:指定父包。
Result:提供了Action结果的映射。(一个结果的映射)
Results:Result注解列表
ResultPath:指定结果页面的基路径。
Action:指定Action的访问URL。
Actions:Action注解列表。
ExceptionMapping:指定异常映射。(映射一个声明异常)
ExceptionMappings:一级声明异常的数组。
InterceptorRef:拦截器引用。
InterceptorRefs:拦截器引用组。
例子:
Struts2基于注解的Action配置
ParentPackage(strutsdefault)
Namespace(annotationtest)
Results({Result(namesuccess,locationmain。jsp),
Result(nameerror,locationerror。jsp)})
ExceptionMappings({ExceptionMapping(exceptionjava。lange。RuntimeException,resulterror)})
publicclassLoginActionextendsActionSupport{
privatestaticfinallongserialVersionUID2730268055700929183L;
privateStringloginName;
privateStringpassword;
Action(login)或者写成Action(valuelogin)
publicStringlogin()throwsException{
if(yjd。equals(loginName)yjd。equals(password)){
returnSUCCESS;
}else{
returnERROR;
}
}
Action(valueadd,results{Result(namesuccess,locationindex。jsp)})
publicStringadd()throwsException{
returnSUCCESS;
}
13。hibernate注解
不使用注解时的hibernate配置
1。hrclasspath:com
2。hrcom。hbm。xml
list
使用注解时配置改为:
1。hrcom
list
2。hrcom。
list
property
1。Entity(nameEntityName)
必须,name为可选,对应数据库中一的个表
2、Table(name,catalog,schema)
可选,通常和Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息
name:可选,表示表的名称。默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名
catalog:可选,表示Catalog名称,默认为Catalog()。
schema:可选,表示Schema名称,默认为Schema()。
3、id
必须
id定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键。置于getXxxx()前。
4、GeneratedValue(strategyGenerationType,generator)
可选
strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE和TABLE4种,分别表示让ORM框架自动选择,
根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生成主键,默认为AUTO
generator:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定uuid等主键生成方式。
示例:
Id
GeneratedValues(strategyStrategyType。SEQUENCE)
publicintgetPk(){
returnpk;
}
5、Basic(fetchFetchType,optionaltrue)
可选
Basic表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXxxx()方法,默认
即为Basic
fetch:表示该属性的读取策略,有EAGER和LAZY两种,分别表示主支抓取和延迟加载,默认为EAGER。
optional:表示该属性是否允许为null,默认为true
示例:
Basic(optionalfalse)
publicStringgetAddress(){
returnaddress;
}
6、Column
可选
Column描述了数据库表中该字段的详细定义,这对于根据JPA注解生成数据库表结构的工具非常有作用。
name:表示数据库表中该字段的名称,默认情形属性名称一致
nullable:表示该字段是否允许为null,默认为true
unique:表示该字段是否是唯一标识,默认为false
length:表示该字段的大小,仅对String类型的字段有效
insertable:表示在ORM框架执行插入操作时,该字段是否应出现INSETRT语句中,默认为true
updateable:表示在ORM框架执行更新操作时,该字段是否应该出现在UPDATE语句中,默认为
true。对于一经创建就不可以更改的字段,该属性非常有用,如对于birthday字段。
columnDefinition:表示该字段在数据库中的实际类型。通常ORM框架可以根据属性类型自动判
断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是
TIMESTAMP。此外,String的默认映射类型为VARCHAR,如果要将String类型映射到特定数据库的
BLOB或TEXT字段类型,该属性非常有用。
示例:
Column(nameBIRTH,nullablefalse,columnDefinitionDATE)
publicStringgetBithday(){
returnbirthday;
}
7、Transient
可选
Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。
如果一个属性并非数据库表的字段映射,就务必将其标示为Transient,否则,ORM框架默认其注解为Basic
示例:
根据birth计算出age属性
Transient
publicintgetAge(){
returngetYear(newDate())getYear(birth);
}
8、ManyToOne(fetchFetchType,cascadeCascadeType)
可选
ManyToOne表示一个多对一的映射,该注解标注的属性通常是数据库表的外键
optional:是否允许该字段为null,该属性应该根据数据库表的外键约束来确定,默认为true
fetch:表示抓取策略,默认为FetchType。EAGER
cascade:表示默认的级联操作策略,可以指定为ALL,PERSIST,MERGE,REFRESH和REMOVE中的若干组合,默认为无级联操作
targetEntity:表示该属性关联的实体类型。该属性通常不必指定,ORM框架根据属性类型自动判断targetEntity。
示例:
订单Order和用户User是一个ManyToOne的关系
在Order类中定义
ManyToOne()
JoinColumn(nameUSER)
publicUsergetUser(){
returnuser;
}
9、JoinColumn
可选
JoinColumn和Column类似,介量描述的不是一个简单字段,而一一个关联字段,例如。描述一个ManyToOne的字段。
name:该字段的名称。由于JoinColumn描述的是一个关联字段,如ManyToOne,则默认的名称由其关联的实体决定。
例如,实体Order有一个user属性来关联实体User,则Order的user属性为一个外键,其默认的名称为实体User的名称下划线实体User的主键名称
示例:
见ManyToOne
10、OneToMany(fetchFetchType,cascadeCascadeType)
可选
OneToMany描述一个一对多的关联,该属性应该为集体类型,在数据库中并没有实际字段。
fetch:表示抓取策略,默认为FetchType。LAZY,因为关联的多个对象通常不必从数据库预先读取到内存
cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其关联的实体也应当被更新或删除
例如:实体User和Order是OneToMany的关系,则实体User被删除时,其关联的实体Order也应该被全部删除
示例:
OneTyMany(cascadeALL)
publicListgetOrders(){
returnorders;
}
11、OneToOne(fetchFetchType,cascadeCascadeType)
可选
OneToOne描述一个一对一的关联
fetch:表示抓取策略,默认为FetchType。LAZY
cascade:表示级联操作策略
示例:
OneToOne(fetchFetchType。LAZY)
publicBloggetBlog(){
returnblog;
}
12、ManyToMany
可选
ManyToMany描述一个多对多的关联。多对多关联上是两个一对多关联,但是在ManyToMany描述中,中间表是由ORM框架自动处理
targetEntity:表示多对多关联的另一个实体类的全名,例如:package。Book。class
mappedBy:表示多对多关联的另一个实体类的对应集合属性名称
示例:
User实体表示用户,Book实体表示书籍,为了描述用户收藏的书籍,可以在User和Book之间建立ManyToMany关联
Entity
publicclassUser{
privateListbooks;
ManyToMany(targetEntitypackage。Book。class)
publicListgetBooks(){
returnbooks;
}
publicvoidsetBooks(Listbooks){
this。booksbooks;
}
}
Entity
publicclassBook{
privateListusers;
ManyToMany(targetEntitypackage。Users。class,mappedBybooks)
publicListgetUsers(){
returnusers;
}
publicvoidsetUsers(Listusers){
this。usersusers;
}
}
两个实体间相互关联的属性必须标记为ManyToMany,并相互指定targetEntity属性,需要注意的是,有且只有一个实体的ManyToMany注解需要指定mappedBy属性,指向targetEntity的集合属性名称
利用ORM工具自动生成的表除了User和Book表外,还自动生成了一个UserBook表,用于实现多对多关联
13、MappedSuperclass
可选
MappedSuperclass可以将超类的JPA注解传递给子类,使子类能够继承超类的JPA注解
示例:
MappedSuperclass
publicclassEmployee(){
。。。。
}
Entity
publicclassEngineerextendsEmployee{
。。。。。
}
Entity
publicclassManagerextendsEmployee{
。。。。。
}
14、Embedded
可选
Embedded将几个字段组合成一个类,并作为整个Entity的一个属性。
例如User包括id,name,city,street,zip属性。
我们希望city,street,zip属性映射为Address对象。这样,User对象将具有id,name和address这三个属性。
Address对象必须定义为Embededable
示例:
Embeddable
publicclassAddress{city,street,zip}
Entity
publicclassUser{
Embedded
publicAddressgetAddress(){
。。。。。。。。。。
}
}
14。springMVC
1。需要请求到后台的页面参数必须包含id属性,否则会出现页面不跳转,也不报错的情况
15。java文件下载的几种方式
publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){
try{
path是指欲下载的文件的路径。
FilefilenewFile(path);
取得文件名。
Stringfilenamefile。getName();
取得文件的后缀名。
Stringextfilename。substring(filename。lastIndexOf(。)1)。toUpperCase();
以流的形式下载文件。
InputStreamfisnewBufferedInputStream(newFileInputStream(path));
byte〔〕buffernewbyte〔fis。available()〕;
fis。read(buffer);
fis。close();
清空response
response。reset();
设置response的Header
response。addHeader(ContentDisposition,attachment;filenamenewString(filename。getBytes()));
response。addHeader(ContentLength,file。length());
OutputStreamtoClientnewBufferedOutputStream(response。getOutputStream());
response。setContentType(applicationoctetstream);
toClient。write(buffer);
toClient。flush();
toClient。close();
}catch(IOExceptionex){
ex。printStackTrace();
}
returnresponse;
}
publicvoiddownloadLocal(HttpServletResponseresponse)throwsFileNotFoundException{
下载本地文件
StringfileNameOperator。doc。toString();文件的默认保存名
读到流中
InputStreaminStreamnewFileInputStream(c:Operator。doc);文件的存放路径
设置输出的格式
response。reset();
response。setContentType(bin);
response。addHeader(ContentDisposition,attachment;filenamefileName);
循环取出流中的数据
byte〔〕bnewbyte〔100〕;
intlen;
try{
while((leninStream。read(b))0)
response。getOutputStream()。write(b,0,len);
inStream。close();
}catch(IOExceptione){
e。printStackTrace();
}
}
publicvoiddownloadNet(HttpServletResponseresponse)throwsMalformedURLException{
下载网络文件
intbytesum0;
intbyteread0;
URLurlnewURL(windine。blogdriver。comlogo。gif);
try{
URLConnectionconnurl。openConnection();
InputStreaminStreamconn。getInputStream();
FileOutputStreamfsnewFileOutputStream(c:abc。gif);
byte〔〕buffernewbyte〔1204〕;
intlength;
while((bytereadinStream。read(buffer))!1){
bytesumbyteread;
System。out。println(bytesum);
fs。write(buffer,0,byteread);
}
}catch(FileNotFoundExceptione){
e。printStackTrace();
}catch(IOExceptione){
e。printStackTrace();
}
}
支持在线打开文件的一种方式
publicvoiddownLoad(StringfilePath,HttpServletResponseresponse,booleanisOnLine)throwsException{
FilefnewFile(filePath);
if(!f。exists()){
response。sendError(404,Filenotfound!);
return;
}
BufferedInputStreambrnewBufferedInputStream(newFileInputStream(f));
byte〔〕bufnewbyte〔1024〕;
intlen0;
response。reset();非常重要
if(isOnLine){在线打开方式
URLunewURL(file:filePath);
response。setContentType(u。openConnection()。getContentType());
response。setHeader(ContentDisposition,inline;filenamef。getName());
文件名应该编码成UTF8
}else{纯下载方式
response。setContentType(applicationxmsdownload);
response。setHeader(ContentDisposition,attachment;filenamef。getName());
}
OutputStreamoutresponse。getOutputStream();
while((lenbr。read(buf))0)
out。write(buf,0,len);
br。close();
out。close();
}
16。json转换需要的jar包
commonslang33。1。jar与commonslang2。4。jar的包路径不同
jsonlib2。1。jar需要的是版本2的commonslang
commonsbeanutils1。8。0。jar不加这个包
java。lang。NoClassDefFoundError:orgapachecommonsbeanutilsDynaBean
commonscollections。jar不加这个包
java。lang。NoClassDefFoundError:orgapachecommonscollectionsmapListOrderedMap
commonslang2。4。jar不加这个包
java。lang。NoClassDefFoundError:orgapachecommonslangexceptionNestableRuntimeException
commonslogging1。1。1。jar不加这个包
java。lang。NoClassDefFoundError:orgapachecommonsloggingLogFactory
ezmorph1。0。4。jar不加这个包
java。lang。NoClassDefFoundError:netsfezmorphMorpher
jsonlib2。3jdk15。jar不加这个包
java。lang。NoClassDefFoundError:netsfjsonJSONObject
17spring事务
同一个类的不同方法相互调用,内层方法配置Propagation。REQUIRESNEW后该事务不会单独进行提交,而是和外层的事务一起提交。
Transactional加于private方法,无效
Transactional加于未加入接口的public方法,再通过普通接口方法调用,无效
Transactional加于接口方法,无论下面调用的是private或public方法,都有效
Transactional加于接口方法后,被本类普通接口方法直接调用,无效
Transactional加于接口方法后,被本类普通接口方法通过接口调用,有效
Transactional加于接口方法后,被它类的接口方法调用,有效
Transactional加于接口方法后,被它类的私有方法调用后,有效
TransactionDefinition。PROPAGATIONREQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是默认值。
TransactionDefinition。PROPAGATIONREQUIRESNEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。
TransactionDefinition。PROPAGATIONSUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
TransactionDefinition。PROPAGATIONNOTSUPPORTED:以非事务方式运行,如果当前存在事务,则把当前事务挂起。
TransactionDefinition。PROPAGATIONNEVER:以非事务方式运行,如果当前存在事务,则抛出异常。
TransactionDefinition。PROPAGATIONMANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
TransactionDefinition。PROPAGATIONNESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于TransactionDefinition。PROPAGATIONREQUIRED。
Spring的AOP即声明式事务管理默认是针对uncheckedexception回滚。Spring的事务边界是在调用业务方法之前开始的,业务方法执行完毕之后来执行commitorrollback(Spring默认取决于是否抛出runtimeException)。
Spring事务的回滚机制:
如果你在方法中有try{}catch(Exceptione){}处理,那么try里面的代码块就脱离了事务的管理,若要事务生效需要在catch中thrownewRuntimeException(xxxxxx);
18jvm设置
JAVAOPTSXms512mXmx2048mXX:PermSize128mXX:MaxPermSize512m
当内存溢出时自动生成dump文件
XX:HeapDumpOnOutOfMemoryErrorXX:HeapDumpPathhomebiappm。hprof
已经内存溢出且未配置参数时手动抓取dump文件
jmapdump:formatb,file文件名〔pid〕
19在eclipse中debug模式下,修改方法中的代码,而不重启服务器(部分修改必须重启)
20Ajax传数组至后台注意事项
防止深度序列化(不加后台接收到的数组会为空)
增加参数traditional:true,
21ibatis中的orderby参数配置问题
总结如下:
1。是把传入的数据当作字符串,如field传入的是id,则sql语句生成是这样,orderbyid,这当然会报错
2。传入的数据直接生成在sql里,如field传入的是id,则sql语句生成是这样,orderbyid,这就对了如:
!〔CDATA〔orderbyorderBy〕〕
!〔CDATA〔descOrAsc〕〕
isNotNull
3。方式能够很大程度防止sql注入
4。方式一般用于传入数据库对象例如传入表名。
5。一般能用的就别用。
遇到的问题是orderby后面的字段是动态的,有时候用字段1,有时候用字段2
sqlmap的配置为:
obderbymytag1
isNotEmpty
obderby字段2
isNotEmpty
大美人设计的衣服,没想到这么好穿以往F君写关于极简风的推文,总忍不住给大家推荐TheFrankieshop。原因无他,其颜值,时髦感,性价比之高,足以让一众ins博主心甘情愿成为忠粉。但自从超模ElsaHosk在
83版射雕英雄传的外景地,您惊了吧?83版射雕英雄传的外景地是香港大屿山,您惊了吧?香港秋天的美都在郊野,比如,看秋色荒草兮兮绚烂多彩的大東山。香港大东山芒草季节的跳板石来个叶问蹲悬崖挂开心快乐一下,美在身边,时时处
年底换机攻略20004000元价位成热门首选,这三款机型最香!文手机技巧库转眼间来到了年底,回顾起今年的手机市场,厂商之间的竞争依旧是十分激烈。一整年里面发布的骁龙8旗舰天玑9000系列旗舰,已经数不清了。而近段时间,很多用户都有换机的需求,
畅享海南免税购物,请收好这份攻略!随着近期疫情防控政策的优化调整,不少人开始规划出门旅游,其中海南成为不少人的热门选择之一这里不仅风景秀美,而且免税购物非常火爆。目前,海南共有6家免税经营主体12家离岛免税店,其中
永恒岛手游怎样快速提升等级游戏攻略详讲解大家最熟悉的彩虹岛还是我们最熟悉的游戏玩法,游戏的画面选用的都是漫画风格,使我们赏心悦目,游戏里面每日都有不同的任务主线,及其宠物图鉴一些很可爱的宠物我们可以自由组合,游戏每日签到
江苏连云港出发自驾2日游好去处攻略推荐初冬时节,正是踏青游园的好时节,今天小编就给大家介绍一些连云港市区的免费公园,我们自驾去了几个有代表性的公园哦!一新浦公园新浦公园对于很多老海州人来说,是承载童年回忆的地方,快和小
新生儿红屁股如何护理?过来人有话说每到换季,宝妈们就要面对尿布疹和红屁屁等问题。尤其是南北方风大干燥地区,不光是新生儿,低幼宝宝都很难避免,根据我以往的经验,今天整理一份关于尿布疹红屁屁的护理攻略,新手妈妈们可以参
经济日报携手京东发布数据商品即时可得消费更具活力深度融合线上线下即时零售是一种以线上下单30分钟送达为标志的新消费业态。消费者根据所在地理位置下单,楼下的便利店社区超市可能就是发货门店,买卖双方的距离被不断拉近,楼上下单,楼下发
山东2022年养老保险个人账户利率出炉,看看怎么计算你的账户利息根据人社部办公厅财政部办公厅关于确定2022年职工养老保险个人账户记账利率等参数的通知(人社厅发202234号)规定,2022年山东省职工养老保险个人账户利率为6。12,预示着20
被315曝光后,这家网络水军IPO换壳闯关文乐居财经程孟瑶数字经济下,网络水军是大家最熟悉也最常遇到的一种网络营销技术。养水军是门生意。某宝某浪某书已经成为大家心照不宣的水军重灾区。当水军有多赚钱?知乎上一个答友称当三个月
被央行要求下线后,同城票据网另起炉灶从事非法票据贴现新经济IPO获悉,被中央巡视组点名及央行叫停的两大民间票据平台同城票据网和深度票据网正另起炉灶,改头换面继续从事非法票据贴现撮合业务。同城票据网另起炉灶一名业内人士告诉新经济IPO