一下内容仅为初步想法,请大家共同考虑需求,想到什么写什么,以后再考虑实现问题,如同我们对付客户一样,先答应再说!
1.blog发布工具,支持最www.blogjava.net的初步维护,根据Blog公布的API定义具体功能;
2.考虑租用服务器,将大家交流的数据传到服务器上,如教程,DEMO,视频,聊天记录等等;
3.考虑开发一个简单的IM工具(实现一定有难度);
4.附带个人日程管理,做简单本地日记,或者网站收藏夹;
5.构建一个代码收集器(Eclipse插件),可以供我们分门别类的增加代码,如果发现有可以使用的,就直接拖拽或者拷贝到JDT中使用;
暂时只能想到这些了。大家继续补充!
DB4O?
新出的OODBMS~取谐音DB for O 。一个优秀的OODBMS解决方案,它出现的定位就是为了开发嵌入式和小型应用,同HSQLDB的定位相仿。不过DB4O的的优点则是,本身是OODBMS,那么对它的操作自然就是基于OO的,同Hiberante一样,但是Hiberante是ORM解决方案,而DB4O则是原生OODBMS方案。看看下面的例子
一个同Hibernate相同的POJO,没有任何方法,也没有跟DB4O有任何耦合。
1
package name.lgn.db4o.test.model;
2
3
public class Person
{
4
5
private String firstName;
6
7
private String lastName;
8
9
private int age;
10
11
public Person(String firstName, String lastName, int age)
{
12
this.firstName = firstName;
13
this.lastName = lastName;
14
this.age = age;
15
}
16
17
public String getFirstName()
{
18
return firstName;
19
}
20
21
public void setFirstName(String value)
{
22
firstName = value;
23
}
24
25
public String getLastName()
{
26
return lastName;
27
}
28
29
public void setLastName(String value)
{
30
lastName = value;
31
}
32
33
public int getAge()
{
34
return age;
35
}
36
37
public void setAge(int value)
{
38
age = value;
39
}
40
41
}
42
在看,DB4O的解决方案:
1
package name.lgn.db4o.test;
2
3
import name.lgn.db4o.test.model.Person;
4
5
import org.junit.Test;
6
7
import com.db4o.Db4o;
8
import com.db4o.ObjectContainer;
9
import com.db4o.ObjectSet;
10
11
public class TestDB4O
{
12
13
@Test
14
public void testDB()
{
15
ObjectContainer db = null;
16
try
{
17
db = Db4o.openFile("persons.data");
18
19
Person brian = new Person("Brian", "Goetz", 39);
20
Person jason = new Person("Jason", "Hunter", 35);
21
Person clinton = new Person("Brian", "Sletten", 38);
22
Person david = new Person("David", "Geary", 55);
23
Person glenn = new Person("Glenn", "Vanderberg", 40);
24
Person neal = new Person("Neal", "Ford", 39);
25
26
db.set(brian);
27
db.set(jason);
28
db.set(clinton);
29
db.set(david);
30
db.set(glenn);
31
db.set(neal);
32
33
db.commit();
34
35
// Find all the Brians
36
ObjectSet brians = db.get(new Person("Brian", null, 0));
37
while (brians.hasNext())
38
System.out.println(brians.next());
39
40
} catch (Exception e)
{
41
e.printStackTrace();
42
} finally
{
43
if (db != null)
44
db.close();
45
}
46
47
}
48
}
49
存入数据用db.set(...);取出数据用db.get(...),是不是非常亲切和简单?
对于不需要使用大型DB,但又需要存储数据的时候不需要再用hibernate+hsqldb了,只需要使用DB4O,就全带了,又有简单的数据库操作,又有数据的存储,还有数据完整性的保证,简单方便,何乐不为呢?RCP开源项目著名的RSSOWL在2.0中也已经把原有的hiberante+hsqldb替换为DB4O的解决方案了。
虽然OODBMS的路还有很长,而且就现在看,和RDBMS还有很长的距离,但是从DB4O上,我们还是看到了希望。在DB4O的眼中Hibernate,jdo等等都是暂时的解决方案,对于OODBMS来说ORM本来就是不存在的东西,ORM仅仅是为了解决RDBMS到OO的映射,而OODBMS本来就是原生的,免去了中间层,免去了烦恼。
下载 db4o:这是一种用于 Java 的开源对象数据库。
摘要: 正在规划一个Eclipse上看RSS的Plugin 阅读全文
1.在Plugin.xml中配置Editor时,需要配置除id,name,class这些必备项外,还需要配置icon这个属性,必须要给一个Editor一个图标,不知道是不是BUG。经过测试,发现在不配置icon的时候,也不配置class时,RCP平台可以根据ID找到这个Editor,但是如果class配置的话,就不能使用ID找到Editor了,总是在报未知的ID这个异常。
2.使用TableViewer时,TableColumn的宽即setWeight属性必须设置,如果不仔细看文档的话,一天TableViewer都不会显示出来。
上次的一篇文章问到为什么TreeViewer没有刷新,结果没有人回答。求人不求己。
自己解答一下这个问题吧,是因为领域对象出了错,所以TreeViewer没有刷新,因为在取得子节点的时候,出现了空针的情况,Dialog没有不关闭,也是因为在刷新节点的时候遇到了领域对象的空针,TreeViewer的刷新方法已经出现异常了,所以Dialog停止执行了。JFace对异常的处理好像就是这么简单,当遇到异常的时候,很少会抛出异常。
以后在写RCP的时候一定要注意异常的问题,不要因为没有看到异常信息,就认为没有异常了,RCP只是不知道应该不异常记录在哪里而已。
正式开始RCP项目的开发了,又兴奋又激动,突然一下不知道该干什么了!嘿嘿,太激动了~
下午在开发中发现一个小问题,org.eclipse.swt.widgets.Text的 setText方法竟然不接受null值!我没有测试在SWT下是否报异常。反正是RCP项目中如果Dialog有Text而且你给setText了一个null,那么这个Dialog是不会显示的,而且没有任何异常可以报出来!Debug一下,不仔细看根本就看不到它是出现异常了!
大家以后注意啊!