小编Set*_*eth的帖子

java中的当前时间(以微秒为单位)

在Unix系统上,有没有办法在Java中获得具有微秒级精度的时间戳?像C的gettimeofday功能.

java timestamp

98
推荐指数
5
解决办法
19万
查看次数

JUnit测试抛出异常的错误形式?

我对JUnit很陌生,我真的不知道异常和异常处理的最佳实践.

例如,假设我正在为IPAddress类编写测试.它有一个构造函数IPAddress(String addr),如果addr为null,它将抛出InvalidIPAddressException.据我在google搜索时可以看出,null参数的测试将如下所示.

@Test
public void testNullParameter()
{
    try
    {
        IPAddress addr = new IPAddress(null);
        assertTrue(addr.getOctets() == null);
    }
    catch(InvalidIPAddressException e)
    {
        return;
    }

    fail("InvalidIPAddressException not thrown.");
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,try/catch是有意义的,因为我知道异常即将到来.

但是现在如果我想编写testValidIPAddress(),有几种方法可以做到:

方式#1:

@Test
public void testValidIPAddress() throws InvalidIPAddressException
{
    IPAddress addr = new IPAddress("127.0.0.1");
    byte[] octets = addr.getOctets();

    assertTrue(octets[0] == 127);
    assertTrue(octets[1] == 0);
    assertTrue(octets[2] == 0);
    assertTrue(octets[3] == 1);
}
Run Code Online (Sandbox Code Playgroud)

方式#2:

@Test
public void testValidIPAddress()
{
    try
    {
        IPAddress addr = new IPAddress("127.0.0.1");
        byte[] octets = addr.getOctets();

        assertTrue(octets[0] == 127); …
Run Code Online (Sandbox Code Playgroud)

java testing junit unit-testing

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

SQL唯一varchar区分大小写的问题

我正在尝试使用单词列表填充SQL表.表本身很简单:

CREATE TABLE WORDS(
  ID BIGINT AUTO_INCREMENT, 
  WORD VARCHAR(128) NOT NULL UNIQUE, 
  PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是:当我执行以下插入时,背靠背

INSERT INTO WORDS(WORD) VALUES('Seth');
INSERT INTO WORDS(WORD) VALUES('seth');
Run Code Online (Sandbox Code Playgroud)

第二个插入失败,出现约束违规("键'WORD'的重复输入'seth'").

如何使UNIQUE约束WORD区分大小写?

mysql sql varchar case-sensitive unique-constraint

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

成长ByteBuffer

有没有人见过java.nio.ByteBuffer的实现,如果putX()调用超出容量,它将动态增长?

我想这样做的原因有两个:

  1. 我不知道我需要多少空间.
  2. 每次空间不足时,我宁愿不再使用新的ByteBuffer.allocate(),而是使用批量put().

java bytebuffer

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

使用PayPal iOS库会被我的应用程序拒绝吗?

我正在开发一个带有订阅模式的iPhone应用程序,我看到了这个iOS PayPal库:Apple占所有收入的30%,但PayPal在微支付方面的收入要少得多(最高可达10%).当然,我开始感兴趣了.

我想我很困惑的是:如果Apple希望每个人都使用应用内购买库(根据本文档),为什么这个PayPal库甚至存在?使用它的任何应用都不会被拒绝吗?

有没有人在使用此库的应用程序商店中成功发布了应用程序?如果是这样,购买的是什么?数码商品?实体商品?内容?

paypal app-store appstore-approval ios

14
推荐指数
1
解决办法
9243
查看次数

检测tomcat servlet中的客户端断开连接?

如何检测tomcat servlet请求的客户端是否已断开连接?我已经读过我应该做一个response.getOutputStream().print(),然后是一个response.getOutputStream().flush()并捕获一个IOException,但有没有办法可以检测到这个而不写任何数据?

编辑:

servlet发出的数据流不一定会结束,但不一定有任何数据流通过它(它是一个实时事件流).我需要实际检测客户端何时断开连接,因为我需要进行一些清理工作(要释放的资源,等等).如果我有可用的HttpServletRequest,如果客户端断开连接,是否会尝试从中读取抛出IOException?

java tomcat servlets

9
推荐指数
2
解决办法
9117
查看次数

HQL中的Collection.contains(Enum.Value)?

我对如何在HQL中做某事感到困惑.

所以,假设我有一个Foo类,我坚持休眠.它包含一组枚举值,如下所示:

public class Foo
{
    @CollectionOfElements
    private Set<Bar> barSet = new HashSet<Bar>();

    //getters and setters here ...
}
Run Code Online (Sandbox Code Playgroud)

public enum Bar
{
    A,
    B
}
Run Code Online (Sandbox Code Playgroud)

是否有一个HQL语句我可以用来获取只有barSet包含Bar.B的Foo实例?

List foos = session.createQuery("from Foo as foo " +
"where foo.barSet.contains.Bar.B").list();
Run Code Online (Sandbox Code Playgroud)

或者我是不是要抓取所有Foo实例并在DAO级别过滤掉它们?

List foos = session.createQuery("from Foo as foo").list();

List results = new ArrayList();

for(Foo f : foos)
{
  if(f.barSet.contains(Bar.B))
    results.add(f);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

java collections hibernate hql

6
推荐指数
1
解决办法
8878
查看次数

休眠列唯一性问题

我还在学习hibernate/hql的过程中,我有一个问题是半最佳实践问题/半理智检查.

假设我有一个A类:

@Entity
public class A
{
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;

    @Column(unique=true)
    private String name = "";

    //getters, setters, etc. omitted for brevity
}
Run Code Online (Sandbox Code Playgroud)

我想强制保存的每个A实例都有一个唯一的名称(因此是@Column注释),但我也希望能够处理已经保存了具有该名称的A实例的情况.我看到两种方法:

1)我可以捕获可能在session.saveOrUpdate()调用期间抛出的org.hibernate.exception.ConstraintViolationException并尝试处理它.

2)在调用session.saveOrUpdate()之前,我可以在DAO中查询已经具有该名称的A的现有实例.

现在我倾向于接近方法2,因为在方法1中我不知道如何以编程方式找出违反了哪个约束(A中还有其他一些独特的成员).现在我的DAO.save()代码看起来大致如下:

public void save(A a) throws DataAccessException, NonUniqueNameException
{
    Session session = sessionFactory.getCurrentSession();

    try
    {
        session.beginTransaction();

        Query query = null;

        //if id isn't null, make sure we don't count this object as a duplicate
        if(obj.getId() == null)
        {
            query = session.createQuery("select count(a) from A a where a.name = :name").setParameter("name", obj.getName());
        }
        else …
Run Code Online (Sandbox Code Playgroud)

java hibernate unique-constraint sanity-check

6
推荐指数
1
解决办法
8967
查看次数

swingx的JXDatePicker中的日期范围?

有没有人知道是否可以选择swingx的jxdatepicker多天?我正在使用swingx版本1.6.1(看起来是最新的).

java datepicker swingx

6
推荐指数
1
解决办法
1729
查看次数

iexpress 硬编码提取目标文件夹?

我正在使用 iexpress 制作自解压可执行文件。有没有办法可以对提取目标文件夹(最好是某个临时文件夹)进行硬编码,以免提取弹出“请输入要放置提取文件的位置”。对话?

windows iexpress

6
推荐指数
1
解决办法
8186
查看次数