小编Buh*_*ndi的帖子

如何在Apache POI中获取Excel空白单元格值?

我有一个巨大的excel文件,有大量的列,看起来像这样: -

Column1 Column2 Column3 Column4 Column5
abc             def             ghi
        mno             pqr
......
Run Code Online (Sandbox Code Playgroud)

这是我编写的用于打印这些值的代码:

try {
    FileInputStream inputStr = new FileInputStream(fileName);
    XSSFWorkbook xssfWork = new XSSFWorkbook(inputStr) ;
    XSSFSheet sheet1 = xssfWork.getSheetAt(0);
    Iterator rowItr = sheet1.rowIterator();

    while ( rowItr.hasNext() ) {
        XSSFRow row = (XSSFRow) rowItr.next();
        System.out.println("ROW:-->");
        Iterator cellItr = row.cellIterator();

        while ( cellItr.hasNext() ) {
            XSSFCell cell = (XSSFCell) cellItr.next();
            System.out.println("CELL:-->"+cell.toString());
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

此代码生成的输出是: -

ROW:-->
CELL:-->Column1
CELL:-->Column2
CELL:-->Column3
CELL:-->Column4
CELL:-->Column5
ROW:-->
CELL:-->abc …
Run Code Online (Sandbox Code Playgroud)

java apache apache-poi

37
推荐指数
3
解决办法
9万
查看次数

是html表单的application/x-www-form-urlencoded默认值?

我发现HTML表单只支持两种enctype类型.他们是application/x-www-form-urlencodedmultipart/form-data.我知道multipart/form-data我需要上传文件时使用.我application/x-www-form-urlencoded什么时候使用?它是默认形式的enctype吗?

html forms enctype

36
推荐指数
2
解决办法
4万
查看次数

如何在JPA中使用枚举

我有一个电影租赁系统的现有数据库.每部电影都有一个评级属性.在SQL中,他们使用约束来限制此属性的允许值.

CONSTRAINT film_rating_check CHECK 
    ((((((((rating)::text = ''::text) OR 
          ((rating)::text = 'G'::text)) OR 
          ((rating)::text = 'PG'::text)) OR 
          ((rating)::text = 'PG-13'::text)) OR 
          ((rating)::text = 'R'::text)) OR 
          ((rating)::text = 'NC-17'::text)))
Run Code Online (Sandbox Code Playgroud)

我认为使用Java枚举将约束映射到对象世界会很好.但由于"PG-13"和"NC-17"中的特殊字符,因此不可能简单地采用允许的值.所以我实现了以下枚举:

public enum Rating {

    UNRATED ( "" ),
    G ( "G" ), 
    PG ( "PG" ),
    PG13 ( "PG-13" ),
    R ( "R" ),
    NC17 ( "NC-17" );

    private String rating;

    private Rating(String rating) {
        this.rating = rating;
    }

    @Override
    public String toString() {
        return rating;
    }
}

@Entity
public class Film …
Run Code Online (Sandbox Code Playgroud)

java enums jpa toplink

35
推荐指数
4
解决办法
7万
查看次数

是否存在一个现有的库方法,用于检查Java中的String是大写还是小写?

我知道upper()Java和其他框架中有很多方法,比如Apache commons lang,它将String转换为全部大写.

有没有提供任何公共库等的方法isUpper(String s)isLower(String s)方式,检查在字符串中所有字符都是大写或小写?

编辑:

关于转换为Upper并与之比较的许多好答案.我想我应该更具体一点,并说我已经想到了这一点,但我希望能够使用现有方法.

关于可能在apache.commons.lang.StringUtils中包含此内容的好评.有人甚至提交了一个补丁(20090310).希望我们很快就会看到这一点. https://issues.apache.org/jira/browse/LANG-471

编辑:

我需要这种方法的方法是将有时会全部大写的酒店名称大写.如果它们都是小写或大写,我只想把它们大写.我确实遇到了一些帖子中提到的非字母字符的问题,最后做了类似这样的事情:

private static boolean isAllUpper(String s) {
    for(char c : s.toCharArray()) {
       if(Character.isLetter(c) && Character.isLowerCase(c)) {
           return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这个讨论和不同的解决方案(有不同的问题),清楚地表明在commons.lang中需要一个好的实体isAllUpper(String s)方法.

在那之前,我猜这myString.toUpperCase().equals(myString)是最好的方式.

java string

30
推荐指数
6
解决办法
6万
查看次数

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)什么时候提交?

名为EJB的方法Aby调用另一个名为的EJB方法Bob

Bob 标有 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)

什么时候bob交易提交?:

a)bob调用结束时

b)aby调用结束时

c)其他.什么时候?

ejb jta container-managed java-ee

30
推荐指数
2
解决办法
4万
查看次数

Apache Commons DBCP连接对象问题,org.apache.tomcat.dbcp.dbcp.PoolingDataSource中的Thread:ClassCastException $ PoolGuardConnectionWrapper

我正在使用Apache Commons DBCP(commons-dbcp.jar)连接池.

一旦我从池中获得了连接,它就会被包含在课堂中org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.

我的要求是将一个字符串数组传递给Oracle中的pl/sql存储过程.

以下是我在以下代码片段中所做的事情:

Connection dbConn = ConnectionManager.ds.getConnection();
//The above statement returns me an connection wrapped in the class
//org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.

org.apache.commons.dbcp.DelegatingConnection del = new org.apache.commons.dbcp.DelegatingConnection(dbConn.getConnection());
con = del.getInnermostDelegate();

cs = con.prepareCall("call SP_NAME(?,?,?,?)");
oracle.sql.ArrayDescriptor arDesc= oracle.sql.ArrayDescriptor.createDescriptor("ARRAY_NAME", (OracleConnection) con);

CallableStatement c_stmt = conn.prepareCall("begin update_message_ids_ota
(:x); end;" );
c_stmt.setArray( 1, array_to_pass );
c_stmt.execute();
Run Code Online (Sandbox Code Playgroud)

在执行上面的代码时,我得到以下异常:

java.lang.ClassCastException:org.apache.commons.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper无法在oracle.sql.ArrayDescriptor.createDescriptor中强制转换为oracle.jdbc.OracleConnection

我试图在几乎所有的网站和论坛中找到解决方案,但无法得到满意的答案或解决方案.

java jdbc apache-commons-dbcp

28
推荐指数
4
解决办法
5万
查看次数

如何处理tomcat PermGen空间

背景:我有一个使用JSP的Web项目.IDE是Eclipse.tomcat的配置是:资源发生变化时自动发布,发布间隔为"1秒".

classes文件夹中的属性文件,用于保存一些设置.它也可以由servlet动态修改.修改操作由JSP中的save按钮触发.

问题:经过几次保存操作后,Tomcat自带了java.lang.OutOfMemoryError: PermGen space.

日志消息

java.lang.OutOfMemoryError: PermGen space
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1064)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3083)
    at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1279)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1571)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1580)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1580)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1560)
    at java.lang.Thread.run(Thread.java:662)
