someok
来源: BlogBus 原始链接: http://www.blogbus.com:80/blogbus/blog/archive.php?id=5888 存档链接: https://web.archive.org/web/20041221152959id_/http://www.blogbus.com:80/blogbus/blog/archive.php?id=5888
someok 2004/01/02 到 2004/04/30 我感兴趣的 也许亦有你觉得不错的 Struts 1.1 Controller UML diagrams
2004-04-26 20:03 Struts 1.1 Controller UML diagrams Post by someok @ 20:03 这惰性实在需要改一改了
2004-04-26 14:46 今天在QQ群里抱怨了一下外键的无聊,wuyu和暮远亭说cascade好用。级联删除虽说也常挺说、常看见,可从来就没有实际动手去测试一下,今天终于决定演练一把,不试不知道,世界真奇妙,还真是好用啊。得,以后删除这些活还是尽量争取交给数据库自己做吧。谁说的来着:不懒能叫程序员吗? 上面的这些只是引子,我实际想说的是,如果我在一开始看到级联删除的定义的时候就着手去进行一下测试,估计早就在项目中使用了,可是每次看到这个东东的时候,我就冒出一些不良想法:这东东我知道了, 哪天 试试!哪天?这就跟在程序中不写注释一样,当时不写,打算 哪天 有空再写。这基本上就是在说:这注释我不打算写了。 tapestry:我打算五一试试这玩意。可为什么要等到五一呢? hibernate:同上。 另外需要注意的是:PowerDesigner在建立表间关联的时候,cascade缺省是不选的,可我一直也没注意过。至于帮助, 哪天 看看吧。 Post by someok @ 14:46 JDBC驱动汇总――来自CSDN
2004-04-25 02:52 标题 各家JDBC driver的现行版本及使用用 airskys(收藏) 关键字 JDBC 有鉴于许多版友对于寻找 JDBC driver 或者如何使用 driver 常常发问 , 在这边我简单整理一下比较代表性的 driver 跟使用方式 . Microsoft SQL Server series (6.5, 7.x and 2000) and Sybase 10 JDBC Name: jTDS URL: http://jtds.sourceforge.net/ Version: 0.5.1 Download URL: http://sourceforge.net/project/showfiles.php?group_id=33291 语法 : Class.forName("net.sourceforge.jtds.jdbc.Driver "); Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://host:port/database","user","password"); or Connection con = DriverManager.getConnection("jdbc:jtds:sybase://host:port/database","user","password"); MySQL JDBC Name: Connector/J 3.0 URL: http://www.mysql.com/ Version: 3.0.8-stable Download URL: http://www.mysql.com/downloads/api-jdbc-stable.html 语法 : Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database","user","password"); Oracle JDBC Name: Connector/J 3.0 URL: http://otn.oracle.com/ Version: 3.0.8-stable Download URL: http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html 语法 : Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","user","password"); Sybase Driver: jConnect 4.5/5.5 (JDBC 2.0 请使用 5.5) 语法 : Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance(); DriverManager.getConnection("jdbc:sybase:Tds:IP 地址 :2638?ServiceName="+ 数据库名称 ," 账号 "," 密码 "); Postgresql JDBC Name: PostgreSQL JDBC URL: http://jdbc.postgresql.org/ Version: 7.3.3 build 110 Download URL: http://jdbc.postgresql.org/download.html 语法 : Class.forName("org.postgresql.Driver"); Connection con=DriverManager.getConnection("jdbc:postgresql://host:port/database","user","password"); IBM AS400 主机在用的 JDBC 语法 有装 V4R4 以上版本的 Client Access Express 可以在 C:\Program Files\IBM\Client Access\jt400\lib 找到 driver 档案 jt400.zip ,并更改扩展名成为 jt400.jar 语法 java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400JDBCDriver ()); Class.forName("com.ibm.as400.access.AS400JDBCConnection"); con = DriverManager.getConnection("jdbc:as400://IP","user","password"); Post by someok @ 02:52 突然发现,再过一阵,我可能就不是江苏人了!!!
2004-04-23 21:55 中国民政部区划地名司司长戴均良4月初在香港接受媒体采访时透露,中国的行政区划改革将在今年年内正式启动,改革方案将于今后两年内完成。改革后,中国设大约50个省级政区,为此至少有4个城市将升格为直辖市。 12、 胶东省 :由现山东省 青岛市 、潍坊市、烟台市、威海市组成,省会青岛。 13、 淮海省 : 由现江苏省 徐州市 、连云港市、滨海、响水、灌南、宿迁市、现安徽省淮北市、蚌埠市、宿州市、亳州市、现河南省商丘市、现山东省日照市、临沂市、济宁市、荷泽市组成,省会徐州。 14、山东省:由现山东除上述地区的余下地区组成,省会济南。 15、 上海都 :包括现上海、现江苏昆山、太仓,现浙江嘉兴、宁波、舟山等地。 16、浙江省:由杭州市、桐庐、建德、淳安、湖州市、绍兴市、现安徽黄山市、宣城市、现江西婺源组成,省会杭州。 17、浙南省(东瓯省或雁荡省)――由现浙江温州市、台州市、丽水市、金华市、衢州市组成,省会温州。 18、 江苏省 :由苏州市、无锡市、常州市、南通市、泰州市、淮安市、盐城市组成。省会江阴(靖江)。 19、 扬子江省 :由现江苏省南京市、镇江市、扬州市、现安徽省马鞍山市、滁州市、芜湖市、巢湖市、铜陵市、池州市、安庆市、合肥市、蚌埠市、淮南市组成,省会南京。 唉,直辖市都成“都”了,估计俺们的官爷们又会出一批了,好事啊! Post by someok @ 21:55 乌龟的故事(谜语)
2004-04-21 09:22
- 乌龟的屁股 谜底:规定
- 乌龟倒立 谜底:上面有规定
- 乌龟翻筋斗 谜底:一个又一个规定
- 大乌龟背上背个小乌龟 谜底:上面又有新规定!
- 三只乌龟,中间那只忽然便溺了。 谜底:哎呀,中央的规定又变了! Post by someok @ 09:22 使用JFig管理你的配置文件
2004-04-20 11:57 Managing Your Configuration with JFig 介绍了专用于管理配置文件的开源项目 JFig ,通过文章的描述,感觉这个项目的功能还是颇为诱人的,尤为不错的一点是它可以将多个配置文件组织在一起――前提是这些配置文件的DTD格式是一样的――这在公司内部有多个组件产品的情况下,是对配置文档较好的组织方式了,当然,前提是各个组件使用统一格式的配置文件了,然后在项目中通过一个基本配置文件(可以命名为:base.config.xml)把各个配置文件组织起来,如:
private static JFigIF jFig; private static JFigLocatorIF jFigLoc; final public static String CONFIG_NAME = "base.config.xml"; // 缺省的配置文件名。此名称为硬编码,不可在外部更改 final static String CONFIG_LOCALTION = "config.location"; final static String CLASSPATH = "classpath";
// 初始化配置属性 static { // System.setProperty("config.location", "classpath"); // System.setProperty("config.filename", "base.config.xml"); jFigLoc = new JFigLocator(CONFIG_NAME); jFigLoc.setConfigLocation(CLASSPATH); jFig = JFig.getInstance(jFigLoc); }
public static void main(String[] args) { System.out.println(Config.getValue("mail", "isChild")); System.out.println(Config.getValue("mail", "test.father")); System.out.println(Config.getValue("aaa", "bbb", "cccc")); System.out.println(System.getProperty("bruce")); Config.print(); } /**
- Add JFig listeners to list so they can be notified when there
- is a significant change in the configuration.
*@param listener The feature to be added to the ConfigEventListener
- attribute / public static void addConfigEventListener(JFigListener listener) { jFig.addConfigEventListener(listener); } /*
- Print the values in the JFig dictionary. / public static void print() { jFig.print(); } /*
- Reprocess the configuration creating a new config dictionary / public static void reprocessConfiguration() throws JFigException { jFig.reprocessConfiguration(); } /*
- return the ConfigurationDictionary
- Made public so we can access this from a jsp and show the configuration
- via html. / public static JFigDictionary getConfigDictionary() { return jFig.getConfigDictionary(); } /*
- Convenience method for getting values as array.
- The value is tokenized depending on the first token found in
- the following order: comma, semicolon, colon, space
/ public static String[] getArrayValue(String section, String key) throws JFigException { return jFig.getArrayValue(section, key); } /*
- Convenience method for getting values as boolean / public static boolean getBooleanValue(String section, String key, String notFoundValue) { return jFig.getBooleanValue(section, key, notFoundValue); } /*
- Convenience method for getting values as float
*@param section Description of Parameter *@param key Description of Parameter *@param notFoundValue Description of Parameter *@return The FloatValue value @exception JFigException Description of Exception / public static float getFloatValue(String section, String key, String notFoundValue) throws JFigException { return jFig.getFloatValue(section, key, notFoundValue); } /
- Convenience method for getting values as int / public static int getIntegerValue(String section, String key) throws JFigException { return jFig.getIntegerValue(section, key); } /*
- Convenience method for getting values as int, with default value / public static int getIntegerValue(String section, String key, String notFoundValue) { return jFig.getIntegerValue(section, key, notFoundValue); } /*
- Return the value for this section and key. If none found, return the
- default value.
- @param section Description of Parameter
- @param key Description of Parameter
- @param defaultValue Description of Parameter
- @return The Value value / public static String getValue(String section, String key, String defaultValue) { return jFig.getValue(section, key, defaultValue); } /*
- Return a list of all values starting with "key" in the section.
- If section xxx contains x.1, x.2, and x.3,
- getValuesStartingWith("xxx", "x.") returns a list containing
- x.1, x.2, and x.3.
- @param section
- @param key
- @param defaultValue
- @return List / public static List getValuesStartingWith(String section, String key) { return jFig.getValuesStartingWith(section, key); } /*
- Return a map of all values starting with "key" in the scetcion.
- If section xxx contains x.1=a, x.2=b, and x.3=c,
- getValuesStartingWith("xxx", "x.") returns a map containing
- x.1,a x.2,b and x.3,c.
- @param section
- @param key
- @param defaultValue
- @return List / public static Map getEntriesStartingWith(String section, String key) { return jFig.getEntriesStartingWith(section, key); } /*
- Call configParser to get the value for a key in a given section.
/ public static String getValue(String section, String key) throws RuntimeException { String value; try { value = jFig.getValue(section, key); } catch (JFigException e) { log.error(e.toString()); throw new RuntimeException(e.getMessage()); } return value; } /*
- Return an entire section as a Map / public static Map getSection(String section) { return jFig.getSection(section); } /*
- Return a section as a Properties object / public static Properties getSectionAsProperties(String section) { return jFig.getSectionAsProperties(section); } /*
- Return a section populated in a supplied Properties object. / public static Properties getSectionAsProperties(String section, Properties properties) { return jFig.getSectionAsProperties(section, properties); } /*
- Set a configuration value.
- Most values are set during initial parsing so this is rarely used. / public static void setConfigurationValue(String sectionName, String keyString, String valueString) { jFig.setConfigurationValue(sectionName, keyString, valueString); } /*
- Convenience method for getting values as array with default value. */ public static String[] getArrayValue(String section, String key, String notFoundValue) { return jFig.getArrayValue(section, key, notFoundValue); } } Post by someok @ 11:57 XMLHttp实例
2004-04-18 22:54 xloadtree中的局部刷新机制使用了XmlHttp,javaeye上的dlee对此技术是推崇备至,极大的勾起了我的好奇心,在MSDN上转了一圈后发现信息太多,而我希望得到的是一个扫盲教程。幸好 webfx 就有一篇: http://webfx.eae.net/dhtml/xmlextras/xmlextras.html 对此技术的应用网上也是见仁见智,但我的感觉是局部应用还是不错的,尤其是和XSLT结合的时候。 Post by someok @ 22:54 在冰云的blog上看到“OSS简化软件开发?”后的一点想法
2004-04-17 20:03 呵呵,难得看到一篇这么理性的文章了,现在大家好像都在忙着讨论什么样的技术是最高级的,什么样的框架是最优秀的,见面不再问吃了吗,而是问你的系统的扩展性怎么样,你OO了吗,你framework了吗,甚至你MDA了吗。可是我想问的是你做的系统客户满意了吗??? 真的用了framework、ormapping后,你的系统就是一个优秀的系统了?我看未必。 本来java的优势是相对C语言的易用性,入门台阶低,项目开发速度快等。可惜的是当你入门之后,当你知道java是个什么东东之后,你就会被那一堆莫名其妙的名次搞的晕菜。你不晕?哦,反正我是常晕,在某论坛上看到各位达人言必称POJO的,当场就感觉自己被拉到了社会主义初级阶段前去,也发现有人再问这是个什么东东,达人们不屑的为我们这些菜鸟指了个明路:自己好好翻翻书去。我诚惶诚恐的去翻了,然后我也知道了,然后,我就更郁闷了。这样的例子遇到不止一次,虽说每次在明了之后都会发出不过如此的感慨。但我个人还是认为,这大量的概念对于java语言来说,实在未必是福。现在上到sun,下到我们一般的技术人员,感觉都以制造概念、追逐概念为乐。也许以后每个帖子后面都得加一篇长长的参考栏了。 现在大家都在探讨怎样提高工作效率,怎样做到MVC,怎样运用框架,由此也引起了各派支持者的争相口水战。 然而很遗憾的是在看到各达人在探讨这些看上去很美的技术的时候,很少有人提到小组成员对这些技术的运用情况(需承认,各位达人对自己运用的框架可能了解甚深,但这些达人往往也是甚少参加实际编码的,换句话说,他们是把握大方向的人),将来项目的维护人员的技术层次(不会说项目做完了,就...完了吧)如何。 Keep It Simple Stupid!!! 前两天大概看了下.net,然后只能感叹,当java部落还在争论应该使用那种框架,那种OR mapping,以及OSS的时候,MS已经悄悄的走在了前面。没有各大公司的利益角逐,没有各开源大牛的各自为政,微软把所有应该考虑的东西都把握在自己手中。这就是九头蛇和九尾蛇的区别。希望九头蛇能够避免车碾之灾 http://icecloud.51.net/blog/archives/000049.html Post by someok @ 20:03 OSCache 的开关
2004-04-16 11:24 是否启用内存缓存: cache.memory=false 是否启用磁盘缓存: cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener 如要关闭OSCache,则前者需置为false,后者需注释掉 如要打开,则反之 Post by someok @ 11:24 关于OSCache的一些想法
2004-04-16 00:30 这两天在搭建Roller系统的时候遇到一些问题,于是在页面中加入一些调试信息,结果发现毫无用处,迷茫了半天,发现它用了缓存处理机制,也就是OSCache,设置的时间是一个小时。看来这个缓存处理比较霸道,不到时间是绝对不搭理你jsp页面的,估计就是把jsp删了,在这有效期内,它还是会运行正常-_-`。 已经是久仰这个Cache组件的大名了,今天趁此机会正好研究一下(以前虽说也看过,不过仅限于查看一下目录结构),down了一个最新的包,解开发现和以前的比少了示例代码了,看来作者认为大家对它都很熟了。文档看了一遍,感觉功能确实很强,连集群都支持(虽说不知怎么用,汗),在项目中大有用武之地,不过很头疼的是在做了增删改操作之后如要重建缓存,得在类里面处理,这让我感觉颇为不爽,我希望我的DAO只是处理业务,而像缓存处理这些东西应该只是一些附加物,也就是说,可以随时卸下的东西,放到类里面对于缓存处理的装载、卸载就颇不灵活了。在wuyu的blog中发现ibatis中可以在配置文件中处理,而且其DAO代码显的相当简洁(当然,配置文件就一大串了)。 个人认为,这种缓存的处理可以在开发后期,或是试运行一段时间之后加上,因为那时候才能更清楚那些页面,乃至那些方法属于性能瓶颈,且符合缓存的要求。这就需要缓存组件的使用尽可能与类文件分离了(与jsp结合倒还好说),当然设置开关也是一个方法,不过,要是我想换一阵缓存组件的话就比较麻烦了。要不,也提供接口? wuyu的blog: http://java.blogger.cn/wuyu/posts/2217.aspx Post by someok @ 00:30 不错,看来我这个域名还是能派上用场的
2004-04-14 01:18 说起来,我实在是个意气用事的人,当初看见人家在那搞网站啥的,不禁眼热,于是一冲动,网站没建,可这域名倒是买了一个。可惜到手没几天,这做网站的冲动不知被我抛到九天中的第几天了。剩下个域名也只是让我在花生壳上用用,给人家开个ftp啥的,浪费了。本来一年期满后打算放弃这个域名,可网友翔子说这个域名还不错,反正也便宜,还是留着吧,于是又续了费。 既然买了,总得让它发挥点热量不是,可除了做个url转发外,实在不知它还有何用处。 http://blog.someok.com ,以后就用这个作为我的blog的地址了,毕竟这个blog没准哪天就换地方了。 Post by someok @ 01:18 项目如此做的
2004-04-09 22:19 Post by someok @ 22:19 感同身受!!!
2004-04-09 21:01 Post by someok @ 21:01 饱受3721那些垃圾骚扰之苦的xdjm们可以用用这个
2004-04-08 00:32 3721百度等垃圾玩意的免疫补丁.zip Post by someok @ 00:32 jsp中的防缓存机制,记录以备不时之需(其实已经需了^_^)
2004-04-07 23:23 1、使用java提供的方法,在jsp或者servlet中都可以 <% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); %> 2、使用HTML标记,如下面: