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
大雪丨冬季,我们应该如何护牙?冬季寒冷,南方的冬更是刺骨凛冽,当冷风从齿间吹过,一阵酸痛感袭来,牙龈敏感暴露无遗。一注意牙齿保暖,防止冷热不均气温骤降,外出宜戴上口罩,避免牙齿受凉;从寒冷的室外……
冯提莫歌曲转变多样,音乐高要求成为行业标杆,认真的人最美丽冯提莫的歌曲多变大家想必都已经是耳熟能详了,到底有哪些歌曲的性格和风格,即使相比大家也不需要一个人去罗列出来,只要你能够说得出来的一些歌曲风格,冯提莫基本上都在他自己的音乐榜单……
AMD介绍70支持FSR的现有与即将推出的游戏列表经过半年的推广,AMDFidelityFXSuperResolution技术(简称FSR)已经获得了47款游戏的支持。不过在近日更新的一段视频中,该公司又披露了24款即将到来的……
放下你的三分钟热度放下你的三分钟热度,我心中的感动已然在那一刻泛滥,眼泪早已止不住夺眶而出,我只有用一个角度去想念你。那一刻,无论多么不可相提,我的心也终究已与你相隔十几个昼夜,那时候我还真的好……
和平精英真就是有求必应?不求人为卖皮肤上演COS木乃伊相信很多和平精英的小伙伴们最近除了在自己漫长的上分路上,也都有关注最新的动态,尤其是每个季度更新的皮肤!虽然说在和平精英大家一切都是靠自己的实力,不管你是喜欢刚枪,在对拼冲锋压……
03年轰动一时的中国首例全男四胞胎,大难不死后如今全部考上大俗话说多子多福,生的孩子越多,福气就越多。这虽然是中国传统农业社会的观念,认为家里的劳动力越多,经济能力就越强,已经不符合现代社会的理念。但是随着经济逐渐发展,有经……
金星云层中可能隐藏着生命体它可能正在创造自己独特的环境下着硫酸雨、大地温度高达460度的金星是根本不可能存在生命的地狱般的行星。但是刊登在《PNAS》(21年12月28日)上的研究表明,在硫酸形成的云中,生命存在也不奇怪。……
甘树子蒸午鱼VS枇杷芦笋桃胶甜汤甘树子蒸午鱼VS枇杷芦笋桃胶甜汤甘树子是什么东西?北方的小伙伴应该与它未曾谋过面,而南方的小伙伴也要够资深,才能了解。这是一种甘树上长出的小果子,也有人叫它破布子生……
旗舰手机口碑很重要!盘点双12最值得入手的3款机型,好评率92022年已经进入最后一个月,还有准备买手机的吗?如果有就要抓紧了,双12大促是今年电商平台最后一波大促,下一次有这种力度可能就要等到2023年的618了。至于双12买手机怎么……
骁龙8Plus处理器或将在五六月份登场,台积电4nm工艺打造不可否认骁龙8旗舰处理器的性能实力,其在整个安卓领域都是拔尖的,但是在实际表现上还是难以摆脱火龙的称号。联发科乘胜追击,今年上半年不少旗舰机型都选择了天玑9000处理器,天玑8……
值得复制粘贴的优质文案1、但愿春日安好,往后尽是鲜花烂漫。2、遇见的都是天意,拥有的都是运气。3、每一块肥肉都是自己吃出来的,有什么好抱怨的。4、起风的日子学会依风起舞,落雨的时候……
发现好书忍不住抄书第一天看张德芬的《爱到极致是放手》,跟着她的文字去寻找与所有爱的人相处的内在力量和智慧,包括父母、伴侣、孩子、朋友。忍不住把这些智慧抄了下来,方便日后时不时拿来品味一番。今天抄……