Run Code Online (Sandbox Code Playgroud)

java tomcat permgen

27
推荐指数
4
解决办法
8万
查看次数

css多个类/ id选择器?

我想知道如何编写适用于多个id或多个的css块:

就像是:

.class1, .class2 {
 ...
}
Run Code Online (Sandbox Code Playgroud)

要么

#id1, #id2 {
 ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何做两种情况(希望是跨浏览器兼容).谢谢.

更新:为了使它更有趣,这也有效吗?

#id tr, #id2 tr {

}
Run Code Online (Sandbox Code Playgroud)

css css-selectors

26
推荐指数
1
解决办法
5万
查看次数

在1.7中的javax.sql.CommonDataSource中添加了新方法

尝试针对java 1.7编译我的应用程序我发现在javax.sql.CommonDataSource中添加了一个新方法(在jsDataSource中也是如此) - .getParentLogger().您可以将CommonDataSource:1.7CommonDataSource进行比较:1.6

对我来说,这种变化肯定会破坏向后兼容 例如,我的应用程序(包含DataSource的实现)甚至不会在没有代码更改的情况下针对1.7进行编译.

根据我的观点,这应该是非常有力的理由 - 但我不能google甚至一个.有人可以解释这种变化背后的原因吗?应该如何处理它 - 对我而言,这是我第一次遇到与java的向后不兼容,所以我这里没有任何"最佳实践"......

java datasource

24
推荐指数
2
解决办法
1万
查看次数

Spring MVC - JSON无限递归

我有像这样的双向关系......

Person.java

 public class Person{

    @JsonIgnore
    @OneToMany(targetEntity=PersonOrganization.class, cascade=CascadeType.ALL,
        fetch=FetchType.EAGER, mappedBy="person")
    private Set<PeopleOrg> organization;
    .....
 }
Run Code Online (Sandbox Code Playgroud)

PersonOrganization.java

  public class PersonOrganization{

    @JsonIgnore
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="PERSONID", nullable=false)
private Person person;
  }
Run Code Online (Sandbox Code Playgroud)

即使使用@JsonIgnore注释,我在尝试检索Person记录时也会收到无限递归错误.我在1.6版本中尝试过新的注释.@JsonBackReference@JsonManagedReference.即使这样,我也会得到无限的递归..

随着@JsonBackReference("person-organization")Person@JsonManagedReference("person-organization")PersonOrganization

org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.entity.Person["organization"]->org.hibernate.collection.PersistentSet[0]->com.entity.PersonOrganization["person"]->com.entity.Person["organization"]->org.hibernate.collection.PersistentSet[0]...
Run Code Online (Sandbox Code Playgroud)

即使我交换了注释,我仍然会遇到此异常..如果映射或我使用JSON注释的方式有问题,请告诉我.谢谢

json spring-mvc

24
推荐指数
3
解决办法
3万
查看次数