专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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

苹果正式推送iOS16,已发送信息可编辑或撤回北京日报客户端记者袁璐9月13日,苹果正式发布了iOS16正式版更新,iOS16兼容设备iOS16可在iPhone8及更高版本上使用。更新的锁屏体验是iOS16中最显著的变化,用户低调的陕西北境之城,短短数十年,悄悄完成多重逆袭窑洞腰鼓剪纸信天游黄土高原看到这些字眼,人们很容易想起陕北,想起延安,却很少想起陕北中的陕北,这座陕西面积最大的城市榆林。榆林靖边的波浪谷,宛如翻滚的红色波浪。同在陕北,榆林没有红36!主裁判成主角,三张红牌彻底惹怒球迷,比赛被迫中断北京时间9月13日凌晨,法乙第8轮的比赛,梅斯队主场31领先,最终36不敌甘冈队,主裁判成为了比赛的主角,梅斯队3位球员被直红罚下,只能8人应战!第三张红牌彻底惹怒了主场球迷,主裁唏嘘!菲戈为生活所迫,100元录制生日祝福,美艳娇妻让大罗羡慕近段时间,某国外网站上出现了一位球迷们非常熟悉的人,他便是前葡萄牙队长菲戈。让人意外的是,菲戈这次现身网站,并非参与足球活动,而是开通了一项副业。原来,该网站有个栏目专门提供定制生50000美元罚款,外加禁赛!爱德华兹短短一句话,惹众怒了啊关于安东尼爱德华兹的歧同事件,目前还在发酵。昨天,他在自己的社交账号上,发布了一段恐同视频,随即引发大量网友攻击。迫于压力,爱德华兹事后选择道歉,并承认了自己的错误。但是,口口声声归化国脚是水货吗?揭秘阿兰的全部欧联杯进球,淘汰赛0球太刺眼北京时间9月12日,归化球员阿兰一直在巴西无法登场。此前,他在国足就是替补球员。不少球迷为其叫屈,称他为欧联杯最佳射手之一。于是,我翻阅了阿兰在萨尔茨堡队的全部比赛,惊讶地发现不但34险夺冠北京时间9月13日消息,2022年国际乒联成都世乒赛开赛在即,马龙樊振东将领衔冲击10连冠。而18岁的法国眼镜侠艾利克斯,则希望延续战胜张本智和法尔克时的状态。与此同时,WTT常规唐斯谈联手戈贝尔大学就曾打过双塔体系北京时间9月13日,据CBS体育报道,在休赛期得到三届最佳防守球员鲁迪戈贝尔之后,森林狼在新赛季将以戈贝尔和唐斯组成的双塔出战。而当谈到与新队友的适配性时,唐斯认为二人彼此间会非常美新谢泼德飞行器不载人试飞时火箭坠毁来源新华网新华社洛杉矶9月12日电(记者谭晶晶)美国蓝色起源公司的新谢泼德飞行器12日进行不载人太空试飞,火箭在发射后出现故障并坠毁,没有造成人员伤亡。这次试飞在蓝色起源公司位于美进入黑洞冒险,我们能看到什么样的神奇时空结构?史瓦西黑洞RN黑洞克尔黑洞克尔纽曼黑洞洞洞有精彩撰文董唯元黑洞是科普内容里的常客,诸如时空奇点事件视界史瓦西半径,这些名词早已成为爱好者们耳熟能详的概念。可如果说起黑洞内部的多层结NASA的火星直升机不对劲,专家吓坏了,给中国火星车提了个醒综述众所周知,太空环境相当恶劣,人类的每一次太空之旅都充满了各种各样的挑战,稍有不慎,就会给宇航员带来不可逆转的影响,在人类航空航天史上,命丧太空的宇航员也不在少数。正因如此,人类
大美人设计的衣服,没想到这么好穿以往F君写关于极简风的推文,总忍不住给大家推荐TheFrankieshop。原因无他,其颜值,时髦感,性价比之高,足以让一众ins博主心甘情愿成为忠粉。但自从超模ElsaHosk在83版射雕英雄传的外景地,您惊了吧?83版射雕英雄传的外景地是香港大屿山,您惊了吧?香港秋天的美都在郊野,比如,看秋色荒草兮兮绚烂多彩的大東山。香港大东山芒草季节的跳板石来个叶问蹲悬崖挂开心快乐一下,美在身边,时时处年底换机攻略20004000元价位成热门首选,这三款机型最香!文手机技巧库转眼间来到了年底,回顾起今年的手机市场,厂商之间的竞争依旧是十分激烈。一整年里面发布的骁龙8旗舰天玑9000系列旗舰,已经数不清了。而近段时间,很多用户都有换机的需求,畅享海南免税购物,请收好这份攻略!随着近期疫情防控政策的优化调整,不少人开始规划出门旅游,其中海南成为不少人的热门选择之一这里不仅风景秀美,而且免税购物非常火爆。目前,海南共有6家免税经营主体12家离岛免税店,其中永恒岛手游怎样快速提升等级游戏攻略详讲解大家最熟悉的彩虹岛还是我们最熟悉的游戏玩法,游戏的画面选用的都是漫画风格,使我们赏心悦目,游戏里面每日都有不同的任务主线,及其宠物图鉴一些很可爱的宠物我们可以自由组合,游戏每日签到江苏连云港出发自驾2日游好去处攻略推荐初冬时节,正是踏青游园的好时节,今天小编就给大家介绍一些连云港市区的免费公园,我们自驾去了几个有代表性的公园哦!一新浦公园新浦公园对于很多老海州人来说,是承载童年回忆的地方,快和小新生儿红屁股如何护理?过来人有话说每到换季,宝妈们就要面对尿布疹和红屁屁等问题。尤其是南北方风大干燥地区,不光是新生儿,低幼宝宝都很难避免,根据我以往的经验,今天整理一份关于尿布疹红屁屁的护理攻略,新手妈妈们可以参经济日报携手京东发布数据商品即时可得消费更具活力深度融合线上线下即时零售是一种以线上下单30分钟送达为标志的新消费业态。消费者根据所在地理位置下单,楼下的便利店社区超市可能就是发货门店,买卖双方的距离被不断拉近,楼上下单,楼下发山东2022年养老保险个人账户利率出炉,看看怎么计算你的账户利息根据人社部办公厅财政部办公厅关于确定2022年职工养老保险个人账户记账利率等参数的通知(人社厅发202234号)规定,2022年山东省职工养老保险个人账户利率为6。12,预示着20被315曝光后,这家网络水军IPO换壳闯关文乐居财经程孟瑶数字经济下,网络水军是大家最熟悉也最常遇到的一种网络营销技术。养水军是门生意。某宝某浪某书已经成为大家心照不宣的水军重灾区。当水军有多赚钱?知乎上一个答友称当三个月被央行要求下线后,同城票据网另起炉灶从事非法票据贴现新经济IPO获悉,被中央巡视组点名及央行叫停的两大民间票据平台同城票据网和深度票据网正另起炉灶,改头换面继续从事非法票据贴现撮合业务。同城票据网另起炉灶一名业内人士告诉新经济IPO
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网