小编kan*_*e77的帖子

如何阅读XMI?

我需要阅读序列化为XMI的UML图.是否有任何库可以让我方便地阅读UML XMI - 方便的是我有一些方法来迭代模型中的类/包/方法/属性等.

我试过EMF,但是我找不到任何教程来展示如何导入包含UML的XMI.我也找到了NSUML/NSMDF但是文档的链接被破坏了.

java xml parsing uml xmi

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

没有吸气剂的正确OOP设计?

我最近读到getter/setter是邪恶的,我不得不说这是有道理的,但是当我开始学习OOP时,我学到的第一件事就是"封装你的字段",所以我学会了创建类给它一些字段,创建getter ,为他们设置setter并创建我初始化这些字段的构造函数.每当其他一些类需要操作这个对象(或者例如显示它)时,我将它传递给对象并使用getter/setter来操作它.我可以看到这种方法的问题.

但是怎么做呢?例如显示/呈现对象是"数据"类 - 让我们说人,有姓名和出生日期.该类是否有显示对象的方法,其中一些Renderer将作为参数传递?这不违反类应该只有一个目的(在这种情况下是存储状态)的原则,所以它不应该关心这个对象的表示.

您能否提出一些优秀的资源,其中介绍了OOP设计的最佳实践?我打算在业余时间开始一个项目,我希望它成为我正确的OOP设计的学习项目.

oop

10
推荐指数
1
解决办法
1847
查看次数

如何重新排序表中的项目

我有一个表(称之为my_table),可以像这样简化:NAME,SEQ_NO,LOCKED.

项目被删除并添加,我想重新排序它们(修改SEQ_NO),顺序总是从1到COUNT(*),并且被锁定的项保留它们的SEQ_NO,没有未锁定的项目将获得该数字.仅使用新的SEQ_NO更新未锁定的项目.

例:

这个

NAME  SEQ_NO    LOCKED
Foo   1         N
Bar   3         Y
Abc   4         Y
Baz   5         N
Cde   7         N

会导致:

NAME  SEQ_NO    LOCKED
Foo   1         N
Baz   2         N
Bar   3         Y
Abc   4         Y
Cde   5         N

我怎么能这样做?

sql oracle

10
推荐指数
1
解决办法
5414
查看次数

Hibernate二级缓存问题

我有多对一的关系,假设用户有公司.公司实体没有任何其他关系.

如果我为公司的findAll hibernate查询启用二级缓存,第二次重新加载页面(这意味着加载了用户,然后还加载了所有公司的列表)我为每个现有公司选择(从公司选择...)其中id =?)在hibernate输出中.调用findAll for Company时会发生这种情况,它看起来像这样(这是类中的泛型方法,使用适当的类型进行扩展):

return (List<T>) getHibernateTemplate().execute(new HibernateCallback() {

            public Object doInHibernate(Session session)
                    throws HibernateException, SQLException {
                Criteria c = session.createCriteria(persistentClass);
                c.setCacheable(cacheFindAll);

                return c.list();
            }
        });
Run Code Online (Sandbox Code Playgroud)

我在只读策略中使用Jboss TreeCacheProvider.如果我使用setCacheable(false)没有"不需要的"选择.

为什么会发生这种情况?如何消除这种行为?

java caching hibernate

3
推荐指数
1
解决办法
3818
查看次数

如何正确关闭资源?

我有方法,所有传播异常,然后我在一个地方处理,但我意识到了一些事情.

假设我有这样的方法

public void foo() throws Exception e {
  Statement stmt = createStatement();
  doSomething(stmt);
  stmt.close();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果doSometing()方法抛出异常,语句将不会被关闭,但我不想在那里处理异常.是尝试捕获的唯一方法,只重新抛出异常,最后关闭声明?

java exception-handling

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

标签 统计

java ×3

caching ×1

exception-handling ×1

hibernate ×1

oop ×1

oracle ×1

parsing ×1

sql ×1

uml ×1

xmi ×1

xml ×1