在Unix系统上,有没有办法在Java中获得具有微秒级精度的时间戳?像C的gettimeofday功能.
我对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) 我正在尝试使用单词列表填充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区分大小写?
有没有人见过java.nio.ByteBuffer的实现,如果putX()调用超出容量,它将动态增长?
我想这样做的原因有两个:
我正在开发一个带有订阅模式的iPhone应用程序,我看到了这个iOS PayPal库:Apple占所有收入的30%,但PayPal在微支付方面的收入要少得多(最高可达10%).当然,我开始感兴趣了.
我想我很困惑的是:如果Apple希望每个人都使用应用内购买库(根据本文档),为什么这个PayPal库甚至存在?使用它的任何应用都不会被拒绝吗?
有没有人在使用此库的应用程序商店中成功发布了应用程序?如果是这样,购买的是什么?数码商品?实体商品?内容?
如何检测tomcat servlet请求的客户端是否已断开连接?我已经读过我应该做一个response.getOutputStream().print(),然后是一个response.getOutputStream().flush()并捕获一个IOException,但有没有办法可以检测到这个而不写任何数据?
编辑:
servlet发出的数据流不一定会结束,但不一定有任何数据流通过它(它是一个实时事件流).我需要实际检测客户端何时断开连接,因为我需要进行一些清理工作(要释放的资源,等等).如果我有可用的HttpServletRequest,如果客户端断开连接,是否会尝试从中读取抛出IOException?
我对如何在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)
谢谢!
我还在学习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) 有没有人知道是否可以选择swingx的jxdatepicker多天?我正在使用swingx版本1.6.1(看起来是最新的).
我正在使用 iexpress 制作自解压可执行文件。有没有办法可以对提取目标文件夹(最好是某个临时文件夹)进行硬编码,以免提取弹出“请输入要放置提取文件的位置”。对话?
java ×7
hibernate ×2
app-store ×1
bytebuffer ×1
collections ×1
datepicker ×1
hql ×1
iexpress ×1
ios ×1
junit ×1
mysql ×1
paypal ×1
sanity-check ×1
servlets ×1
sql ×1
swingx ×1
testing ×1
timestamp ×1
tomcat ×1
unit-testing ×1
varchar ×1
windows ×1